Next Previous Contents

5. Troubleshooting/FAQs

5.1 General

OS difference considerations

Glibc, RedHat 5.x, Debian 2 considerations (for Quake 1 only)++

[The following applies to the Quake I binaries (squake, glquake, and quake.x11) only. As of versions 2.30 and 3.19 respectively, QuakeWorld and Quake II are available in both libc5 and glibc versions.]

The Quake executables were compiled with libc5. Newer Linux distributions like RedHat 5.1 and Debian 2.0 use the incompatible libc6 (or glibc) as their default C library. If you're running Quake on a glibc system, there are a few things to watch out for:

My mouse doesn't work or seems to respond randomly. **

My Microsoft Intellimouse or Logitech MouseMan+ isn't working correctly.

SVGAlib, which handles mouse input for SVGA and GL Quake/QW/Q2, didn't directly support the Intellimouse until version 1.3.0. If you have a version of SVGAlib prior to 1.3.0, you should upgrade, then use mouse type IntelliMouse (for serial mice) or IMPS2 (for PS/2 mice) in your libvga.config file.

My mouse is "laggy" and seems much slower than under Windows.

I have a Voodoo2, and when I try to run with the gl renderer it reports that I don't have a Voodoo card installed.

There are different versions of Glide for Voodoo and Voodoo 2 cards. Be sure you downloaded the correct one for your system.

When I'm playing any of the Quake games under SVGAlib or GL and press CTRL-C, the game exits and sometimes leaves my console in an unusable state.

Sometimes when Quake/Quake II exits abnormally, it leaves my console unusable.

Yes. This bites. SVGAlib catches the CTRL-C and decides what to do with it instead of allowing Quake to handle it. I know of no way around this short of hacking SVGAlib.

If you run your Quake games from a script that resets the keyboard and terminal like the one below, you'll run less chance of ending up with a hosed terminal if this does happen, though.


     #!/bin/sh
     ./quake2 $*
     kbd_mode -a
     reset
     

squake/quake2 fails to start and says "svgalib: cannot get I/O permissions"

The Quake executables must run as root when using the SVGAlib renderer, so you must either run them as root or make them setuid root. See the installation instructions in this document for details.

Sometimes after playing one of the Quake games in X, key repeat doesn't work any more.

For some reason, the X11 versions of Quake disable key repeat while they're running. If the program exits abnormally for some reason, key repeat never get turned back on. Do

     xset r on
     
to reenable it.

Quake/Quake II says "/dev/dsp : device not configured"

Your sound hardware is not properly configured. You may simply need to do a insmod sound, or it may be necessary to rebuild your kernel. RedHat users may need to invoke the sndconfig(8) utility. See the documentation for your Linux distribution and/or the Linux Sound HOWTO for information on configuring your system's sound hardware.

GL Quake/Quake II run slower in Linux than in Windows. ++

The Windows 3Dfx GL miniport is heavily optimized for the things Quake II does. Mesa on the other hand, is more general and less optimized As a result, Linux Quake II runs slower than under Windows. This isn't a limitation of Linux, but a limitation of the current drivers.

With the most recent releases of QuakeWorld and Quake II, the 3Dfx miniport mentioned above is available for Linux. Also, in Quake II version 3.20, the OpenGL function handling code was completely rewritten, resulting in significant speedups.

Additionally, for Pentium Pro and Pentium II users, there are some tweaks than can be done with memory buffering - the latest /dev/3dfx device driver has support for automatically setting this up for you. Enabling MTRRs can result in significant (10 fps on my system) GL Quake speedups. See http://glide.xxedgexx.com/MTRR.html for some more detailed information about this.

On a PPro/PII system with a Voodoo2, performance under Linux is now at least as fast as under Windows.

How can I start a server and log off, then come back to it later?

screen(1) is a great utility for this sort of thing. It allows you to create many virtual screens in one tty and switch between them. Screen comes with most distributions. You can download it from ftp://prep.ai.mit.edu/pub/gnu or any GNU mirror.

Start screen by typing the command screen, then create a new screen window by pressing CTRL-A CTRL-C. You won't see much as you do these things, but be assured, something is happening.

Start a Quakeworld server:

     /usr/local/games/quake/qwsv 
     

Now open a new screen window with CTRL-A CTRL-C and start up a Quake II server:

     /usr/local/games/quake2/quake2 +set dedicated 1
     

You can switch back and forth between your servers by pressing CTRL-A CTRL-N.

Press CTRL-A CTRL-D to detach from the screen program. Screen and your servers are still running, but they're no longer visible in your terminal window. You can logoff now and your processes will continue to run normally.

Use screen -r to re-attach to your previous screen process and access your servers again.

That's all there is to it. See the screen(1) man page for more detailed information.

How can I keep the mouse from leaving the window in X? ++

From the Quake II readme.linux file (this applies to all version of Quake):

By default, the mouse will not be 'tied' to the Quake2 window. To cause Quake2 to grab the mouse, select 'Windowed Mouse' from the video menu, or type '_windowed_mouse 0' at the console. Do the reverse to release it. You can bind keys to grab and release the mouse in the console, like so: bind i "_windowed_mouse 1" bind o "_windowed_mouse 0" Then "i" will grab the mouse and "o" will release it.

