Quake 3 Sound Fixes

The first two sections of this page offer some basic help for AC97 sound users and general problems with sound in Quake 3.

The "Sound Blaster / Audigy" section and remaining sections will only help if you need to use TeamSpeak or Ventrilo while you are playing Quake 3.

This page offers possible workarounds for sound problems in Quake 3.

Quake 3 Locks Up WTF!?!

Try this:

./quake3.x86 +set s_musicvolume -1

AC97

If you have problems getting sound in Quake 3 using on-board sound (AC97), try these commands:

su
echo "quake3.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "quake3.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss

Problem...


If you are using on-board sound (AC97) you will probably never be able to use Ventrilo or TeamSpeak at the same time as Quake 3.  Welcome to Linux, and welcome to shitty Q3 sound code.

Sound Blaster / Audigy

While you will have no problems with sound in Quake 3 with a Sound Blaster / Audigy setup, you will still have to run some similar commands in order to use TeamSpeak and/or Ventrilo at the same time you are running Quake 3.

Commands:

su
echo "quake3.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "quake3.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
echo "quake3.x86 0 0 disable" > /proc/asound/card0/pcm1c/oss

Automatically Load Sound Commands

Manually running these sound commands every time you reboot gets a little old, even if you don't reboot linux very often.

I tried a few things and nothing worked, I tried putting the commands in boot.local, then I tried making my own start stop scripts to automatically load with the system, everything failed.

Warning...  the solution I am about to mention is probably the worst in the history of linux, but I don't care because I know it works for me.  You may not have the exact file that I mention below, but you will have one that ends similarly that can be used equally as well.  If you ever update your system, the file you edit here may eventually be updated or renamed, in which case you will need to hack your changes back in later.

Solution...

So, I looked for a high numbered "S" file in /etc/init.d/rc5.d (init 5 / rc5.d is the normal runlevel for graphical mode linux) that I could hack.  I found one named S21stopblktrace that ended (the ending inside the file) with these lines:

esac
rc_exit

Edit the file as root with Kate:

su
kate /etc/init.d/rc5.d/S21stopblktrace

And change the ending to this:

esac
echo "quake3.x86 0 0 direct" > /proc/asound/card0/pcm0p/oss
echo "quake3.x86 0 0 disable" > /proc/asound/card0/pcm0c/oss
echo "quake3.x86 0 0 disable" > /proc/asound/card0/pcm1c/oss
rc_exit

Test Everything

This section assumes that TeamSpeak and/or Ventrilo are already setup and working correctly on your computer.

If you do not have these setup, you will not be able to test right now.

If you are ready to test, do these things:

Reboot.

Start TeamSpeak or Ventrilo.  You don't need anyone to be on TeamSpeak or Ventrilo to test this.

Start Quake 3.

If you can hear sounds in Quake 3, then your "echo" commands (above) are working and you should now be able to play Quake 3 and use TeamSpeak of Ventrilo at the same time.