分类: LINUX
2010-12-17 16:20:42
I started writing this article one night in December when I was bored and looking for a game to play on Linux. I am not much of a computer gamer, so I am not really current with what is out there for games in the Open Source world. That night I stumbled across , which is "a network enabled multiplayer first person shooter based on the ioquake3 fork of the id tech 3 engine." []
I installed OpenArena on my Fedora 12 x86_64 install (i.e. yum install openarena), and played it for a few minutes. That's how long it took for me to travel back in time and have the urge to play some good-old Quake 3 Arena. I purchased my very own copy of 'Quake 3 Arena for Linux' back in December of 1999 when it was released. Do you remember ? [Note: Can you believe that this game is now over 10 years old?!]
I decided then to dig up my old Quake 3 CD, and see if it would still run on my 'shiny' Fedora 12 x86_64 install. 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 x86_64, and here's what I had to do:
1. Grab the two latest updates from ID Software's FTP: and
wget ftp://ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run wget ftp://ftp.idsoftware.com/idstuff/quake3/quake3-1.32c.zip
2. Then make linuxq3apoint-1.32b-3.x86.run executable:
chmod 755 linuxq3apoint-1.32b-3.x86.run
3. Execute it:
linux32 ./linuxq3apoint-1.32b-3.x86.run
[Note: linux32 tells Linux to execute linuxq3apoint-1.32b-3.x86.run with CPU architecture set to 32 bit]
4. Unzip 1.32c, and copy over the binaries under the 'linux' directory to /usr/local/games/quake3:
unzip quake3-1.32c.zip cp Quake III Arena 1.32c/linux/* /usr/local/games/quake3/
5. Grab your original Quake 3 Arena CD, and copy over the base3q files to /usr/local/games/quake3/base3q/
[Note: This will work with an original Quake 3 Arena CD for Linux or Windows]
Before you even try to start up the game, I can tell you right now the sound will be broken; here's how to fix it. Quake 3 Arena needs the /dev/dsp device to be present on the file system:
1. As root:
/sbin/modprobe snd_pcm_oss
[Note: This is non-persistent, through this module /dev/dsp is created]
2. Set permissions:
chmod 777 /proc/asound/card0/pcm0p/oss
Now we are ready to give Quake 3 Arena a try, but before you can even execute the binary, there are a couple of things you need to be aware of:
1. Need to pass some parameters to the kernel so sound will work.
2. Need to execute the binary under the 32-bit architecture.
echo "quake3-smp.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss && linux32 /usr/local/games/quake3/quake3-smp
[Note: 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
1.If your game freezes seconds after starting a match, use
'+set s_musicvolume -1' when starting the game.
2. If the sound still not working after setting the
parameter above: Open your 'Sound Preferences' under GNOME and under the
Hardware tab, change the profile from Analog to Digital... it did the trick
for me.
3. If you are using nvidia cards:
yum install xorg-x11-drv-nvidia-libs-32bit # from rpmfusion.org
4. Make sure that modules like 'glx' are being loaded in the xorg.conf file.
After a few hours of playing Quake 3 on my laptop, I decided to take one step further and try to get Quake 4 working on Fedora 12. And to my surprise it actually took me longer to figure out how to get Quake 4 working than it took for Quake 3.
1. Grab the latest Quake 4 binaries from ID Software. .
wget ftp://ftp.idsoftware.com/idstuff/quake4/linux/quake4-linux-1.4.2.x86.run
2. Then make quake4-linux-1.4.2.x86.run executable:
chmod 755 quake4-linux-1.4.2.x86.run
3. Execute it:
linux32 ./quake4-linux-1.4.2.x86.run
4. Copy the the baseq4 files from your original Windows
CDs (or DVD) to /usr/local/games/quake4/base4q
5. When I tried to execute the binary with:
linux32 /usr/local/games/quake4/quake4-smp
I would get an error like this:
X..GL_EXT_texture_compression_s3tc not found
After several hours of 'googling' and reading documentation, I was able to to fix this problem by doing the following:
yum install driconf
Then, as the user who will be running the game, run:
driconf
and under Image Quality, enable S3TC textures. That did it for me.
1. As root:
/sbin/modprobe snd_pcm_oss chmod 777 /proc/asound/card0/pcm0p/oss
2. My game still didn't have sound, so I had to edit ~/.quake4/q4base/Quake4Config.cfg and modify the option from:
seta s_driver "best"
to
seta s_driver "oss"
And finally, much like how we started Quake 3 Arena, we may now start up Quake 4:
echo "quake4-smp.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss && linux32 /usr/local/games/quake4/quake4-smp
If you have been around Linux for over ten years and used to play these 'classic' games back in the day, I hope you enjoy getting them re-installed and running again on your systems as much as I have. If you have just started using Linux within the past few years, and you don't have the original media to install Quake 3 Arena or Quake 4, stick around with OpenArena. It's a great alternative to the Quake saga, and it's much easier to install.