When I run Quake/QuakeWorld/Quake II under X, the image only takes up half the window and/or the colors are all funny. ++

The X clients only support color depths of 8 and 16 bits per pixel. Your X server is probably running at 24 or 32 bpp. Change the default color depth to 16 bpp and this problem will go away.

Where can I get the source code for Quake/QuakeWorld/Quake II so I can compile it for PPC/Alpha/Gameboy/etc? ++

The source code for the Quake engines is the proprietary property of id Software. While there's a good chance that id will release the source to Quake eventually like they did for Wolfenstein 3-D and Doom, they have not done so yet. I don't have the source to Quake no matter how nicely you ask me for it.

5.2 Quake/QuakeWorld

Quake dies at startup with a segmentation fault.

This usually means your network setup isn't right. Try starting quake with the -noudp option and see if the error goes away. If that fixes it, check your /etc/hosts file and verify there's an entry for your machine in it. Use 127.0.0.1 for your IP address if you have a dialup account that gives you a different address each time you connect.

What's the difference between glqwcl, glqwcl.3dfxgl, and glqwcl.glx?

When I run glqwcl.glx fullscreen from X, I can't use my mouse or keyboard.

Run glqwcl.glx with the +_windowed_mouse 1 option. GLX Quakeworld is running in a window, even though it appears to take up your whole screen. If you move the mouse while the window manager is in focus-follows-mouse mode, you're likely to move the pointer outside this window, and then Quake will stop responding to mouse and keyboard input. +_windowed_mouse 1 makes Quakeworld grab the mouse exclusively.

5.3 Quake II

When I try to run Quake II with the GL renderer, it fails and says "LoadLibrary("ref_gl.so") failed: Unable to resolve symbol"

If immediately prior to the "Unable to resolve symbol" line, you have messages like "can't resolve symbol 'fxMesaCreateContext'", your Mesa library doesn't have glide support compiled in. See section The GL renderer in the Quake II installation section for information on installing Mesa and glide.

Quake II fails with the message LoadLibrary("ref_XXX.so") failed: No such file or directory

When I update the brightness while using the GL renderer, and hit "apply," nothing happens!

Type vid_restart in the console to make the changes take affect.

Note about the 3.17 distribution

As of this writing, the most recent Quake II version is 3.20. If for some reason, you're running version 3.17 instead, the following information may be helpful to you.

Two text files (quake2.conf and fixperms.sh) in the 3.17 distribution were inadvertently saved in MS-DOS CR/LF text-file format instead of the unix LF format. This means there's an extra carriage return character at the end of each line in these files and they're not going to behave right until you fix them.

We'll run them through tr(1) to strip out the CR's.

     for i in fixperms.sh quake2.conf
     do
     mv $i $i.bak
     tr -d '\r' < $i.bak > $i
     done
     

When I run Quake II with +set vid_ref glx fullscreen from X, I can't use my mouse or keyboard.

Run GLX quake2 with the +set _windowed_mouse 1 option. GLX Quake2 is running in a window, even though it appears to take up your whole screen. If you move the mouse while the WM is in focus-follows-mouse mode, you're likely to move the pointer outside this window, and then Quake II will stop responding to mouse and keyboard input. +set _windowed_mouse 1 makes Quake II grab the mouse exclusively.

Why can't I change to some of the SVGA modes that are in the Quake II Video menu?

SVGAlib probably doesn't know how to create the modes on your card. When Quake II starts up with the SVGA renderer (ref_soft.so), it prints a list of all the modes that SVGAlib tells it are available:

     ------- Loading ref_soft.so -------
     Using RIVA 128 driver, 4096KB.
     mode 320: 200 1075253220
     mode 320: 240 1075253220
     mode 320: 400 1075253220
     mode 360: 480 1075253220
     mode 640: 480 1075253220
     mode 800: 600 1075253220
     mode 1024: 768 1075253220
     mode 1280: 1024 1075253220
     
These are the only modes you will be able to successfully switch to from the Video menu. If say, 512x384 isn't on the list, selecting it from the Video menu won't work.

SVGAlib does let you define new video modes for some chipsets in libvga.config, so you may be able create your own video mode this way. See the SVGAlib documentation for more detail on this topic.

When I try connect to a Quake II server that's running a mod, quake2 crashes with the message "Error: VID: Could not open display". **

According to Zoid, this problem occurs when the video system restarts due to a gamedir change. Several libraries get unloaded and reloaded during the restart, and this apparently causes quake2 to blow chunks on many systems.

The workaround solution is to set the game CVAR on the command line before you start up quake2. So if you're going to connect to a CTF server, you'd start quake2 like:

     ./quake2 +set game ctf ...
     
This may seem inconvenient if you're used to connecting to new servers without leaving the quake2 program, but unfortunately it's the only way around this problem right now. A frontend program like XQF will automatically do this command line stuff for you, so you ought to consider using one if you're not currently doing so.


Next Previous Contents