Quake III on Linux
I don't play many games for the main reason that I just totally suck at them and get bored quickly since I keep losing all the time - however, one common question I keep getting asked these days by Windows users moving to Linux for the first time, isn't so much of "what so great about it" but more of "Can I play games on Linux?". The answer to this is yes and no. Yes there are games on Linux, but no not many. All the same though, I thought perhaps this would be a good time to do a little article on getting some Quake III lovin on your Penguin Powered box - so if you've been itching to get better performance from your Quake III game then perhaps this is what you should be reading.
Before we get started, here's what you'll need to get some frag action going on.
1.) Quake III CD
2.) Download the RPM files for Quake III from linux.3dfx.com
3.) Download libtool-1.3.3-1.noarch.rpm
4.) Download the source code to the Mesa OpenGL subsystem.
The files you'll need from linux.3dfx.com are listed here (the version numbers have probrably changed by now, and I'm too lazy to go check, but these are what I used) :
Device3Dfx.2.3.4.src.rpm (the device driver source code)
Glide_V3-2.60-10.i386.rpm (The Glide 2.6 library files)
XFree86-SVGA-3.3.5-0.6.1.i386.rpm (The Voodoo3 SVGA X server)
XFree86_3DFX-rushlib-3.3.3.5.i386.rpm (The Voodoo Rush/Voodoo3 library)
Glide2x_SDK-2.1-10.i386.rpm (The 3dfx Glide 2.x SDK).
Its a pretty good idea to head over and grab yourself some hot java (I'm talking coffee here) cause you've got a fair bit of work laid out ahead of you and you need to be real awake!
So you've got yourself all these RPMs and stuff, so you'll need to go install them. Start with the X Server files. I know you've already got a pretty bitchin 2D X server running, however you'll need to install this new one if you wanna play. Just install the files with the following command :
rpm -Uvh -force XFree86-SVGA-3.3.5-0.6.1.i386.rpm
The force command isn't really recommended but you'll get "older version" errors without it - so go ahead and use it anyway.
Next up, install the Glide libraries. This time around use the same rpm command but just remove the -force command from the string.
Once you've got the Glide libs built and stuff, you'll need to rebuild your 3dfx drivers - just run the following.
rpm -rebuild Device3Dfx-2.3-4.src.rpm
then just install the device driver you just recompiled.
rpm -Uvh /usr/src/redhat/RPMS/i386/Device3Dfx-2.3-4.i386.rpm
Up comes the Voodoo3/Voodoo Rush XFree libs :
rpm -Uvh XFree86_3DFX-rushlib-3.3.3.5.i386.rpm
Having fun yet? Well you're almost done. The last thine you need to get installed is the Glide SDK.
rpm -Uvh Glide2x_SDK-2.1-10.i386.rpm
You'll need to run XConfigurator right about now and let the application probe for your card and stuff. Select all the 16 bit modes you want and any 32 bit modes as well. Do keep in mind that the Voodoo 3 only supports 16-bit colour palettes in Quake III. Once you're done with the probing, kill your X server and start it back up.
If you've got "graphical login" enabled, your X Server should start back up after you've killed it. If not, just type startx and if all works as planned - you should now see a 640x480 desktop (this again depends on what modes you chose in XConfigurator) eitherways, just tab to a higher resolution by using --.
Testing.
If you've followed everything I've just written above, your 3dfx card should be properly configured to work with the Glide library. To test it, run the following from a terminal window
/usr/local/glide/bin/test3Dfx
If you see the 3dfx logo followed by a blue screen, its all good and you're about halfway from getting your Quake III running.
Put your Quake III CD into your drive, mount your cdrom and type the following in your /mnt/cdrom directory:
./setup.sh
You should be greeted by the License agreement screens. Accept the agreement, and use the default values that the installer prompts you with. Make sure that the check boxes for Base Install, Voodoo Mesa GL Library and Data Files are checked.
Get some mesa
You'll now need to go get the latest Mesa 3.2 OpenGL source code and compile it for your system. Yes I know it sounds like its a drag (and it certainly is) but it will be well worthwhile, and it isn't really very difficult either.
Connect to the net, and from a terminal window just issue the following command :
cvs -d :pserver: anonymous@cvs.mesa3d.org:/cvs/mesa3d login
When the password prompt comes up, just hit enter and all will be well.
You'll next need to download the entire source so issue the following command from a window:
cvs -d :pserver:anonymous@cvs.mesa3d.org:/cvs/mesa3dco -r mesa_3_2_dev Mesa
Before you configure and build your Mesa libs, make sure that libtool is installed. You can check by doing a whereis libtool command from the shell or just install it with the
rpm -Uvh libool-1.3.3-1.noarch.rpm (yes you downloaded this file earlier).
Once that's done, change to the /mesa directory (it should be in whichever directory you issued the cvs command earlier) and issue a bootstrap command (./bootstrap). Next just run ./configure -with-glide command and if everything goes well the installer will generate some Makefiles for you.
Next run make then make install. If the process completes without any errors, you should have your mesa libs installed in the /usr/local/lib directory.
Next up is your sound card configuration - thankfully this is pretty straightforward, and many of you probrably already have your sound card working. Eitherways, if you don't just run the sndconfig from a terminal window and the script will autodetect your card for you (if supported).
You'll now need to copy the libGL.so files over to your Quake directory. Just issue the following commands
cd /usr/local/lib
cp libGL.so-1.2.0 /usr/local/games/quake3/LibMesaVoodooGL.so.3.2
This will overwrite the preinstalled mesa lib.
Come get some!
And that's it! You're done. Just issue the following command from a terminal window :
/usr/local/games/quake3
If you've followed everything correctly, you should soon be watching the introductory movie. Just hit and I'm sure you all know what to do next - go kick some ass!
Peace.
L33tdawg.
1.) Review: Norton Internet Security 2000 - Dhillon Andrew
2.) Dreamcast Underground - 101Bytez
3.) A look at ASPs (Application Service Providers) - Liquid Sphear
4.) Quake III on Linux - L33tdawg
5.) ID Theft - What they do - Hunterose
6.) Reversing a trojan - metaray!abrams