# UT2004 (Atari DVD Release Version)

Install from the DVD. Navigate to the location the DVD was mounted at and run:

~~~bash
sudo sh ./linux-installer.sh
~~~

Follow the installation steps.

After installation completes **do not run the game immediately after install**. Patch first!

## Patch to latest version

The patch can be downloaded here: 
⬇️ [UT2004 Mega Pack Linux + LinuxPatch 3369.2 - utzone.de](https://utzone.de/forum/downloads.php?do=file&id=1194_UT2004-Mega-Pack-Linux-+-LinuxPatch-3369.2)

Extract contents from the archive and copy them to the install location, overwriting all the files:

<p class="callout info"><strong>NOTE:</strong> If <code>cp</code> is asking for confirmation on every file, it is likely there is an alias to <code>cp -i</code>. Prepend a <code>\</code> before the <code>cp</code> command to temporarily ignore this alias. Alternatively, <code>unalias cp</code> to undefine the alias.</p>

~~~bash
tar -xf ut2004megapack-linux -C /tmp/
cp -R /tmp/UT2004MegaPack/* /usr/local/games/ut2004
~~~

## Launch in 64-bit

By default, the `ut2004` command will launch the 32-bit version of the game. To make it launch the 64-bit version, edit the start script `/usr/local/games/ut2004/ut2004` and change **line 49** from

~~~
	exec "./ut2004-bin" $*
~~~

to

~~~
	exec "./ut2004-bin-linux-amd64" $*
~~~

## Missing libraries

The game tries to load quite some old libraries, e.g. it will complain about `libSDL-1.2.so.0` or `libstdc++.so.5` missing.

In the case of `libSDL-1.2.so.0` simply install the SDL 1.2 compatability package:

~~~bash
pacman -S sdl12-compat
~~~

Then, remove the `libSDL-1.2.so.0` the game came with and put a symbolic link to your system's `libSDL-1.2.so.0`

~~~bash
sudo rm /usr/local/games/ut2004/System/libSDL-1.2.so.0
sudo ln -sf /usr/lib/libSDL-1.2.so.0 /usr/local/games/ut2004/System/libSDL-1.2.so.0 
~~~

To fix the error about `libstdc++.so.5`, an AUR package with the files is available:

~~~bash
yay -S libstdc++5
~~~

## No sound

UT2004 expects there to be a `/dev/dsp` sound device to access the sound card directly. This goes back to OSS (Open Sound System) which has long been deprecated in favor of ALSA and contemporaries.

This can easily be fixed in one of two ways:

1. Further edit the start script of `ut2004`, prepending the execution of the game binary with `padsp` to route all audio through PulseAudio:
    ~~~
    	exec padsp "./ut2004-bin-linux-amd64" $*
    ~~~
1. Edit your user's UT2004 config file `~/.ut2004/System/UT2004.ini`, go to the section `[ALAudio.ALAudioSubsystem]` and change the value of `UseDefaultDriver=True` to `UseDefaultDriver=False`

## Screen resolution

Some higher resolutions might not show up in the game's configuration screen. To set a resolution manually, edit your user's UT2004 config file, go to section `[SDLDrv.SDLClient]` and set the following parameters, e.g.:

<p class="callout warning"><strong>ATTENTION:</strong> The config file contains two sections for various graphical settings, one for Windows and one for Linux. The one for Linux comes after the one for Windows.</p>

~~~ini
[SDLDrv.SDLClient]
FullscreenViewportX=2560
FullscreenViewportY=1440
~~~

## Proper wide-screen support

A mod is available that expands UT2004's wide-screen support: [foxWSFix-UT2k4](https://github.com/alexstrout/foxWSFix-UT2k4)