Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CGarces/bdda800dbe4836e04bae81eb8b5b5282 to your computer and use it in GitHub Desktop.
Save CGarces/bdda800dbe4836e04bae81eb8b5b5282 to your computer and use it in GitHub Desktop.
Install Unreal Tournament GOTY on Debian Jessie 64bits

Install Unreal Tournament GOTY on Debian 64bits

Run natively Unreal Tournament Game Of The Year (GOTY) on Debian system.

UT is not dead! The install process is a bit cumbersome but the game has been published more than 20 years ago! Please let me know how it went for you and if you have any tips, please share :)

And most important, have fun!

(Tested on Debian Bullseye 64bits)

Requirements

  • Two ISO physical discs (or ISOs) of Unreal Tournament GOTY (v436)

Dependencies

The game runs in 32bits, we need to install some minimal 32 bits packages in order to run install script and the game itself:

$ sudo dpkg --add-architecture i386
$ sudo apt update
$ sudo apt install libx11-6:i386 libxext6:i386 libc6:i386

For the sound, I used to use another hackish method with padsp32 but recently tried Open Sound System (OSS) and it works great. Install it and start the proxy daemon:

$ sudo apt install osspd osspd-pulseaudio
$ sudo systemctl start osspd.service

Grab the Loki installer named ut-install-436-goty somewhere (DuckDuckGo it if the link below is dead):

$ curl -O https://princessleia.com/tools/ut/ut-install-436-goty.run

NOTE: Another installer named ut-install-436-multilanguage-goty exists but it has a GTK graphical install with obsolete dependencies... Boring and useless!

Tweak the installer

Once downloaded, uncompress the installer. We need to modify 2 shell scripts to fake our 64bits architecture.

$ sudo ./ut-install-436-goty.run --keep
$ cd ut-436-GOTY/

Edit both ./setup.sh and ./setup.data/apply-patch.sh and replace function named DetectARCH() by this one:

DetechARCH() 
{
    echo "x86"
    return 0
}

Save both files. We can now start the install process.

Installation

Launch installer script, answer yes (or simply hit ENTER) to all questions except the first one:

$ sudo ./setup.sh
----====== Unreal Tournament GOTY installation program ======----
You are running a x86 machine with libc5
Hit Control-C anytime to cancel this installation program.
Would you like to read the README file ? [Y/n] n
Please enter the installation path [/usr/local/games/ut]
Do you want to install symbolic links to a directory in your path? [Y/n]
Please enter the path in which to create the symbolic links [/usr/local/bin]
Install Binary Files? [Y/n/?]
Install OpenGL as default renderer? [Y/n]
Install Data Files? [Y/n]
Do you want to install desktop items? [Y/n]
Installing to /usr/local/games/ut
10945 MB available, 668 MB will be installed.
Continue install? [Y/n]
Installing ut binary ...
 100% - /usr/local/games/ut/ut
Installing ucc binary ...
 100% - /usr/local/games/ut/ucc
Installing Binary Files ...
...
Please mount the Disc One CDROM.

The script hangs until you mount 1st disc, spawn a new term and mount it:

$ sudo mount -o loop /path/to/ut-1.iso /media/cdrom0

Back to the installer, answer yes, it will copy a bunch of files and hangs again for 2d disc:

Choose Yes to retry, No to cancel [N/y] y
Installing Data Files ...
...
Please mount the Disc Two CDROM.
Choose Yes to retry, No to cancel [N/y] 

Unmount the previous, mount the new one and anwser yes:

$ sudo umount /media/cdrom0
$ sudo mount -o loop /path/to/ut-2.iso /media/cdrom

After copying the needed file it will finish by patching some files and decompressing all the maps found in /usr/local/games/ut/Maps/ This take a while.

stage 0: 0.073435 secs
stage 1: 0.044184 secs
stage 2: 0.087546 secs
stage 3: 0.032729 secs
stage 4: 0.091152 secs
Total: 0.329047 secs
Decompressed ../Maps/AS-Frigate.unr.uz -> AS-Frigate.unr
WARNING: Not using preference directory
stage 0: 0.052972 secs
stage 1: 0.030028 secs
stage 2: 0.063270 secs
stage 3: 0.022275 secs
stage 4: 0.059120 secs
Total: 0.227666 secs
Decompressed ../Maps/AS-Guardia.unr.uz -> AS-Guardia.unr

