UNIX Quake Ports

General

Any Quake instllation (server or client) require that the Quake data files exist on your Unix file system; however, the Quake installer only works under DOS/Windows so you must have access to an existing Quake installation that you can copy to your Unix file system.

For optimum performance, you should copy everything to a directory on your local system before starting play so that you are not mounting files from a remote filesystem. In order to use this program, you need the files pak0.pak and pak1.pak in the id1 directory found on a registered copy of Quake. You can ftp them to your Solaris host from a Windows95 machine for example. The files must be in an id1 subdirectory from the directory you install Quake/QuakeWorld, and all file names must be lowercase.

Addon packages such as ThreeWave CTF work fine as well, just place such addon packages in their own directory as you would on a Windows95 installation. But again, make sure all files are lowercase.

The basic steps to installation are:

  1. Create a Quake base install directory, such as /usr/local/games/quake and copy the Quake directory tree over. You may omit to copy over the DOS/Windows executables and .DLLs over as they serve no purpose on a UNIX installation.
  2. Extract the suitable Quake UNIX executable into the Quake directory (where QUAKE.EXE would normally be found.
  3. Set the file ownership and permissions.


Clients

Linux

There exist both Quake and QuakeWorld clients for Linux. The general requirements for them are as follows:

Installation

Boot DOS and install Quake from your Quake CD to a DOS parition. Boot Linux and make a directory for Quake. Copy everything from the DOS Quake directory into it.

Ex: (cd /dos/quake; tar cf - .) | (cd ~/quake; tar xf -)

After you get the skin files from ftp.idsoftware.com (currently, qw_skins.zip, qws_9652.zip, and qws_9706.zip) and install them in qw/skins, you should run the shell script fixskins.sh that you can find in the qw/skins directory in the client distribution.

Place qwcl into your Quake directory. You must make it setuid root (since Quake access stuff like direct video writes, the raw keyboard mode, CD, etc). Quake will setuid back to the normal user as soon as it opens these files. Make Quake suid root as follows:

chown root qwcl
chmod 4755 qwcl

Run qwcl. It is not recommended to run it as root, since all the saved config.cfg files will be then owned as root.

QWCL for X11 does not need to be setuid root.

Sound can fail if /dev/dsp is not mode 666.

It should work with SCSI CDROMs, but it is untested.

Command Line Options

-mem <MB>
Specify memory in megabytes to allocate (default is 8MB, which should be fine for most needs).
-nostdout
Don't do any output to stdout.
-cddev <device>
CD device, default is /dev/cdrom.
-sndsample <8 or 16>
Set sound bit sample size. Default is 16 if supported.
-sndspeed <speed>
Set sound speed. Usual values are 8000, 11025, 22051 and 44100. Default is 11025.
-sndmono
Set mono sound.
-sndstereo
Set stereo sound (default if supported).
-winsize <width> <height>
Set the size of the window when you start.


Solaris

There are a few major difference between this port and the vanilla Quake/QuakeWorld available on the Internet.

Command Line Options

+pixel_multiply
You can magnify the screen by using this flag:
Ex: % quake +pixel_multiply 2
You can also use this command (without the dash) from the Quake console. pixel_multiply is a Quake cvar and is saved from session to session in the config.cfg file.
-winsize <width> <height>
Set the size of the window when you start.
-count_frames
See how many frames per second you're getting.

Game Settings

mouse binding
You can bind and unbind the mouse to the Quake window by using the Use Mouse selection in the Options menu, or with the "_windowed_mouse" command in the console,
Ex: "_windowed_mouse 1"
Now, moving the mouse will move your player. Use _windowed_mouse 0 to unbind. You can bind or alias this to a key.

Example command:

% quake.xil +pixel_multiply 2 -winsize 400 300


Servers

Dedicated servers are available for Linux 2.0-i386, BSDI 3.0-i386, and Sun SPARC Solaris 2.5.1.


Troubleshooting

Note that Quake may SEGFAULT if it tries to initialize a sound card or CD-ROM when there isn't one present. Use the -nosound or -nocdaudio options.

If SVGALib does not detect your 3 button mouse check your libvga.config (/etc/vga/libvga.config for Slackware users).

If Quake coredumps on you at start up for no apparent reason, try -nonet to disable networking support. If this fixes the problem, you have a network configuration issue to solve.

Before mailing Dave 'Zoid' Kirsch about a bug or problem, please check your kernel, libc, SVGALib and other software versions.

The default sys_ticrate of a server is .05, which is fine for people with a fast connection; however, for Internet servers it is recommended that sys_ticrate .1 is used.

For the QuakeWorld servers, the command-line option -gamedir is not supported, use gamedir and sv_gamedir in your server.cfg file. +gamedir should be set to the add-on game directory on the server i.e. +gamedir ctf4.1 and +sv_gamedir ctf. Since the the servers tell the clients what directory they should use locally to load files, it is very important that sv_gamedir is set to the directory the clients use.


Administration

You may run the servers in the background with a command like:

nohup unixded &

but if you wish you logout, you will lose the ability interact with the console in future logins and must use the kill command to shutdown the server. Or, as an alternative, a program called screens is included with many Unix distributions. Screens provides features such as multiple consoles per login and allows consoles to be detached at logout and reattached in a later login. If your Unix system doesn't have screens, you may grab the source to screens from ftp://prep.ai.mit.edu/pub/gnu/screen-3.7.2.tar.gz.