Sunday, November 15, 2009

Quake 3 Arena on Fedora 12 (x86_64)

I like OpenArena. It's a pretty fun game, but I still prefer the good old Quake 3. Taking in consideration that the game is 10 years old, and I haven't tried to play it in years, I took some time this afternoon to see if I could get the old original Loki Game/ID Software version working on the newest Linux distro possible: Fedora 12 (which comes out this week).

At first, I got all sorts of errors, I couldn't install it from the original CD, nor by downloading the most recent binaries from ID Software, which believe it or not, is already 6 years old.



Anyway, I was able to get Quake 3 running on my Lenovo Thinkpad T500 (Intel Graphics Card) running Fedora 12, and here's what I had to do:

Installation:

1. Grab the two latest updates from ID Software's FTP: Q3A Point Release 1.32b and Q3A Point Release 1.32c
2. Make 1.32b executable, run it, follow the directions, and you might have to set a couple of /usr/local/ directories to 777, if you want to run the game as a non-root user and install it on its default location. Also, on a 64-bit machine precede the executable with 'linux32' otherwise it will say it doesn't support 64-bit arch.
3. Unzip 1.32c, and copy over the binaries under the 'linux' directory to: /usr/local/games/quake3
4. Grab your Windows or Linux Quake3 CD, and copy over the base3q files to /usr/local/games/quake3/base3q/

Fixing Sound:

Before, you even try to start up the game, I can tell you right now the sound will be broken, so, here's how to fix it:

1. As root: /sbin/modprobe snd_pcm_oss # this is non-persistent, through this module /dev/dsp is created
2. chmod 777 /proc/asound/card0/pcm0p/oss

Starting the game:

We need to do 2 things before executing the binary. The first is set some parameters for sound to work, and the second is tell quake3* binaries to run under a 32-bit arch.

echo "quake3-smp.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss && linux32 /usr/local/games/quake3/quake3-smp

Note, that I am running the SMP binary, since my laptop has 2 cores. If you run on a single processor, you will need to run:

echo "quake3.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss && linux32 /usr/local/games/quake3/quake3


Note: If your game freezes seconds after starting a match, use '+set s_musicvolume -1' when starting the game.

Note 2: If the sound still not working open your 'Sound Preferences' and under the Hardware tab, change the profile from Analog to Digital... it did the trick for me.

2 comments:

dutch said...

Great guide. As a user of Fedora 12 x86_64. I had to do this aswell as your steps.

yum install xorg-x11-drv-nvidia-libs-32bit

Also I cannot stress enough to people how their xorg.conf must have the relevant modules section. specifying module 'glx'

hope this helps someone.
spocktrometer.

DuffPaddy said...

Many thanks for a clear, well-written guide which enabled me to get Quake3 fully working on Fedora 14 (i386)!

I'd already installed 1.32b as you described, but wasn't aware that there was a 1.32c patch available. Also, I'd seen the OSS stuff described in various forums, but not the modprobe stuff that was necessary to create the file in the first place.

And it seems to make a difference which version of the program you run. On my dual core, if I run quake3, there's no sound. Running quake3-smp gives full sound, though with that one I do need to enter that musicvolume command before starting. Otherwise the computer completely freezes up as soon as I start a game.

The only problem I have now is that the damn thing seems to run massively quicker than it did back in the day on my old Windows XP box. Well, it's either that or my ageing reflexes at work...