The (unofficial) Quake II 3dfx HOWTO

©1998,  Carlo Wood

IMPORTANT NOTE: This page is no longer maintained, linux.3dfx.com used to take over maintenance - but has now vanished. I don't think anyone is maintaining Device3Dfx anymore.

The latest version of this document can be obtained from http://www.xs4all.nl/~carlo17/3dfx/

Requirements

Voodoo 2

(for Voodoo Graphics, correct the GAMMA environment variables and use a different Glide*rpm).

RedHat 5.x

(At least, you need `rpm' or otherwise be able to install rpms, including their install scripts).

Optional the binary `su0'

(Which you can get here)

Reading through the quake2 initialization script and editting it, using common sense.

(the script assumes you have Voodoo 2, a PS/2 mouse and installed quake2 in /opt/games/quake2).

Things you need to download

Start with installing the 3dfx.o kernel module by installing Device3Dfx-2.3-5.src.rpm.

Then have the following rpms installed, either the libc5 versions:

[Latest update: I don't use Glide anymore. Instead I use the drivers from NVIDIA.]

Glide_V2-2.53-1.i386.rpm and quake2-3.19a-2.i386.rpm or quake2-3.20beta-5.i386.rpm

*or* the glibc versions:

Glide_V2-2.53-1.i386.glibc.rpm and quake2-3.19a-glibc-2.i386.rpm or quake2-3.20beta-glibc-5.i386.rpm

Note that the quake2-*.i386.rpm's install in /usr/local/games/quake2, you might want to add a symbolic link _before_ installing the rpms.

After installing the quake2*rpm change directory to /usr/local/games/quake2 and type:

tar cf - lib*GL* | (cd /usr/lib; tar xf -)
chmod 755 quake2

The latter is needed because otherwise something goes wrong with the loading of the needed shared libraries. When an executable is suid root, all LD_* environment variables are ignored. You don't need it to be suid anyway because we'll use /dev/3dfx. Of course, the software renderer won't work anymore now, unless you run it as root. The tar will put the Mesa lib in /usr/lib, it needs to be there because it won't load otherwise. Don't worry about using Mesa-3.0, because we won't use the Mesa lib for anything else but prohibiting unresolved variables anyway: We use the 3DFX OpenGL Miniport.

If you use quake2-3.19a-2.i386.rpm then you need a symbolic link from /usr/lib/libMesaGL.so.2 to lib3dfxgl.so. For instance, if you have installed quake2 in /usr/bulk/games/quake2/ then do:

     cd /usr/lib
     rm libMesaGL.so.2
     ln -s ../bulk/games/quake2/lib3dfxgl.so libMesaGL.so.2

Don't do this if you don't use quake2-3.19a-2.i386.rpm (but one of the other three mentioned quake2*rpm's).

Connecting to a game server

Quake2 has problems to connect to a game server with a different mod. There is a work around for this however: In order to connect to a game server, you need to specify the mod of that server on the commandline.

For instance, if you want to connect to a lithium server, then use:

q2 +set game lithium +connect <quake2.server.addr>

Kernel 2.1.131 and sound

There is a bug in quake that makes sound not work on some PCI machines (maybe others?) and the way sound was changed in the newer kernels. If you hear a terrible noise when starting quake then try out Alan Cox's patch-2.1.131-ac4.gz. You might also want to uncomment the "SMP = 1" in /usr/src/linux/Makefile, it might be related. (Note: It is known that sound is broken in at least 2.1.126, and not in 2.1.115. Alan's patch works for me however, I am running 2.1.131.ac4 as I type (and Quake + sound works ;)).

Other important issues

Make sure that: