From: John McKenzie on
Hello.

I recently acquired a Snowball USB Microphone and although it works on
the operating system level and most applications it is not working with
Unreal Tournament 2004 (UT2004).

It works with Enemy Territory:Quake Wars, which does not work with any
mic, ever. (Two small changes to its configuration file made everything
work well with its VoIP abilities.) Not working with Teamspeak 2, but
with Teamspeak 3 coming I do not care and this was kind of expected.

Sound Recorder, etc, work fine. UT2004's VoIP ability has never, ever
been a problem for me before.

Right now I think OpenAL needs to be re-configured in some way. So far I
have done extensive research and cannot find the syntax or entry meanings
to the alsoft.conf file. Trying things like changing the "drivers=" line
has not worked.

Kubuntu 9.10 (64-bit)
Fully patched version of UT2004
Kernel 2.6.31.4-1000hz
SB live card
Blue Microphones Snowball USB Microphone

The Snowball mic was put to the top of the preferences list in System
Settings - Multimedia - Audio Capture and its sub-sections.

Kmix has it turned on, max volume and unmuted. (It also has the analogue
mic input under the Soundblaster Live Tab selected and it does not seem
to let me unselect it without making something else be a capture device
such as the CD entry.)


I like having VoIP abilities when playing my favourite mod, Carball, for
UT2004. It would be appreciated if someone could help get it working.

Thanks.





From: John McKenzie on

Ok, I figured it out. Posting this here on the off chance someone else
needs to know. Should be very similar for various forms of GNU/Linux, but
here are the specifics for Kubuntu 9.10 (64-bit Karmic Kola).

UT2004 comes with its own version of OpenAL. It is older and does not
understand the existence of Pulseaudio. It depends on configuration
methods changed over the years of OpenAL development.

It is likely that copying the version of OpenAL that came with Kubuntu
9.10 into the UT2004 directory and renaming it would work, but at first I
was unaware that UT2004 had its own version so I compiled the newest
version and used that.

OpenAL is a spec, what I actually doing is compiling a new version of
openal-soft, a specific software implementation of the OpenAL API. Pardon
the causal language.

So get a new version of OpenAL and put it in ut2004/system and rename it
openal.so. Back up the openal.so file that is already there just in case.
More details on how to do this below.

Then create a file called ".openalrc" and place one line in it that
contains the following

(define devices '(pulse))

and save it to your home directory. OpenAL has newer, easier ways of
configuring itself, but this is the only way I got it to work for me.
Perhaps it is related to how UT2004 works.

Kubuntu has in its /usr/lib/ directory files with "libopenal" in the
name. Two are symlinks, one is the actual library that ends in a version
name such as "libopenal.so.1.12.854". This file can be copied into ut2004/
system and renamed "openal.so" without the quotes. Again, backup the
original version of the file inside the ut2004/system directory.

I am reluctant to mess with the library files shipped with the game, but
I had to in order to get everything working. Also, these are 5 year old
files I am sure that the newest ones cover the improvements made by the
ones created by Epic. (And they may have influenced each other.)

Out of ignorance I thought I had to compile the newest of the new for
OpenAL software. I went to http://kcat.strangesoft.net/openal.html to get
the tarball of the newest openal-soft programme. You can use the
instructions there to compile the files (not hard) but there are some
things you should know first not mentioned in the instructions.

For Kubuntu you need to install the following before attempting the
compilation process:

libasound2-dev
libpulse-dev
cmake

They were installed via Synaptic.

You can extract the tarball into an arbitrary directory. The commands in
the readme should be typed inside a terminal while in the build sub-
directory of the extracted folders.

Once done three files will appear inside the build directory,
libopenal.so.1.12.854, libopenal.so.1 and libopenal.so. The name of the
first one will be different depending on the version number you are using.

Copy them to /usr/lib to update your system and copy
libopenal.so.1.12.854 to ut2004/system renaming it openal.so to update
UT2004. Make backups of all the original files just in case.

Do not forget to create the ~/.openal.rc file mentioned above.

This fixed it on my system. In game VoIP works perfectly now.