These are the steps I used to run Quake3 on my 64-bit pure desktop. I will definitely be switching to ioquake3 (iourbanterror) any time I can. But as long as there are PB enabled servers or leagues that demand PB instead of BE, I'll continue using id software's engine.
Also note, it's possible to setup a 32-bit chroot as well. I chose this method because I only have one 32-bit application. If you want to go that route, there are several great tutorials on that.
I'm running 64-bit Debian in a mixed testing/unstable environment (very few unstable). Quake3 is naturally 32-bit linked so it won't run properly by default on your 64-bit system. If you try to run it, it will complain about not being able to find the file. It's actually complaining about not finding ld.so for 32-bit.
Before you begin, I assume you have a properly setup 64-bit system. You have Nvidia or ATI drivers properly installed and can run 64-bit games at full hardware acceleration.
I can only talk about Nvidia since I've never owned an ATI card. On Debian it is very easy to do this. Execute 'm-a' and do prepare (to setup /usr/src), then update to get the current list of modules, then select nvidia and build it. Once it is done compiling, click install and it will install the module for your running kernel.
Next update your /etc/modules to contain 'nvidia' so it is loaded at boot. Then configure your X.org config to use the 'nvidia' module. That's it.
The process for running Quake3 is simple:
- Install the package "ia32-libs" which will install these dependencies for people not on Debian:
Depends: lsb-release, lib32gcc1, libc6-i386 (>= 2.3.6-2), lib32z1, lib32stdc++6, lib32asound2, lib32ncurses5 - If you use Nvidia, install nvidia-glx-ia32
- Run a script for the antiquated OSS support in quake3
If you don't install the nvidia-glx-ia32 package, then you will get horrible FPS. I found this out the hard way. I was getting 25-90 FPS on my dual core system because it was software rendering (mesa). I had the nvidia library setup for 64-bit which worked great in ioquake3 with a solid 100 FPS. After I installed nvidia-glx-ia32, I get a solid 100 FPS in idsoftware's quake3 engine as well. I cap my FPS at 100 and I'm sure it would be much higher if I didn't.
If you don't run the script and use ALSA (everyone should use ALSA over OSS by now), it will complain about mmapping /dev/dsp. Here's my script which also allows TS2 to work when I ran a 32-bit system.
#!/bin/sh
# Fail on first error
set -e
echo "Setting up proc entries: "
for i in quake3.x86 ioUrbanTerror.x86_64; do
echo -e "t$i"
# Enabling direct playback
echo "$i 0 0 direct" > /proc/asound/card0/pcm0p/oss
# Disable capturing
echo "$i 0 0 disable" > /proc/asound/card0/pcm0c/oss
done
I haven't tried out TS2 yet in 64-bit Linux but I know it will require these 32-bit compatibility libraries. They say TS3 will support native 64-bit binaries. TS2 is evidently coded in Delphi which doesn't have a 64-bit compiler for Linux.