Skip to content

Instantly share code, notes, and snippets.

@soifou
Last active March 7, 2024 12:26
Show Gist options
  • Save soifou/e863b978d1f01e33691b to your computer and use it in GitHub Desktop.
Save soifou/e863b978d1f01e33691b to your computer and use it in GitHub Desktop.
Install Unreal Tournament GOTY on Debian Jessie 64bits

Install Unreal Tournament GOTY [Debian/Ubuntu] 64bits

Dependencies (only for installer)

├── amd64
│   ├── libglib1.2ldbl_1.2.10-19_amd64.deb
│   └── libgtk1.2_1.2.10-18.1_amd64.deb
├── i386
│   ├── libglib1.2ldbl_1.2.10-19build1_i386.deb
│   └── libgtk1.2_1.2.10-18.1build2_i386.deb
└── libgtk1.2-common_1.2.10-18.1build2_all.deb

Prerequisites

  • Mount UT Iso
  # mount -o loop ut.iso /media/cdrom0

Installation

First, get the correct install script from here http://liflg.org/?catid=6&gameid=51

  $ chmod 755 unreal.tournament_436-multilanguage.run
  # sh unreal.tournament_436-multilanguage.run

CTRL+D (exit graphical install) to continue installation through CLI

UT is now installed and lives in two directories, by default :

  • System directory : /usr/local/games/ut
  • User directory : ~/.loki/ut

We have to decompress maps in our user directory:

