
Like most iD titles, RTCW was ultimately released under the GPL, and is thus available as a GNU/Linux native game. Installing it under Gentoo is as simple as "emerge games-fps/rtcw", but unfortunately the game itself no longer works in modern GNU/Linux systems. This is only to be expected with proprietary software that becomes abandoned, and would affect the operation of that software on any OS, but naturally it doesn't have to be that way with Free Software, which can be revived at any time, even years later.
Currently there are several issues with iD Software's (now old) binary release, including a "ui/menddef.h not found" error, an inability to launch without a pre-existing "default.cfg" (and an inability to create an initial copy), a problem setting the correct video mode, an inability to accept keyboard input, broken support for SDL audio (which falls back to the now typically non-existant /dev/dsp device), a stack overflow condition triggered by large OpenGL extension strings (fixed by setting the variable "__GL_ExtensionStringVersion" to a lower number, typically 17700), and finally the source is not yet 64-bit ready.
The latest development of RTCW is bzzwolfsp [ed: the project is now called rtcwcoop], a "modification of the RTCW single player source code that brings you Cooperative gameplay", however I've had no luck getting it to work (the same "ui/menddef.h not found" error, and a "black screen of death" on the menu). It also seems to be only a coop game that offers no single player mode [ed: confirmed], and simply ignores the original pak3 files. Needless to say it's still a WIP.
But then I discovered this thread on the Arch Linux forum.
Following the simple instructions on that forum, I was able to build a fully-functional version of RTCW, and play the original single-player mode.
Get the sources here (see post #7 in the above thread for a list of build dependencies):
hg clone http://hg.ioquake.org/rtcw-sp # hg = Mercurial cd rtcw-sp wget http://slated.org/files/rtcw-1.41.patch cd src mkdir sdl && cd sdl wget https://raw.github.com/cbxbiker61/wolfsp/master/src/sdl/sdl_snd.c wget http://slated.org/files/sdl_snd.c.patch patch -p0 <sdl_snd.c.patch cd ../.. patch -p1 <rtcw-1.41.patch cd src/unix CFLAGS="-march=i686 -O2 -pipe -fomit-frame-pointer" # edit to taste, but must be x86_32 sed -i "s/\$BASE_CFLAGS = \$COMMON_CFLAGS . '-D.*$/\$BASE_CFLAGS = \$COMMON_CFLAGS . '-DNDEBUG $CFLAGS ';/" Construct ./cons -- release mv release-x86-Linux-2.1/out ~/RTCW cd ~/RTCW
You'll need to copy all your *.pak3 files over to the ./main directory (e.g. from the demo files or Wine install from CD) then run:
./wolfsp.x86
This will create and populate the ~/.wolf directory with configuration files, then start the game in the default (low, 4:3) resolution. For those with an HD display, you'll need to exit the game then do the following:
echo "seta r_mode \"-1\"" >>~/.wolf/main/wolfconfig.cfg sed -i 's/seta r_customwidth.*$/seta r_customwidth "1920"/' ~/.wolf/main/wolfconfig.cfg sed -i 's/seta r_customheight.*$/seta r_customheight "1080"/' ~/.wolf/main/wolfconfig.cfg
Getting cheats to work is a bit convoluted, but it works if you do the following:
echo "set sv_cheats 1" >> ~/.wolf/main/user.cfg ./wolfsp.x86 +set sv_cheats 1
Start a new game, open the in-game console with the "`" (backtick) key, and type:
/sv_cheats 1
You'll get an error about sv_cheat being read-only. Ignore that, save the game, then quit. Launch RTCW again using the same flags as before, load the saved game, open the in-game console then type:
/god /give all
Enjoy.
Comments
Awesome.
Thank you for this -- I was ready to resort to WINE.
Worked perfectly on Fedora 18 (x86_64). Needed to install several libraries during the "./cons -- release" step, but elsewise went without a hitch -- and with the side effect (thanks to the SDL patch) of SOUND working (which is awesome).
Good article.