Sunday, October 26, 2008

Sacrifice Revisited

A while ago I posted on this blog how you could resolve the "Insufficient page file space" problem in Sacrifice. Since then a few people have emailed me, saying that the fix described in that post does not longer work. After trying various things with various people (thanks for all the help and input by the way), a solution was found.

Problem
The problem is that XP does not longer present GlobalMemoryStatusTrim when running QFixApp.

First the good news. If you have Vista, the game works out of the box. Not because Vista has better memory management or something like that, but because Vista comes with lots of Compatibility Profiles built-in. I've looked into these profiles to see which ones were used with Sacrifice, being:

1) GlobalMemoryStatusLie
2) GlobalMemoryStatus2GB (this replaces GlobalMemoryStatusTrim and is also available in QFixApp when running XP)

So the solution seems simple, enable GlobalMemoryStatusLie and GlobalMemoryStatus2GB, and try again. However, when trying this under XP SP3, almost everyone gets the following (new) error: "error while trying to initiate the application (0x000005)".

If you get this error, you now have the following options:
1) Upgrade to Vista (yuck);
2) You could disable virtual memory and/or use the /BURNMEMORY=N boot.ini-switch (adventurous and bad/ugly);
3) Use the solution below (clean and works).

Solution
It turns out there is a patch available over here which removes the memory-check from the game. This patch was created a while ago by Luigi Auriemma, but is still quite difficult to find. Follow the following steps to get your game working:

1) Download and extract Lame Patcher from here.
2) Download and save the Sacrifice .lpatch file from here (search for: "sacrifice" or direct link no hotlinking :( direct link is back thanks to a friendly e-mail from Luigi, the author - thanks!).
3) Open lpatch.exe.
4) The program will display a message asking you if you want to select a .dat or .lpatch file, choose "Yes".
5) Pick the sacrifice_pagefile.lpatch you have saved in step 2.
6) The program will display some information, press "OK".
7) Another file chooser dialog opens, locate your Sacrifice.exe and select it.

All done! You should be able to enjoy the game now.

One last thing. If you're too lazy to follow the steps above, or you don't have Sacrifice but would like to play this (and other old) games, then check out Good Old Games. They've just went into public beta and are offering MDK2, Giants: Citizen Kabuto and Sacrifice (for $5.99). They also offer support, so your game'll probably work without complaining out of the box it seems they provide the Virtual Memory tip as well.

Sunday, September 07, 2008

Virtualbox: Expanding A Disk Drive

I love Virtualbox, it's definitely my virtualization platform of choice for daily tasks* on a Linux-host, and it's quickly replacing VMware on Windows hosts as well.

However, recently I had to expand a virtual partition of a Windows guest. There are already lots of options and methods available to do this:

None of these actually offered a really good or quick solution, until I found this blog post. Tom's statement of hostility to copyright allows me to provide a summary... However, I've added some extra steps and tips for both Windows and Linux guests.