$ mkdir -p ~/.loki/ut/Maps
$ for i in /usr/local/games/ut/Maps/*uz ; do ucc decompress "$i" ; done
$ mv ~/.loki/ut/System/*.unr ~/.loki/ut/Maps

Now launch UT from command-line:

$ ut

Unpack UT Bonus Pack (UMOD)

wget http://www.deepsky.com/~misaka/scripts/umodunpack.pl
chmod +x umodunpack.pl
sudo ./umodunpack.pl -u UTBonusPack4.umod -b /usr/local/games/ut
or
./umodunpack.pl -u UTBonusPack4.umod -b ~/.loki/ut

Troubleshooting

Bad substitution

$ ut
/usr/local/bin/ut: 29: /usr/local/bin/ut: Bad substitution

Bad substition ? Let's fixed that by replacing #!/bin/sh by #!/bin/bash into /usr/local/games/ut/ut

No sound

$ vim ~/.loki/System/UnrealTournament.ini

Replace AudioDevice=ALAudio.ALAudioSubsystem with AudioDevice=Audio.GenericAudioSubsystem

Then run the game with padsp:

$ padsp ut

If you are using 64-bit system, you might still get no sound. The startup may show the following error when using padsp:

ERROR: ld.so: object '/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so' from LD_PRELOAD cannot be preloaded: ignored.

To solve this, install the 32-bit version if not already installed:

  # apt-get install libpulsedsp:i386
  # vim /usr/bin/padsp

Then change LD_PRELOAD directory to point to the 32 bits version :

[...]
if [ x"$LD_PRELOAD" = x ] ; then
   #LD_PRELOAD="/usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so"
   LD_PRELOAD="/usr/lib/i386-linux-gnu/pulseaudio/libpulsedsp.so"
else
   #LD_PRELOAD="$LD_PRELOAD /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsedsp.so"
   LD_PRELOAD="$LD_PRELOAD /usr/lib/i386-linux-gnu/pulseaudio/libpulsedsp.so"
fi
[...]

Documentation

@kanchudeep
Copy link

I minor suggestion, instead of /usr/bin/padsp, save the changes to a new /usr/bin/padsp-i386?

@alfonz19
Copy link

Please would be be so kind and update this info a little? I'd love to play this after so many years, BUT! the liflg.org was moved to github, and nothin you describe here match. No information/documentation there seems to be relevant

@soifou
Copy link
Author

soifou commented Feb 19, 2020

@alfonz19

You are absolutely right, this guide deserved an update so here you go! Good luck!

@alfonz19
Copy link

aha, so "here I go"! I left opensource world 3 years ago, so I did not see this kind of phrases for a while. Definitely refreshing, and opens up some unheal wounds and shitty memories of my decade in opensource world. The idea, that any newcomer can come to undermaintained and obsoleted project full of mess, with zero skills (in this area) and guidance, is just silly and unrealistic. If someone asks for help regarding to "your" project, you can help him to get work done together, but typical "Patches are welcome" is like saying "fuck you", just politely, because namely you don't want to work on it. But there is really nothing wrong with deleting obsoleted sw, deleting outdated/unmaintained repos or pages, or even with saying: "I don't care", "I won't help you, I don't have time for this shit". You can be honest.

To wrap up: I found this "how to" duplicated on multiple places, thus I doubt that it's even your work, which might be the main cause you cannot update it. It's severely outdated and deserves deletion just like whole lifl, because of it's unmaintained state and messy state. What the point of your page if it's completely outdated, with dead links and cannot be used at all and you don't want to touch it?

solution: we have powerfull computers nowadays. We don't need this at all to run natively, as it runs flawlessly under wine. I could have help you with your guide to get it back to current status and update this page. Instead you repulsed me by "fuck you, do it yourself!", I used wine, and your pointless page can live on, serving no use at all.

@soifou
Copy link
Author

soifou commented Feb 20, 2020

@alfonz19

I certainly did not want to be aggressive and you completely misunderstood my point here... check the guide again,

I heard your request, I care and rewrote it entirely with some fresh links, what dependencies you need, where to download the needed scripts, etc...

Opensource world is full of surprises. Peace!

@alfonz19
Copy link

I beg your pardon. Definitely my mistake. I misread your answer, and my brain stopped working, evidently.

@danielbrownridge
Copy link

Hi @soifu This is an odd one but on Ubuntu 18.04 I hit a snag:
`root@mymachine:/home/daniel/ut/ut-436-GOTY# bash 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 /home/daniel/ut/ut-436-GOTY/README file ? [Y/n] n
Please enter the installation path [/usr/local/games/ut]
No write permission to /usr/local/games
`

I've tried installing to current directory and so on and in call cases get the No write permissions issue. Any ideas?

I'm now installed the outdated libs and trying the GTK based installer you advised against ...

@soifou
Copy link
Author

soifou commented Apr 7, 2020

Hey @danielbrownridge that's strange, never got permissions issue !

Maybe try to install with your current user (with sudo permissions) instead and run the script without bash : sudo ./setup.sh like I did ?

@danielbrownridge
Copy link

I think 'bash' may be the issue actually. I ran into another issue with an unrelated script and was reminded of the fact that the default shell on Ubuntu is now dash and not bash so scripts that have #! /bin/sh will run under dash by default which has some minor but significant variations. Changing the first line of the script to#! /bin/bash worked to fix another script I was having trouble with. The gtk install got UT installed for me though so I'm not going to test it out on the ut-install-436-goty.run script now. Only thing remaining for me now is getting sound working I think.

@CGarces
Copy link

CGarces commented Apr 26, 2020

There is a typo error? DetectARCH should be DetectARCH?

Same problem as @danielbrownridge no audio.

How you solve it?

The logs onlt show:

Bound to Audio.so
Failed to open audio device.
Audio initialization failed.

@soifou
Copy link
Author

soifou commented Apr 27, 2020

@CGarces,

I did not change the function name, only the content (by echoing an "x86" string).

For the audio, the sound engine must be set to AudioDevice=Audio.GenericAudioSubsystem but if osspd does not work for you (did you start the service?) maybe you can try the old method with paspd:
https://gist.github.com/soifou/e863b978d1f01e33691b/bd8a01fac9decbb4a7dda70344087386fb06bcfb#no-sound

@CGarces
Copy link

CGarces commented Apr 27, 2020

@CGarces,

I did not change the function name, only the content (by echoing an "x86" string).

Yes, you change it.

DetechARCH() 
{
    echo "x86"
    return 0
}

Must be DetectARCH not DetechARCH.

Sound is working fine... after reboot the system. I use a system without pulseaudio so I assume that the reboot was needed by some dependency on that corner cases that pulseaudio not was previously installed.
will try with alsa-oss or osspd-alsa but I confirm that your instructions works.

@soifou
Copy link
Author

soifou commented Apr 27, 2020

Thanks for the typo, it's fixed and your feedback, glad you make it works.

@chlooriding
Copy link

Many thanks for this primer. I successfully managed to play ut99 on a buster running on a barebone. I got an error when reading from second cd and I had to manually extract maps using and "sudoing" the script posted here: https://www.linuxquestions.org/questions/linux-games-33/ut-171291/
Again, Thanks for sharing!

@K0ntrast
Copy link

K0ntrast commented Apr 6, 2021

Good install guide to get the base installation working on Linux. 👍

I'd thoroughly recommend using OldUnreal's v469b game update. It's as easy as overwriting installation files with the ones provided with the patch. It works on modern Linux 64-bit systems very well.

See here: https://github.com/OldUnreal/UnrealTournamentPatches/releases

I found I was still getting SDL errors on Debian 10 (stable) after following this guide. They seemed to be resolved by applying the new patch.

Enjoy!

@vKnmnn
Copy link

vKnmnn commented Feb 5, 2022

Using the latest patch that @K0ntrast mentions, i get a working game now, too. For sound, don’t forget installing libpulseudio in 32bit variant (or libpipewire, if that’s what u use) and don’t change the audio to generic.

After applying the patch, ut won’t read from the settings in the loki dir anymore.

Maybe @soifou could be so good and update his instructions to include the use of patch 469b.

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