Quaking on Linux
We’ll start off with Quake 1. One prerequisite to getting Quake 1 (and Quake 2) running on your system is `svgalib’. Svgalib is a general graphics library used by non-X applications. It’s also used to process the mouse and keyboard input.
Svgalib is available from http://www.svgalib.org. We’ve used 1.4.2 here. It’s pretty much standard across Linux distributions, so you’re most likely to get it on your installation discs. The only reason for you to re-compile svgalib would be if you’re on kernel 2.4. You might, on running a graphical application like quake, get an error saying “svgalib: mmap error in paged background memor.” To fix it, just download and untar the source somewhere. Open the file Makefile.cfg and look for a line BACKGROUND=Y. Comment this line out, if not already commented out. Save the file and compile the source. This error is documented in the Svgalib FAQ. This was not required on Red Hat 7 but was required on our SuSE 7.1 installation.
After you’ve-compiled and installed, go into the /etc/vga. Edit the file libvga.config. There are several configuration options that you should look at.
First, un-comment the mouse type currently in your system.
Now, look for the following values and modify to your liking. The config file is very well documented and you should read the comments to figure out the best setting. As an added bonus, most of the settings are tuned for power Quaking.
Then, look for “chipset VESA”. This will enable VESA support and give you access to the higher resolutions in Quake. If your card or chip is listed then, un-comment that. Our Matrox G400 wasn’t listed so we chose VESA. If your card isn’t listed then this is a safe bet.
The above settings are enough to get you started. There’s a lot of interesting stuff you can do with this file. For example, using the keyboard scan codes, you can fake mouse movements. There are some clever examples given in the default configuration files.
The next item on the list is libc 5. This is required for running Quake 1. Quake 2 doesn’t require these libs. Look for libc5 on Red Hat and shlibs5 rpm on SuSE.