Thursday, March 4, 2010

Halo & Doom 3 on Linux

First things first, I'm officially converted; Arch is my new OS. It truly is infinitely customizable as you build it from the ground up, and I'm loving every minute of it. Anyway...

Gaming has long-been the one thing tying me to Windows. Yes there are Linux games, but let's face it: there's no Linux equivalent for some of the great Windows games out there, such as Half-Life, Halo, Call of Duty, et cetera. WINE is a possible solution, but to be honest I've never had much luck with it. I managed to get Dreamweaver running in it a few years back, but haven't touched it since then. Several days ago I figure I'd give it another go and try to get Halo CE (the first one) running.

Initially I tried it on my laptop, with an ATI Radeon 3200HD chipset, however the open-source Radeon drivers weren't getting along too well with it. The opening videos worked (I didn't need to pass the --novideo argument), but when the game loaded as far as the initial menu screen... Well I'm not sure how to describe it. Suffice it to say it was pretty recognizably a graphics issue rather than a WINE issue.

At this point I decided that rather than fiddle around with building Catalyst from AUR on a 64-bit machine, I'd try it out on my desktop, which has a more powerful Nvidia card (9600GT) anyway. That worked like a charm. The proprietary Nvidia drivers are fantastic, almost to the point where I forgive Nvidia for making them proprietary, but not quite. The game will load in a window or fullscreen (depending on your wine settings or command line arguments) and play damn-near flawlessly, which is way more than I would expect from attempting to run a DirectX game on Linux.

There is also no need for a no-cd-crack, you can use the official executable. When you run the update program it will patch the game to the latest version (1.09 I believe), which eliminates the need to actually have the cd in your drive every time you want to play the game.

While on the subject of Linux Gaming, I feel obligated to mention there is a Doom III port that will run natively on Linux available from IDsoftware's FTP Server. There's also tons of other goodies on there so make sure to give those a glance as well. I personally installed the doom3 package available in the Arch User Repository, but I have used the version available on the FTP server before on Mint, Ubuntu, and Debian successfully.

Note that you will need to copy files pack000.pk4 through pack004.pk4 from the retail version to your Doom 3's base directory (there is a directory named 'base', I am not referring to Doom 3's root directory) on the Linux box in order for the game to work (What, did you think they were giving it out for free?). If you bought Doom 3 through Valve's Steam, the needed files will be in your ...\steamapps\common\doom 3\base folder, otherwise just search for files with a .pk4 extension via your favorite method. Now as for cd keys...

I bought (yes really, no warez here) Doom 3 via steam. When you launch it the first time it displays a cd key, which I'll call key-A. It also creates two files in your Program Files (x86)\Steam\steamapps\common\doom 3\base folder called doomkey and xpkey, both of which contained different keys, which I'll call key-B and key-C. All 3 keys are 16 characters, and when the Doom 3 port launches, it prompts you for a 16+2 digit key. So now I have three separate, and equally useless keys. I sent an e-mail to Steam's customer support asking for a new key, but I doubt they'll be scrambling to help out a Linux user, so I had to rely on a little MacGyver-ing to get Doom 3 running.

For some reason, id Software chose not to disable console access while the key prompt was up. Maybe this was intentional, maybe not, but either way it allows you to circumnavigate the key-verification process which is legal provided you have actually purchased the game and corresponding cd key. So when I launch Doom 3 on Arch, I am greeted with the rather annoying prompt. Then I just ~ into the console and 'map game/delta4' (or any other map for that matter), and it will set about loading that map, thus circumnavigating the buggy cdkey authorization prompt. It's a hack, but at least I can play Doom 3 on Linux now.

NOTE: This will not help you play the game without purchasing it. You will still need to supply the .pk4 files mentioned above from the purchased version in order to play, the method I have provided is merely a means of circumnavigating a process that can prevent legitimate Doom 3 owners who have legally purchased their copy of the game from playing it on Linux, which they are entitled to do as it does not violate the terms of the EULA.

id Software is the only game company I know of that actually ports their games to Linux, and makes the ports freely available for users who have already purchased the Windows version. As such, you should actually buy id Software's games and show your support for their actions. There is currently an ID Super Pack available on steam for $70, which is an unfathomable deal considering you get over 20 games including the DOOMs, Quakes, Hexens, Heretics, Wolfensteins, and more. And no I do not benefit in any way from you doing that. I just like to support companies that support me, and by porting their fantastic games to Linux, id Software has done just that.

UPDATE: April 10th 2010
Here's how to fix the cd-key issue. Copy the doomkey and xpkey files to your ~/.doom3/base directory. Special thanks to Filip Oščádal of for the solution.


  1. Nice post.. I've run some popular games on Ubuntu GNU/Linux, checkout my videos at

    Shannon VanWagner

  2. Thanks for the feedback Shannon. I've been reading your blog for a while now but didn't know about the youtube channel, Nice work!