The Wombelix Post

Unreal Tournament (UT99) on openSUSE Tumbleweed Linux

December 5, 2019 ยท

Unreal Tournament Linux

To be honest, i didn’t played Unreal Tournament from 1999 for years but after i found the Game CD, i just had to install and play it on my Linux Notebook ๐Ÿ˜€

Update #2 – 2019/12/06


Summary how to install Unreal Tournament (Classic / 1999) on openSUSE Tumbleweed Linux:

  • Add “games” Repository and install package “gtk”
    • zypper addrepo
    • zypper refresh
    • zypper install gtk
  • Install missing 32bit libraries
    • zypper install libX11-6-32bit
    • zypper install libXext6-32bit
    • zypper install libglvnd-32bit
    • zypper install Mesa-libGL1-32bit
    • zypper install pulseaudio-utils-32bit
  • Download and run the UT99 installer
    • wget
    • chmod +x
    • ./
  • Enjoy UT99
    • padsp <InstallPath>/ut

The whole journey

I own a TUXEDO InfinityBook Pro 14 v5 with an Intel UHD Graphics 620 Chip, running openSUSE Tumbleweed Linux, should hopefully be sufficient to play an 20 year old Game ๐Ÿ˜‰

The Installer can be downloaded from Linux Installers for Linux Games, i picked “” and “”. The other one available is for the “Game of the Year” (goty) Edition.

GTK in Version 1 is required by both installer, after some research i found the package in the openSUSE Software repositorie:

After installing the GTK package and inserting the Game CD into my external Drive, i just started the installer, adjusted the Install Path and started the installation.

UT99 Linux Installer - Start
UT99 Linux Installer - Progress
UT99 Linux Installer - End

Seems just too easy!?

Yep, after starting UT, i received an error message that “” is missing. Looks like the 32bit version is not installed by default, a “zypper install libX11-6-32bit” solved that problem. Same with the next missing library “”, “zypper install libXext6-32bit”.

Well, next Error:

Signal: SIGIOT [iot trap]

Let’s take a look into the log file by running “cat ~/.loki/ut/System/UnrealTournament.log”:

Log: binding
Critical: appError called:
Critical: Could not load OpenGL library

Ok, different kind of error message but after some research same as above, there is a 32bit version of but, for sure, i only had the 64bit one installed by default. Running “zypper install libglvnd-32bit” solved that issue.

Hmm but again the SIGIOT error occurred, let’s take a look into the log files again:

Log: OpenGL
Critical: appError called:
Critical: Couldn't set video mode: Couldn't find matching GLX visual

Lesson learned, to get a 20 year old game running on a bleeding edge Distribution in 2019, you have to install a bunch of 32bit libraries ๐Ÿ˜‰ This time “Mesa-libGL1-32bit” was missing and need to be installed.

And voila, it’s starting! without sound :O … Quite sure it’s a missing 32bit lib again … I found some hints regarding PulseAudio on So i installed “pulseaudio-utils-32bit” and after starting the game with “padsp ut” instead just “ut” i had sound ๐Ÿ˜€

To get rid of delays in the Audio Output, it was necessary to adjust one line in the config file “~/.loki/ut/System/UnrealTournament.ini” as well:

Change this: AudioDevice=ALAudio.ALAudioSubsystem
To that:     AudioDevice=Audio.GenericAudioSubsystem

Update #1 – 2019/12/05
It looks like that lot of audio sample rates which are required to play Online are not supported using the GenericAudioSubsystem. Connection to most of the UT Server fail and you find an Error about “unsupported Rate” in your “UnrealTournament.log” file. The workaround so far was to use the ALAudioSubsystem with a delay in the Audio Output ๐Ÿ™

Also lot Public Server require an installed NPLoader. Lot of different Version can be found here:

You have to Download the Linux.tar.gz or the .dll, .so as well .u file and copy all of them in your “System” folder of your UT install location, Example:

NPLoader Plugin Example

Even if i had to look around for some time to locate and fix most of the issues, install a bunch of 32bit libraries, adjust something in the config as well start the game with an extra parameter, it’s worth it!

Didn’t know the exact FPS count but look and feel is like 20 years ago and i love it!

Btw. installing the Bonus Pack was very straight forward with the “” script as shown below:

UT99 Bonus Pack Installer

Enjoy Unreal Tournament from 1999 on your Linux Machine!

Tux - Born to Frag
Newer Post

No Sound in DOSBox on Linux

I installed DOSBox to play some old DOS Games like Discworld on Linux (openSUSE Tumbleweed) but didn't had sound prior figure out the correct MIDI Port and adjusting the dosbox config accordingly. Due to the fact that i installed Unreal…
Older Post

Merge PDF Files on Linux

I had to use Cups-PDF and "Print" bunch of Pages to Single PDF Files due to the fact that no Download as PDF was possible. But how to Merge tons of files named as "Pagetitle-job_id{Number}" on Linux via commandline in…
Random Post

Apple AirPods on Linux?

I was wondering if my Apple AirPods would work on openSUSE Linux out of the Box. Just enable pairing mode, click on connect and all fine? Not exactly, it failed with the default settings and some additional Steps were necessary.…
Random Post

sigh - Google buys Fitbit

Jon Erlichman posted on Twitter ( that Google is going to buy Fitbit $2.1 billion. Except the price, Google announced it today as well ( We will see what the acquire actually mean for Fitbit and if Google just got…
Random Post

ScummVM did the trick!

After playing around with DOSBox a while ago i gave ScummVM a try and actually it couldn't be easier. I picked Discworld II and after adding it i could just start it without changing any settings at all, impressive. I'm…
Random Post

Accessing SMB Share on old NAS failed from Linux

Sometimes it can be challenging to use some old Hardware. In my case I found an old Buffalo LinkStation NAS (LS-WTGL) from around 2008. Connecting from an up-to-date openSUSE System surprisingly failed with the Error Message "Unable to initialize messaging…

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: