UT2004 - cannot launch due to legacy audio error

Hi so i have been playing this game for about 2 decades ago but gave up 2-3 when my latest OpenSuse install wasn’t able to get it working again. now i have UT3 on wine and playing other stuff via Steam i would really like to get this going again, i have installed all my usual dated libraries it needs:

Libstdc++5
OpenAL
alsa-oos

  • FreeAult as it has been mentioned in a few guides

however im getting this which is is not a simple missing item error:

#######@localhost:~/ut2004> ./ut2004
Failed to find object ‘Class ALAudio.GenericAudioSubsystem’

anyone with tome hints about searching errors in syslog or kernel to get more detail???

Hi ninjafez. I’m not a game player but to start with I assume that audio is configured appropriately?

Since it is a 32-bti game ensure that the relevant libraries are installed.

Check (in the directory where it is installed)…
ldd ./ut2004 | grep openal
Is there a link like libopenal.so.1 => /usr/lib/libopenal.so.1 present?

You need to check that libopenal1-32bit is installed…
zypper se -si libopenal

UT 2004 is 32bit and 64 bit.
From my personal notes (UT 2004 on openSUSE Leap 15.6): UT 2004 is installed in /usr/local/games

==== UT 2004 64bit ====
Change in /usr/local/games/ut2004/ut2004

  # Let's boogie!
  if [ -x "${UT2004_DATA_PATH}/ut2004-bin-linux-amd64" ]
  then
          cd "${UT2004_DATA_PATH}/"
          exec "./ut2004-bin-linux-amd64" $*
  fi
  echo "Couldn't run UT2004 (ut2004-bin-linux-amd64). Is UT2004_DATA_PATH set?"
  exit 1

==== libSDL-1.2.so.0 not found ====

  • 32bit UT
    ln -s /usr/lib/libSDL-1.2.so.0 /usr/local/games/ut2004/System/libSDL-1.2.so.0
  • 64bit UT
    ln -s /usr/lib64/libSDL-1.2.so.0 /usr/local/games/ut2004/System/libSDL-1.2.so.0

==== libstdc++.so.5 not found ====

  • 32bit UT
    Install libstdc++33-32bit (Dynamische C++-Bibliotheken)
  • 64bit UT
    Install libstdc++33 (Dynamische C++-Bibliotheken)

==== No Audio ====

  • 32bit UT
    ln -s /usr/lib/libopenal.so.1 /usr/local/games/ut2004/System/openal.so
  • 64bit UT
    ln -s /usr/lib64/libopenal.so.1 /usr/local/games/ut2004/System/openal.so

==== Dynamic Shadows are disabled ====

  • Edit the UT2004.ini file in the [OpenGLDrv.OpenGLRenderDevice] section, ensure that ‘’‘‘UseRenderTargets=True’’‘’.
  • Edit the User.ini file - in the [UnrealGame.UnrealPawn] section, ensure that ‘’‘‘bPlayerShadows=True’’‘’ and ‘’‘‘bBlobShadow=False’’‘’ and ensure that in the [Engine.Vehicle] section, ‘’‘‘bVehicleShadows=True’’‘’.

==== Extra quality in OpenGL rendering ====
Edit these settings in the aforementioned UT2004.ini file

   [Engine.Engine]
   DetectedVideoMemory=(Number in MB, usually set to 0 by default)
   [Engine.GameEngine]
   CacheSizeMegs=(Number in MB, usually set to 64. Set higher for better performance)
   [OpenGLDrv.OpenGLRenderDevice]
   UseVSync=True (Set False by default. 'True' provides a more consistent framerate.)
   UseVBO=True (Gives access to the OpenGL VBO. Set True for performance gain.)
   UseVSync=True (This appears twice in the settings, for some reason. Set this to True as well.)
   UsePixelShaders=True (Set to False by default. Gives access to, well, pixel shaders.)

Thanks for chiming in here. Those look like useful notes…so it may just missing a symlink?

Hi Guys, So yeah my LibSDL and OpenAL are both Symlinked into the system directory and at right arch as it does start for a second without any warning ELFCLASS32 etc etc

checked and i have both 32bits of Libopenal1 and 0

Might also be worth trying ./ut2004 -audiomode=ALAudio from a terminal once, just to force the OpenAL backend and rule out a config issue. Staring with this flag useful to confirm whether the failure is engine selection vs
a library loading issue.

So in regards to openAL below the ALL linked items the binary wants for clarity:-

acreda@localhost:~/ut2004/System> ldd ./ut2004-bin
linux-vdso.so.1 (0x00007f8c94793000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8c9476e000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8c94769000)
./libSDL-1.2.so.0 (0x00007f8c94732000)
libstdc++.so.5 => /lib64/libstdc++.so.5 (0x00007f8c9464e000)
libm.so.6 => /lib64/libm.so.6 (0x00007f8c94553000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f8c94526000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8c94200000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8c94795000)

obs the linux stuff is loaded in to memory - all the other linked ones are good and also are in file list on the Yast GUI single sw installer… the Lib SDL is 'ln -s 'to the 64 bit version, im sure i tired the 32 as i have that in my command history and i assume it didn’t go well :slight_smile: but i cant remember exactly.

i know i shouldn’t throw out theories rather than investigating… i know that a lot of old programs used /dev/dsp andor OSSPD… could it be expecting something there… i have also tried substituting the Generic device for the AL device that does have a settings list in the Default INI settings file to no avail…

Did you try running the game from a terminal as I suggested in my last post?

yes i did i’m afraid no improvement or any different output

just seen this post, may travel down the dsp rabbit hole and see where it goes…

@ninjafez Thought about the flatpak version “com.epicgames.ut2004”?

1 Like

Apologies, I loaded the launcher wrapper system from flatpack installer and indeed after transfering my game files, it did work… would love to know how it did it so may poke around but it not open source not easy to see what i have been missing…

thanks for all the assistance, if i do figure it out before this post gets closed i will come back and list what it was