Next Previous Contents

6. Trouble-shooting

A new site with community forums is LinuxQuake.Org. Other trouble-shooting resources can be found at: Jörgen's GLQuake Site, the old version of this how-to, and Linux Gamers FAQ.

Often, using an alternative game engine such as TyrQuake, FuhQuake and Darkplaces will fix mouse and sound related problems.

6.1 Bash won't start the program

"bash: ./glquake.glx: Permission denied"

"bash: glquake.glx: command not found"

6.2 Program dies at startup

This is not good, but some simple options to try are:

Files not lowercased or Data files missing.

Linux Quake requires (most) filenames to be in lowercase. If you get an error similar to "Error: W_LoadWadFile: couldn't load gfx.wad" it means the game can't find the data files, possibly because they are not all lowercase.

"Memory overwrite in Sys_Printf"

Problems with GCC 4

6.3 Program dies loading level

6.4 Sound Problems

For more information see the drivers section.

An error such as: "/dev/dsp: Device or resource busy" indicates some program is already using your sound card, and you will have to halt this program to get Quake sound effects.

"Quake engine games exit, and I see an error about mmap!"

Sound stutters or is not very good.

6.5 Compilation Issues

The dynamic nature of GNU/Linux means compiling old software is often hard work, and even small hurdles are impossible for people not experienced in C programming. Below are a few relevant issues.

GCC-4.x

The GNU C compiler has recently had a major revision, and most modern distributions now include GCC-4.1. (To find out which version you are using, type gcc --version). The author used GCC-3.2.2 to make this How-To, and people using GCC-4.x may find extra problems when compiling programs:

Warnings

GCC-4.x issues many more compilation warnings than 3.x. These are small errors that can generally be ignored, but when the compiler is given the "-Werror" flag, warnings will bring everything to a halt. To fix this you can safely remove the "-Werror" from the program's Makefile.

Slurred Sound

Yet another sound issue. This common problem is fixed by altering snd_mix.c thus:

-           snd_scaletable[i][j] = ((signed char)j) * i * 8;
+           snd_scaletable[i][j] = ((j < 128) ? j : j - 0xff) * i * 8;

Optimizations

GCC-4.0 in particular had a problem with "-O" flags breaking some variable type-casting. If you are able to compile the program , but it segfaults, try disabling these optimizations by removing the "-O" options from any makefiles.

If you are having troubles compiling with GCC-4 which weren't there previously, it's possible to install GCC-3.x alongside 4.x. Most people will want to look for precompiled packages from their Linux distribution.

Once GCC-3.x is installed, the program must then be told to compile with this version rather than the default 4.x. Projects that come with configuration scripts will often have options for defining which compiler to use (type ./configure --help and look for hints), and other times you be able to use export CC=gcc32 or edit the Makefile and replace occurrences of "gcc" with "gcc32" (or "gcc-3.2.2", etc) manually.

64 Bit CPUs

Most of these legacy programs will probably not compile to 64 bit binaries.

It is still possible to compile 32 bit binaries on a 64 bit operating system. To do so, edit Makefiles and add "-m32" to the load and compile flags (LDFLAGS, CFLAGS). This tells GCC to build and link a 32 bit program (if the 32 bit SDL and OpenGL libraries are also installed). You may also have to disable the use of x86 assembly.

If you are having trouble running 32 bit apps, try using the linux32 command. For example: linux32 tyr-glquake.

Nvidia Drivers

The latest Nvidia drivers can also cause headaches. Recently they have started installing their own OpenGL headers by default, which has lead to some conflicting variable declarations. This is fixed by removing them, or by uninstalling the drivers (with nvidia-installer --uninstall) and re-installing with the "--no-opengl-headers" option.

6.6 Other Issues

Game is too dark

If changing the brightness setting in the options menu doesn't work, you can use the xgamma program to brighten the whole display.

This tip will not work with poorly supported hardware. For Voodoo 1/2 users, visit here for more information.

Mouse look

"This game won't let me look around properly. %$!$@"

Mouse doesn't work properly

Try the following -

Game saves fail / Options not remembered

If you are running Quake as a normal user and experiencing these problems it's probably due to having insufficient privileges to write to the game directories. Solutions include:

Quake uses a confusing method of saving and restoring game options, especially when playing add-ons, and game options sometimes have to be reinitialized even though file permissions are not an issue. In such cases, the author can offer no simple advice %-/.

Crazy polygons

Some mission-packs/mods for Quake can cause existing player/monster models to be drawn with lines all over the place. To fix this, delete the directory "quake/id1/glquake". When you next run the game, it will remake this directory and everything should be fine.

Lines on screen

A common problem with 3dfx cards is a shower of flickering lines on the screen.

Other graphical anomalies

Some Quake engines use an OpenGL speed-up known as multitexturing. This normally works fine, but if you are experiencing glitches you can disable this feature with the -nomtex option.

Older video cards may occasionally draw models in all white. See the PlanetQuake command list for in-game GL variables to fine tune performance.

Glibc Problems

Some Linux software come as a Loki Installer shell archive with a ".run" suffix. The following tip is from the Icculus Gamers Faq:

Q: I'm using {random loki_setup based installer}, and it's telling me the "installation doesn't support glibc-2.1" or something

A: Just type the following before running setup.sh [or the installer]: export SETUP_LIBC=glibc-2.1. 

6.7 Video Drivers

Setting up hardware GL acceleration under Linux used to be a big deal, but modern distros should now handle this automatically. Of course there are exceptions...

Nvidia's drivers for all of their modern video cards are not open source. Because of this many distributions do not include them. If your Nvidia card is running slowly this is probably the cause and you should visit http://www.nvidia.com to download the Linux installer. In the author's experience these drivers are great, but not all versions work 100% with all cards and kernels. If you have a misbehaving Nvidia video card, try a different driver.

While new versions of XFree and Xorg have great support for Voodoo 3, 4 and 5, early 3dfx hardware such as Voodoo1, Voodoo2 and Rush are no longer hardware accelerated. To get OpenGL working for these cards, you'll need to download, install and/or compile the software libraries called Glide and Mesa. Here is a detailed README on old 3dfx cards.

Links

http://www.x.org

Linux Gamers ATI How-To

Linux Gamers Nvidia How-To

6.8 Sound Drivers

There are two major Linux sound systems - Open Sound System and ALSA. If you are experiencing sound problems and the trouble-shooting section hasn't helped, you may consider changing the sound driver. This can be hard work, and is only for experienced users.

To ascertain which driver you are currently using, type lsmod to list currently loaded kernel modules. The ALSA sound modules have verbose names starting with "snd_", while the OSS modules have more terse names. For example, the ALSA Sound Blaster Live module is "snd_emu10k1", while the OSS module is "emu10k1". Since Linux kernel 2.6, ALSA has been the standard sound system, while 2.4 and earlier were more likely to come with OSS sound.

Information about ALSA can be found at the Alsa Homepage and Linux Journal's Guide to ALSA.

For those already with ALSA wishing to try the OSS modules, a kernel recompile is probably necessary.


Next Previous Contents