This is a rough attempt at a HOW-TO for setting up OpenUT with a G400/TNT or basically any other 3D accelerator that is supported by the Utah-GLX extensions. 3Dfx support is beyond the scope of this document. 3Dfx owners should refer to the literature included with the Linux UT distribution archives. The author assumes that the reader possesses some prior Linux experience such as using CVS, archivers (such as tar and gzip), and compiling programs from source code.
Every effort has been made to insure that the information contained within this document is accurate as of the time of writing. I can not be held responsible for any damage, lost time, lost wages, etc. that may arise by using the information contained within this page.
There is a general troubleshooting Q & A at the end of this document.
(It is recommended to familiarize yourself with the OpenUT project and browse the mailing lists. This is the best source of information on the OpenUT project.)
The Utah-GLX project: http://utah-glx.sourceforge.net
The Mesa 3D graphics library: http://www.mesa3d.org
The Linux Documentation Project: http://www.kernel.org/LDP
You will also need XFree86 3.3.x. XFree86 4.0.x users should read the OpenUT/DRI HOW-TO hosted at the OpenUT website. Be advised that I have never used a "3rd party" X server (such as Accelerated X) and can not comment on interoperability with GLX or OpenUT).
XDelta patch system: http://www.XCF.Berkeley.EDU/~jmacd/xdelta.html
Mesa3D OpenGL library: http://www.mesa3d.org
Utah-GLX extensions: http://utah-glx.sourceforge.net
SDL version >1.1.1 http://www.devolution.com/~slouken/SDL/
SDL mixer library: http://www.devolution.com/~slouken/SDL/projects/SDL_mixer
Libmikmod: http://mikmod.darkorb.net
UT linux distribution archives version 400 and the 402B patch: http://www.unrealtournament.com
The UT Windows CD.
Compile and install the new kernel with AGP GART support (preferably as a module), MTRR support, ISO 9660 FS, and Microsoft Jouliet extensions. Make sure to select the correct chipset for your motherboard in the AGP configuration section.
Untar and peruse the README for newagp. Change to your source directory (usually /usr/src). Your kernel should be installed in a directory named "linux" or have a symbolic link called "linux" pointing to your kernel. Execute the following commands:
cat {path to newagp}/agpgart-{kernel version} | patch -p0
(Example: For a 2.2.13 kernel, you would type "cat /usr/src/newagp/agpgart-2.2.13 | patch -p0")
cd linux
Configure your kernel. Make sure to enable AGP GART support and select the appropriate motherboard chipset. The AGP entries are in the "character devices" section. Compile your kernel and build the modules if you have selected to enable AGP GART support via a module. Install your new kernel.
If you have selected to build the AGP GART support as a module, add the following line to /etc/modules.conf:
alias char-major-10-175 agpgart
Reboot with your new kernel and run the AGP test program included with the patch.
./configure; make; make install; ldconfig
Mount your CD-ROM to /mnt/cdrom. (This is essential, as there is a bug in the installer. /cdrom mountpoint or any other mountpoint will fail.)
Run the installer directly. (DO NOT run the install script as it also contains a bug.)
Unselect 3Dfx support in the installer and Click "Install".
Untar the UT linux 400B patch into the UT home directory created by the installer (/usr/local/games/UnrealTournament/).
Change to the directory containing the patch and follow the directions in the included README file for patching UT with XDelta.
Change to your source directory (usually /usr/src/) and execute the following commands:
(When asked for a password, simply hit "return")
cvs -d:pserver:anonymous@cvs.OpenUT.sourceforge.net:/cvsroot/OpenUT
login
cvs -z3 -d:pserver:anonymous@cvs.OpenUT.sourceforge.net:/cvsroot/OpenUT co
OpenUT
Copy Mesa.diff from the OpenUT directory to Mesa/src (usually /usr/src/Mesa/src/).
Change to the Mesa/src directory and issue the following command:
cat Mesa.diff | patch -p0
Switch to your GLX directory (usually /usr/src/glx/) and configure GLX with the following commands:
./autogen.sh --prefix=/usr --with-mesa=/usr/src/Mesa
--enable-agp
--enable-extra --enable-mtrr
make; make install; ldconfig
(You will NOT want to compile Mesa separately. This is handled by the --with-mesa option when you configure the build of GLX.)
edit /etc/glx.conf (for your chip-specific settings)
edit /etc/XF86Config and add the following lines:
(The above locations for glx.conf/XF86Config should be fine for SuSE and Slackware installations. Redhat and Debian users should use /etc/X11/glx.conf and /etc/X11/glx.conf respectively. Other distributions may use /etc/X11 as well. If glx.conf/XF86Config can not be found in the above location, try looking for the config files in /etc/X11/.)
Section "Module"
Build SDL with the following commands:
./configure; make; make install; ldconfig
Build SDL mixer and libmikmod in the usual manner:
./configure; make; make install; ldconfig
make
Change to your OpenUT/System directory (usually /usr/src/OpenUT/System) and execute the following command:
./UnrealTornament
If all went well, you'll be playing UT under linux!
A) Make sure you specify --prefix=/usr/ when you compile GLX. If this still fails, create a symbolic link from /usr/local/include/GL pointing to /usr/src/Mesa/include/GL, then rebuild UT.
Example: ln -s /usr/src/Mesa/include/GL /usr/local/include/GL.
Q) When launching UT, I see the intro through a narrow "band" in the middle of the screen. Switching to a window does not fix the problem.
A) Launch UT with -defaultreson the command line. You should only need to do this once.
Q) I see the splash screen and the game terminates immediately afterward with no error message on my console.
A) Try -nosplash -nosoundon the command line. Try running as root.
Q) How come there is no music?
A) Edit OpenUT/System/UnrealTournament.ini and change UseDigitalMusic=FALSE to UseDigialMusic=TRUE (section Audio.GenericAudioSubsystem).