You’ll need:
  • A Gparted LiveCD.
  • Two virtual disk images: the old one (the one you're currently using, the small one), and a new one, which you can easily create in Virtualbox, make sure it's "raw" (unpartitioned).

1. Mount or burn the Gparted disk in Virtualbox so that it'll boot from it (make sure the "virtual bios" boots from it first).

2. Using VirtualBox, create a new VDI with a larger size that you want to expand the virtual machine to (see: "You'll need").

3. Leave your existing VDI as the primary IDE master. Set the new VDI to be the Primary IDE slave for the machine.

4. In Gparted: run fdisk -l or use Gparted GUI to view your partitions. You should get /dev/hda and /dev/hdb. /dev/hdb shouldn’t be partitioned at this point. /dev/hda should be your primary master (the original VDI that is too small for your needs), and /dev/hdb should be the new image (virtual primary IDE slave).

5. Do not mount those (yet). Instead, use dd to copy the old image to the new one:
dd if=/dev/hda of=/dev/hdb
Warning: don't despair, this may take some time, and the hard drive status icon of Virtualbox should indicate that something's happening.

Steps for Linux guests:

1. Launch GParted, and resize the partition on /dev/hdb (the new image) to take up the entire disk. This may take awhile. If you cannot move your partition because the swap partition is in the way, first remove the swap, then add a new swap partition add the end of the hard drive (linux-swap), and then extend the non-swap partition. The following screenshot shows how it should look after recreating the swap partition, right before extending the data-partition:

3. Extra step (update - thanks to comments): modern Linux distributions use disk IDs to identify disks instead of sda, sdb,... This might give you the following message in a few steps: "Waiting for device /dev/disk/by-id/scsi-SATA_VBOX_HARDDISK_VB... to appear", like the user in the comments of this post. So before you continue with the following steps, open a Terminal window.

I'm going to create two mount points for the old and new partition and mount them. You can use GParted to find out the exact device location (the new partition should probably be /dev/hdb1):
mkdir /mnt/old_disk
mkdir /mnt/new_disk
mount /dev/hda1 /mnt/old_disk
mount /dev/hdb1 /mnt/new_disk

Screenshot:

I'm now going to take a peek at the fstab-file on my old partition:
cat /mnt/old_disk/etc/fstab

With an Ubuntu partition, you get something like this:

Ubuntu uses UUIDs to identify partitions. We'll have to edit our new partition's fstab file with the new UUIDs. Your distribution could use:
  • Device locations, like /dev/sda1 (yes, you see this in my fstab file as well, but everything after a pound ('#') character is a comment, so it's not really using that). You can find out your new locations using GParted. Make sure you only change the numbers if you have to! So don't change sda to sdb or hdb! GParted might be showing you /dev/hdb, but when we'll make our new partition the master VDI, your Linux installation will see this as /dev/sda!
  • IDs, not common, you can find the new IDs by using ls /dev/disk/by-id -lah.
  • Paths, not common, you can find them by using ls /dev/disk/by-path -lah.
  • UUIDs (like me), more and more common. You can find your new UUIDs by using ls /dev/disk/by-uuid -lah. The new UUIDs will be listed next to ../../hdb-lines (remember: hda is our old hard disk).

Now let's edit our new fstab. Open a new Terminal window (so you can still see the UUIDs) and enter:
nano /mnt/new_disk/etc/fstab

Nano is a Terminal text editor. Just use it like Notepad, use CTRL+O to save your changes, and CTRL+X to exit. You can use it to edit your UUIDs.
Note: make sure you leave the proc-line intact! Also, note that the cdrom-line doesn't use an UUID but /dev/scd0.
Extra note: the data-partition will probably have the same UUID as before (we have only extended it). The swap partition has a new UUID (because I deleted and recreated it).

Following screenshot shows my edited fstab, I have removed the comments.

4. All done? Good. Poweroff with the GParted LiveCD.

5. Finally, set the new image (resized) as the primary master for the virtual machine. Uncheck the primary slave. Boot into the machine to verify that it worked. If everything works you may delete the small disk VDI.

Screwed? Then make the small image master and the large one slave again, and use GParted with nano to double check. Don't be afraid making a mistake, if you only edit the large VDI, you can always rollback to your old small one and start over.

Steps for Windows guests:

1. Do not use gparted or ntfsresize to resize the partition. I know you can, but I found it a tad risky. Instead, set the new image as the primary master for the virtual machine, uncheck the primary slave. Boot back into Windows.

2. You should be back into Windows, but still on a small partition. If you use Disk Management in Administrative Tools you should see that there is a lot of unallocated space now on the virtual hard disk, how can we expand our drive?

3. Open a cmd. Type diskpart.exe, this is a tool that comes built in with most Windows distributions.

Type extend and press enter. This will extend your partition. The full command is extend [size=n] [disk=n] [noerr], but we can leave all options to their defaults.

4. Once this is done, use chkdsk to make sure everything is okay.

*For server-oriented platforms, Xen is the undisputable champion.

Thursday, July 17, 2008

ODBC Missing Driver... 64 Bit

Note to self, if you can't find your installed ODBC-driver. It might be because you installed a 32-bit driver on a 64-bit system. Try looking in:
C:\Windows\SysWOW64\odbcad32.exe
That's all. 

Friday, June 27, 2008

Is w32codecs Freezing Your Ubuntu?

Wanted to play an Realmedia file? Installed w32codecs? Now Totem is freezing your Ubuntu Hardy? And by freezing, I mean: you can move the mouse, nothing else workse, no ctrl-alt-backspace, no ctrl-alt-F1.

Then do the following:
  1. Make sure you have gstreamer0.10-pitfdll installed.
  2. Install (if you haven't already) w32codecs.
  3. Execute the following three commands in the terminal:
    rm -rf ~/.gstreamer-0.10
    gst-inspect-0.10
    gst-inspect-0.10 pitfdll
  4. Try Totem again. Should work now.

Thursday, June 26, 2008

Muxtape Downloader Shell Script

I got to confess something: I love Muxtape! Did you know there is a userscript which lets you download the songs? It's not encouraged though...

Also: I've been trying to learn Shell Scripting. So I decided: why not make a Muxtape downloader. This is my first shell script (longer than a few lines). I've thrown together code I found at various site, and I find programming with bash... special. Currently: the script looks like this (warning: it's rotten to the bone!):
#!/bin/bash

#Fetch URL
wget -O /tmp/muxtape_html.out http://$1.muxtape.com

#Fetch titles
sed -n '/<div class="name">/,/<\/div>/p' /tmp/muxtape_html.out > /tmp/muxtape_titles.out
titles=`cat /tmp/muxtape_titles.out`
echo ${titles//<div\ class="\">/} > /tmp/muxtape_titles.out
titles=`cat /tmp/muxtape_titles.out`
echo ${titles//\ <\/div>/;} > /tmp/muxtape_titles.out

#Fetch kettle
egrep -o "Kettle.*" /tmp/muxtape_html.out > /tmp/muxtape_links1.out
sed -e 's,Kettle(,,' /tmp/muxtape_links1.out > /tmp/muxtape_links2.out
sed -e 's,);,,' /tmp/muxtape_links2.out > /tmp/muxtape_links.out

cat /tmp/muxtape_links.out | tr -d '[' > /tmp/muxtape_links.out
cat /tmp/muxtape_links.out | tr -d ']' > /tmp/muxtape_links.out
cat /tmp/muxtape_links.out | tr -d "'" > /tmp/muxtape_links.out

#Make arrays
titles=`cat /tmp/muxtape_titles.out`
IFS=";"
titlesa=($titles)

foo=`cat /tmp/muxtape_links.out`
IFS=","
bar=($foo)
compar=$(( ${#bar[@]}/2 ))

#Get songs
for (( i = 0 ; i < ${#bar[@]} ; i++ )) do
if [ $i -lt $compar ]
then
k='http://muxtape.s3.amazonaws.com/songs/'
a=${bar[$i]}
b=${k}$a
q="?"
k=${b}$q
e=${bar[$i+${#bar[@]}/2]}
z=${k}$e
echo ${titlesa[$i]}
wget -O ${titlesa[$i]}.mp3 $z
fi
done
Yuck! But it works, save it in script.sh, make it executable and then ./script.sh muxtape_username
This will save all mp3s. It took me an hour to figure this out, and I'm sure lots of you could do this much better. Still, it was cool to build... but in Perl or PHP I could've done this much quicker and cleaner. Oh and by the way: don't abuse this... Muxtape are friendly people.

Friday, March 14, 2008

Assembly Component {303994BA-6487-47AE-AF1D-7AF6088EEBDB}

I recently tried to install the Nokia Software Updater, but it gave me this error:

Error 1935. An error occured during the installation of assembly component{303994BA-6487-47AE-AF1D-7AF6088EEBDB}.

Quick research showed that this had something to do with MSXML 4.0. So I quickly went here and downloaded the msi installer. Which gave me the same error.

Apparently you have to force an uninstall of MSXML 4.0 SP0 or SP1, open a cmd-window and enter the following two lines:

msiexec /qn /x {35343FF7-939B-401A-87B3-FF90A5123D88} msiexec /qn /x {2AEBE10C-D819-4EBF-BC60-03BF2327D340}

Close and restart. Yes: you must restart (I hate it as much as you do).

Now install the msi. Then install the Nokia software. Everything works fine now.

Sunday, January 20, 2008

Javascript browser detection using DOM capabilities

Just found this, pretty handy!

// browser detection

var isIE = document.all;
var isIE7 = isIE && window.XMLHttpRequest && window.ActiveXObject;
var isIE6 = isIE && document.implementation;
var isgteIE6 = isIE7 isIE6;
var isIE5 = isIE && window.print && !isgteIE6;
var isIEDOM2 = isIE5 isgteIE6;
var isIE4 = isIE && !isIEDOM2 && navigator.cookieEnabled;
var isIE3 = isIE && !isIE4 && !isIEDOM2;
var isNS = navigator.mimeTypes && !isIE;
var isNS3 = isNS && !navigator.language;
var isNS4 = document.layers;
var isNS6 = document.getElementById && !isIE;
var isNS7 = isNS6;
var isNS71 = document.designMode;
var isNSDOM2 = isNS6;
var isDOM2 = isIEDOM2 isNSDOM2;

Tuesday, October 23, 2007

Game: Portal

Man, what a surprise this game was!

This is a great puzzle game, which you should also play multiple times (once with the commentaries).

You're a woman who wakes up in a cell inside a lab and presented with a portal that lets you walk out of the room and into another. With this gun you must solve lots of puzzles which get gradually harder.

Along the way, GlaDOS, an AI with a computerized female voice, guides you. GlaDOS is incredibly funny, and gets even funnier at the end. The whole game is actually hilarious, in a good way! The scripts and characters are wonderfully designed. The game is minimalistic in nature and all these little extras are just the topping of the... cake.

GlaDOS will lie to you, cute turrets who'll say "Where are you?" everytime you go into hiding, an amazing weighted companion cube, and cake. This game is full of little surprises. You just have to play it and experience its awesomeness!

"Cake, and grief counseling will be available at the conclusion of the test.
Thank you for helping us help you help us all."

Pros:
  • FPS puzzle game, with portals!
  • Great ending song.
  • Hilarious humor.
  • Unforgettable characters.
  • Minimalistic and focused nature, without ever becoming boring.
  • Where's my sequel?

Cons:
  • A tad short.

Now only Company Of Heroes: Opposing Fronts and Quake Wars remain on my list of games-to-play. But that's for later.

Game: Half Life 2 - Episode 2

Wow.

Half Life blew me away, again. I finished the game in one big long marathon session. Twice. The second time with the developers' commentary enabled - which I still love.

I'm not going to spoil anything, but I found the ending completely unexpected and fantastic. Also, Merle Dandridge's voice acting (Alyx) was incredible. When the credits rolled over my screen I just wanted to play Ep. 3 immediately. The game itself was great, with the return of old friends, and the introduction of new friends - and new enemies.

Just like episode 1, the game provides you with a companion (either Alyx or a Vortigaunt) most of the time.

Maybe I'll play Half Life 2, Ep. 1 and Ep. 2 in one big sitting soon...

Pros:
  • Story is great!
  • Characters to love.
  • Great voice acting.
  • Graphics are enhanced and still look amazing.
  • Cinematic physics - so cool.
  • Longer than the first episode.
  • Great sound track.

Cons:
  • Err, none?
  • Okay, maybe still too short ;).
  • Also: no new real weapons, I would love to handle a sniper myself (instead of the crossbow).
  • You might lose some sleep.

Game: The Settlers: Rise Of An Empire

Another quick review for this one. Not much to say about this game, I mean: it's Settlers. It's back, and it's 3d and cuter than ever :).

Pros:
  • Settler's back!
  • Game looks very nice.
  • Long and entertaining missions.
  • Happy atmosphere.

Cons:
  • Few bugs still around.
  • Needs quite a bit of system resources.

Game: Medal Of Honor: Airborne

I've been playing some games last weekend, Medal Of Honor: Airborne being one of them.

Basically it's just another WW2 FPS with nothing special. The drops at the beginning of each mission are pretty nice, and the levels aren't badly designed either.

The graphics look nice but were somewhat sluggish, how come this game needs so much resources when Half Life runs so nice in all its glory without a peep?

So quickly: pros:
  • The WW2 hype is almost over, so this game is nice if you just can't get enough WW-action.
  • Graphics look fine.
  • Level design.
  • Airborne-theme.
  • Non-linear misions.

Cons:
  • High system requirements.
  • Your weapons are difficult to handle, while the AI has no problems hitting you.
  • Gets boring quickly.
  • Not a real story.

Sunday, September 23, 2007

Some Articles

Saturday, September 15, 2007

SQL: Check Existing Rows Matching A Condition

Instead of this:

IF (SELECT COUNT(*) FROM Table1 WHERE ... ) > 0

use this:

IF EXISTS(SELECT * FROM Table1 WHERE ...)

Great tip provided by this article.

Wednesday, September 12, 2007

Programming Can Ruin Your Life

The application of programming specific processes and habits to the everyday is where peril lies. The same traits that make you a great programmer can make you an awkward, misunderstood and miserable human being.
Amazingly good read.

Monday, September 10, 2007

Game: Bioshock

I finished Bioshock a few moments ago. There's not much I will say about this game because it has been reviewed and analyzed to dead at other sites and by other people.

I can say though that this game is fantastic, both story- and graphic-wise. Also: it often scared the hell out of me.

There is one big downside with this game: the constant crashing. Maybe my configuration is getting old, but this game is actually running quite fine when it's not crashing.

It also could have something to do with Windows Vista. Here's how a typical game session goes for me.

1. After a while it became clear that I have to disable high detail shaders. This will cause the game to crash less with certain video cards.
2. Start Bioshock. "Bioshock.exe has stopped working and has to close." Start Bioshock. "Bioshock.exe has stopped working and has to close." (Repeat this one to ten times.) Finally I see the splash screen and the game loads (strange).
3. Play and enjoy.
4. A new area is coming up, save right before going to the next level. Exit.
5. Edit Default.ini (toy with the audiodevice, add a new D3DDrv, comment out FMOD):

;AudioDevice=FMODAudio.FMODAudioSubsystem
AudioDevice=D3DDrv.D3DAudioDevice


6. Start game again (don't forget to repeat step 2 a few times). Load my save. Go to next area.
7. Wait until area finished loading. When I don't use step 5, my whole system locks up slowly and the area never loads. Save. Exit again.
8. Edit Default.ini again, otherwise I have no in-game sound:

AudioDevice=FMODAudio.FMODAudioSubsystem
;AudioDevice=D3DDrv.D3DAudioDevice


9. Start again, load save, loads fine, continue from step 3.

But still, the game is awesome (but release a patch, quick!).

Also I want you to see the cinematic trailer if you haven't. Don't forget to pick up all the audio diaries in the game and listen to them, the story and characters are so great.

One final note: if you were wondering, I saved all the Little Sisters. After being presented with the first choose to either harvest or rescue them I was too moved not to save them (it was just a sad sight). So I got the 'good' ending. I was happy I did, I would've felt very guilty otherwise, especially after seeing the 'bad' ending (look on Youtube or play the Bink vids).

Pros:
  • Amazing story.
  • Great atmosphere.
  • Possibly best graphics seen in a game up to date.
  • Can be real creepy at times.
  • The music (both the grammophone music and the orchestral score are great).
  • Nice set of weapons, plasmids, hacks and more.

Cons:

  • You'll need a very high-end PC.
  • Game loves to crash.
  • The activation system-slash-copyright protection is a royal pain.
  • No multiplayer (not a real downside for me, but might be a pity for some).
  • The story is just a tad predictable at times.

And now I'm going to rip the music out of the fmod files :).

Friday, August 10, 2007

Scrolling Unfocused Windows

I've been looking for a way to do this for some time now: scrolling unfocused windows, in Windows. You can do it with a Mac (movie here) and on Linux. I became accustomed to it after prolonged Ubuntu-use on my laptop. (It's incredibly handy on lower resolutions too.)

So I posted a note (with replies) on Pownce...

So I'm using KatMouse now. Program is working perfectly fine, and was exactly what I had in mind.

Also: I'm beginning to like Pownce (much more than Twitter anyway).

Sunday, July 29, 2007

Simulating LIMIT with offsets in SQL

How can you do this (x is number of rows to fetch, y is offset):
SELECT * FROM my_table LIMIT x, y
(Mysql)

or this:
SELECT * FROM my_table LIMIT x OFFSET y
(PostgreSQL)

in a DBMS that doesn't support LIMIT statements (take Oracle for example).

In Oracle, you can use ROWNUM, which holds the current row number:
SELECT * FROM
(SELECT ROWNUM limit, * FROM my_table ORDER BY order_field)
WHERE limit BETWEEN x AND y
In SQL Server (>2005), you can use a similar trick, using the ROW_NUMBER function:
WITH ordered AS (
SELECT ROW_NUMBER() OVER (ORDER BY order_field) AS limit, *
FROM my_table)
SELECT *
FROM ordered
WHERE limit BETWEEN x AND y
When using another database (Access for example), you can use TOP when available:
SELECT * FROM
(SELECT TOP x * FROM
(SELECT TOP x+y * FROM my_table ORDER BY order_field)
AS innerT
ORDER BY order_field DESC) AS outerT
ORDER BY order_field
Or, another option:
SELECT TOP x * FROM my_table
WHERE order_field NOT IN
(SELECT TOP y * FROM my_table ORDER BY order_field)
Some databases don't allow TOP in subselects, so we have to use yet another method:
SELECT * FROM my_table outerT
WHERE
(SELECT COUNT(*)
FROM my_table innerT
WHERE innerT.order_field <= outerT.order_field)
BETWEEN y+1 AND x+y
ORDER BY outerT.order_field ASC;
Should that fail too, you can always do:
SELECT TOP x * FROM my_table WHERE order_field > z
with z the last fetched order_field value from the previous page.

You can also find a handy article on the IBM site describing how you can simulate row numbers.

Friday, July 27, 2007

Game: Jade Empire - Special Edition

So I picked up Jade Empire for the PC a few days ago. I was astonished because I didn't even know it was released for the PC. (I've been jealous of console owners who could play the game and then I even miss the PC release!)

So after I quick install I was ready to go. I was more than happy to experience a new Bioware-experience. As coincidence would have it, I had been playing a few Neverwinter Nights premium modules the days before just because I wanted a Bioware experience. (And no, KotOR 2 and NWN 2 just aren't the same.)

And the game didn't disappoint. I you haven't played it yet: you should. The whole story was fantastic. The characters were well though out, and the combat was fun without being frustrating (I didn't die a single time on the easiest difficulty level).

If you are a hardcore PC RPG gamer you will notice that this game is a tad linear. Of course there are quite a lot of side quests but you can't roam very freely. This seems to be a typical characteristic of more 'modern' RPGs, like Fable, or even Overlord. On the other hand, this also has pros: at least you don't get lost or distracted. Also: Fable could learn a few things from Jade Empire, this is how a console RPG should be done: it's all about the story and the atmosphere. The game is fun, quick to pick up and you don't have to manage your inventory and character every two steps while still keeping enough numbers, statistics and options for you to look at.

I think I'm going to rest for a bit now after this marathon-gaming-session. But I think I'm going to replay the game with another character later.

Let's hope that Mass Effect comes to the PC as well.

Pros:
  • Another Bioware classic.
  • Amazing atmosphere.
  • Great story.
  • Cool styles and techniques.
  • Original oriental setting of the game.
  • A right amount of side quests.
  • Well ported: no crashes, no control problems.
  • Graphics are still good.
  • Music.
Cons:
  • Camera misbehaves sometimes .
  • Leaves you wanting much more ;).

Tuesday, July 03, 2007

Game: Overlord

This game took me a little longer to finish: two days.

The game itself is actually pretty good but not that special. I had expected a bit more from it: being more evil for example.

Pros:
  • Nice story.
  • Minions.
  • Graphics are decent.
  • Sound is nice.
  • Maps and environments are awesome.
  • Will remind you of Dungeon Keeper (and Fable too).
Cons:
  • Not evil enough.
  • Very, very linear. No replay value, apart from the different endings (which you can watch anyway by installing RADTools).
  • Could do with a bit more spells.
  • Just needs more tweaking, Overlord 2 could be something really worth your while tho, so why not pick up this one?

Thursday, June 28, 2007

Game: Call Of Juarez

I started playing Call of Juarez today and... wait, I just finished it too.

All in all a nice game, I only had a small problem playing it on my computer, the game started with an Exception error. Installing the latest patch didn't help either.

I was ready to blame the copy protection (since those have been bugging a lot of games lately in my experience). But the no-dvd crack didn't help either. (It seems that official technical support people are giving those cracks to people who had problems. Makes you wonder...) There were a few other people with my problem too on the forums.

So then I tried the only other thing I could think of. I set the compatibility mode of the game to 'Windows XP'. If you have the same problem and are running Windows XP 64 bit, then give it a try, because after that the game started and worked perfect.

The game itself is actually pretty nice. Two playable characters, a mediocre story, a large environment, nice graphics, very fitting music and voice acting. Only the long stealth missions and platforming with Billy (one of the characters) got on my nerves. But the fact that you can play as an ass-kicking reverend afterwards is worth it.

So: pros:
  • Enjoyable action! There is slowmo.
  • Great music, good voice acting.
  • Two characters. Two gaming styles.
  • Great graphics (especially the maps, nature and towns).
  • Multiplayer is quite fun.
  • Original genre (well, we had Gun before tho).
and cons:
  • Doesn't really stand out.
  • Long stealth and platforming missions.
  • You'll need a potent machine to run it.
  • Few glitches (Windows 64 bit problem, see before).
  • Few map glitches (I managed to accidentally get to parts where I wasn't supposed to be - yet - and couldn't go back).