Finally answer no to the last question, we don't want to run the game as root:

Installation complete.
Would you like to launch the game now? [Y/n] n

Unmount the second disk:

$ sudo umount /media/cdrom0

Then start the game with your current user. It'll create your loki userdir and probably abort because of OpenGL:

$ ut
Creating preferences directory...
Creating directory /home/user/.loki/ut/
Creating directory /home/user/.loki/ut/System
...
binding libGL.so.1
appError called:
Could not load OpenGL library
Executing UObject::StaticShutdownAfterError
Executing USDLClient::ShutdownAfterError
Executing USDLViewport::ShutdownAfterError
USDLGLRenderDevice::ShutdownAfterError
Signal: SIGIOT [iot trap]
Aborting.
Exiting.
Name subsystem shut down

Post configuration

Edit the new config file located at ~/.loki/ut/System/UnrealTournament.ini.

Set UT Engine to SDL instead of OpenGL. The graphics are quite decent with it. With OpenGL this will probably better but you need additional dependencies and a lot of hassle to get things work correctly.

Check the package libsdl2-2.0-0 is installed on your system.

In section [Engine.Engine], change the render device to SDLSoftDrv.SDLSoftwareRenderDevice :

[Engine.Engine]
GameRenderDevice=SDLSoftDrv.SDLSoftwareRenderDevice
WindowedRenderDevice=SDLSoftDrv.SDLSoftwareRenderDevice
RenderDevice=SDLSoftDrv.SDLSoftwareRenderDevice

On the same section, change the sound engine GenericAudioSubsystem and to get a better sound experience, on the dedicated section [Audio.GenericAudioSubsystem] set the surround mode to on:

[Engine.Engine]
AudioDevice=Audio.GenericAudioSubsystem
...
[Audio.GenericAudioSubsystem]
UseSurround=True

You can now run and enjoy the game:

$ ut

Advanced steps

Here the key folders/files you need to know:

  • System directory : /usr/local/games/ut
  • Default game settings: /usr/local/games/ut/System/UnrealTournament.ini
  • Default maps dir: /usr/local/games/ut/Maps
  • User directory : ~/.loki/ut
  • User maps dir: ~/.loki/ut/Maps
  • Game settings : ~/.loki/ut/System/UnrealTournament.ini
  • Player settings (keybinds, player name): ~/.loki/ut/System/User.ini
  • Log file: ~/.loki/ut/System/UnrealTournament.log

Additionals configuration

Change screen resolution in fullscreen mode (adapt with your spec)

[SDLDrv.SDLClient]
FullscreenViewportX=1280
FullscreenViewportY=1024
FullscreenColorBits=16

Increase the default value of allocated RAM

[Engine.GameEngine]
CacheSizeMegs=64

Fix crash on online map transition

[Engine.GameInfo]
bWorldLog=False

Unpack UT Bonus Pack 4

Bonus pack 1, 2 and 3 are already packaged in UT GOTY. Only bonus pack 4 is needed:

$ curl -O http://www.deepsky.com/~misaka/scripts/umodunpack.pl
$ curl -O http://downloads.unrealadmin.org/UnrealTournament/BonusPack/utbonuspack4.umod
$ chmod +x umodunpack.pl
$ sudo ./umodunpack.pl -u utbonuspack4.umod -b /usr/local/games/ut
or in your user dir
$ ./umodunpack.pl -u utbonuspack4.umod -b ~/.loki/ut

Multiplayer Online

To play online, some maps require you install a DLC downloader named NPLoader:

$ curl -O http://utgl.unrealadmin.org/NPLoader/v16b/Linux.tar.gz
$ tar -zxvf Linux.tar.gz
$ rm -f Linux.tar.gz
$ sudo mv NPLoaderLL_v16b.* /usr/local/games/ut/System/

While looking at http://utgl.unrealadmin.org/NPLoader/, there are more recent versions. I did not yet tested them though.

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment