Ut99 Sound Utglr FGLRX On Ubuntu Wily
Ut99 Sound Utglr FGLRX On Ubuntu Wily
Ut99 Sound Utglr FGLRX On Ubuntu Wily
Wily
sairuk / April 11, 2016
Running UT99 natively in Linux has always been a dark art, more so of late with the increasing
popularity of 64bit distributions.
The only agreed solutions for running a GL renderer seemed to be
• Running an Nvidia card which is fine providing you already had an Nvidia card or where in
the market for one.
• The poor ATI (fglrx) users you could run the Software Driver.
Sound was interesting to set up, there are a couple of alternatives to the setup that we will list here.
Our method will be done in such a way that it may be reused for other 32bit applications.
Our OS of choice is Ubuntu 64bit Wily 15.10 a Debian based distribution although the same
approach should work for RPM based distributions the package names may change.
NB: When reading through this guide substitute <installpath> for the locate of your UT99 install,
we cannot predict the location of each individual installation therefore we have chosen to list it as
<installpath>.
Firstly lets configure UT99 to boot without sound in safe graphics mode (software) so we at least
know it runs and can test everything else.
Graphics (Safe)
Edit <installpath>/System/UnrealTournament.ini => [Engine.Engine] section
GameRenderDevice=SDLSoftDrv.SDLSoftwareRenderDevice
WindowedRenderDevice=SDLSoftDrv.SDLSoftwareRenderDevice
RenderDevice=SDLSoftDrv.SDLSoftwareRenderDevice
This will launch the game with the software driver enabled, it’ll look like garbage but will be
playable. If you game does not run, your issue is outside the scope of this guide but you are
welcome to ask questions in the comments.
Once UT99 launches successfully it’s time to talk about sound, by default the system installs in a
64bit state, we will need the 32bit Pulse Audio libraries to enable sound for our 32bit UT99 (and
other) applications
Update our new padsp32 wrapper to use 32bit libraries locations instead of the existing 64bit
sed -i /x86_64-linux-gnu/i386-linux-gnu/g /usr/bin/padsp32
With sound enabled we can now look at changing the renderer from software to OpenGL
Once this is changed in the ini, if you try to run UT99, it will segfault (refer Technical Information
on Failure Mode). To move UT99 into a working state with fglrx follow these steps,
Install the 32bit compatibility libraries – The GNU Standard C++ Library v3
$ sudo apt-get install libstdc++5:i386
This will stop UT99 linking to the newer libstdc library and segfaulting in Core.so
NB: While the renderer works, its worth nothing that you may boot to a black screen if you have
StartupFullscreen=True or switch to fullscreen via the interface. I am currently forced to run in
windowed mode when using the renderer. I am still looking into the settings to enable fullscreen
play. If you have a solution please leave a comment.
Optional
Replace the shipped libSDL-1.1.so.0 with the system libSDL-1.2.so.0 for improved graphics.
$ ln -s /usr/lib/i386-linux-gnu/libSDL-1.2.so.0 <installpath>/System/libSDL-
1.1.so.0
Performing this step will do away with the washed out (or too dark) look from the standard SDL
library giving more consistent colours.
Updates
2016-04-12 – UTGLR 3.6 Crashes when selecting servers from the server list, switched to UTGLR
3.1 201kb Version
OpenGLDrv.OpenGLRenderDevice
ldd ./ut-bin
linux-gate.so.1 => (0xf77ce000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf7796000)
libnsl.so.1 => /lib/i386-linux-gnu/libnsl.so.1 (0xf777b000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf775d000)
Engine.so => ./Engine.so (0xf7504000)
Core.so => ./Core.so (0xf7395000)
libSDL-1.1.so.0 => ./libSDL-1.1.so.0 (0xf72f6000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf72a9000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf70ed000)
/lib/ld-linux.so.2 (0x5661b000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xf6fa2000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xf6f8d000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xf6f68000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6f64000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf6f5c000)
My current OpenGLDrvb.so
42e1e4c5a1dbdd7f1e7f522cbede278a OpenGLDrv_utglr31_201kb_version.so
dmesg output
[ 6192.418458] ut-bin[30957]: segfault at a6c ip 00000000f7343407 sp
00000000ffbd3240 error 4 in Core.so[f72c2000+af000]
uname -a
Linux insertcredit 4.2.0-35-generic #40-Ubuntu SMP Tue Mar 15 22:15:45 UTC 2016
x86_64 x86_64 x86_64 GNU/Linux
Addition Information updated 15/04/2016 GLIBC error in fglrx after numerous execution of
OpenGL
$ strings /usr/lib32/fglrx/dri/fglrx_dri.so | grep GLIB
GLIBC_2.2
GLIBC_2.1
GLIBC_2.0
GLIBCXX_3.4
GLIBC_2.1.1
GLIBC_2.1.3
$ LIBGL_DEBUG=1 ./ut-bin
libGL error: OpenDriver: failed to open /usr/lib/fglrx/dri/fglrx_dri.so,
error[/usr/lib/fglrx/dri/fglrx_dri.so: cannot open shared object file: No such
file or directory]
libGL error: OpenDriver: failed to open /usr/lib/x86_64-linux-
gnu/dri/fglrx_dri.so, error[/usr/lib/x86_64-linux-gnu/dri/fglrx_dri.so: cannot
open shared object file: No such file or directory]
libGL error: OpenDriver: failed to open /usr/lib/dri/fglrx_dri.so,
error[/usr/lib/dri/fglrx_dri.so: wrong ELF class: ELFCLASS64]
libGL error: OpenDriver: failed to open /usr/lib32/fglrx/dri/fglrx_dri.so,
error[./libstdc++.so.6: version `GLIBCXX_3.4' not found (required by
/usr/lib32/fglrx/dri/fglrx_dri.so)]
libGL error: OpenDriver: failed to open /usr/lib/i386-linux-
gnu/dri/fglrx_dri.so, error[/usr/lib/i386-linux-gnu/dri/fglrx_dri.so: cannot
open shared object file: No such file or directory]
libGL error: OpenDriver: failed to open /usr/X11R6/lib/modules/dri/fglrx_dri.so,
error[/usr/X11R6/lib/modules/dri/fglrx_dri.so: cannot open shared object file:
No such file or directory]
libGL error: OpenDriver: failed to open /usr/lib/dri/fglrx_dri.so,
error[/usr/lib/dri/fglrx_dri.so: wrong ELF class: ELFCLASS64]
libGL error: OpenDriver: failed to open
/usr/X11R6/lib32/modules/dri/fglrx_dri.so,
error[/usr/X11R6/lib32/modules/dri/fglrx_dri.so: cannot open shared object file:
No such file or directory]
libGL error: OpenDriver: failed to open /usr/lib32/dri/fglrx_dri.so,
error[/usr/lib32/dri/fglrx_dri.so: cannot open shared object file: No such file
or directory]
References for UT99 Sound/UTGLR/FGLRX on Ubuntu Wily
• An enhanced OpenGL renderer for Unreal Tournament
• UT-Files OpenGL Renderers