Getting Unreal Tournament (1999) working on current Linux distros

Let’s be honest: Unreal Tournament, or UT99, is not only a piece of gaming history – it’s also still a very vibrant and active game. What’s even better: The game has a native Linux client, so there’s no shortage of fun to be had.

But there’s a problem: The client was made around the year 2000 and Linux has evolved since that time. There are a few guides around to help installing and troubleshooting UT on Linux but I didn’t find them particularly helpful. So here’s my attempt, maybe some will find it somewhat useful.

Please note that this is specifically for the original version of the game, not the Game of the Year or GOG editions.

What we need:

1. Insert the CD-ROM into your drive and be sure to mount it to /cdrom.

2. Install UT by using the Loki installer:

$ export _POSIX2_VERSION=199209
$ chmod +x
$ ./

If the installer won’t run because you’re on x86-64, simply start it by using ./ –keep, browse the new ut-436 subdirectory and edit the’s DetectARCH to look like this:

echo "x86"
return 0

Other errors can be ignored.

Now install the UTG patch 451 by unpacking it into your UT/System directory.

Open ~/.loki/ut/System/UnrealTournament.ini, find the line:


and replace it with:


Now you should be able to start the game by typing:

padsp ./ut


Howto: Run Vector Magic Desktop Edition with Wine

Vector Magic is pretty cool. I loved the project back in the days when everyone could use it for free and was happy to see that they started providing a desktop client after going commercial. Even better: The client is utilizing Qt so we have a Windows and a Mac version. But nothing for Linux.

Don’t fret, of course you can run this application with Wine:
The only thing to notice here is that you need to set your Windows version to Windows 98, otherwise the application will always go haywire when loading a picture.


All features are working perfectly, no native DLLs needed.

Howto: Fix Wuala’s Copy & Paste on Linux

If you’re using a recent KDE version you’ll notice that Wuala’s Copy & Paste feature doesn’t really seem to work anymore. Instead of using the contents you specify within the application (say, files and folders) it’ll always use the contents of Klipper.

That’s pretty annoying if you don’t know that the contents does indeed come from Klipper. So, just clear your Klipper history and you should be fine.

Moving old data to new disks

As I wrote earlier this week one of my disks kept dying on me. The solution – of course – is to replace the faulty device with a brand-new one and move the data to the new disk.

While I had great success in doing so with Acronis True Image’s “Clone Disk” feature I had a little hickup while mounting the disk into the storage cage of my case. So for the time being I had to use the broken drive for another 2 days (don’t do this at home, kids!). As you can imagine the data became desynchronized and since I didn’t really have the time to clone the disk again I opted for another, more time saving method.

Everyone knows how to pack an entire system, store it somewhere in the network and restore it – all thanks to Linux live CDs and my good ol’ friend tar. tar is great for a lot of reasons: It processes .files, it keeps permissions and ownership intact… oh yeah, and it packs things.

So, this time I didn’t need to pack my entire system but only a few selected folders. And I didn’t really need to pack them either. But tar makes a great companion for moving sensitive data between disks, no less. Just start your machine in single user mode (or with a Live CD if you plan on moving your root partition around), mount target/destination, cd into the directory you want to move and use this nifty little command:

tar cd - . | (cd /my/new/home; tar xvpf -)

Yep, that’s all that is to it. Keeps all properties intact, which is important for, well, just about any kind of file/folder.

Adobe AIR Beta for Linux

Wowzers, finally there’s a version of AIR available that has an (almost) equal set of features to it’s Windows and Mac counterparts.

Before you can install this new version you do have to uninstall your old AIR applications (as they won’t work with the new version anymore) as well as the AIR runtime itself. Both can be done through your package manager.

Features now include working trayicon support, kwallet integration and some other goodies.

New nVidia Linux driver speeds things up

The end of the world must be near: nVidia released a new version of their GNU/Linux driver that fixes some of the annoyances regarding RENDER performance. Given you apply some manual adjustments to the configuration the new driver performs in a somewhat usable manner.

It is still far from the beauty that ATI users can enjoy (in terms of performance) but it’s an immense improvement over the old, totally unusable slideshow.

Building recent Mplayer SVN + CoreAVC For Linux

As Michael points out there’s a slight problem with the CoreAVC For Linux patchset that enable Mplayer to take advantage of CoreCodec’s h.264 decoder — with recent changes in the sourcecode the old script doesn’t produce usable output anymore.

There still is a way to compile Mplayer with the modification, though: Mithun Diwakar altered a patch to work against current subversion checkouts. How long this one will hold… we don’t know. But I think it would be preferable to fix up the patchbuilder. Maybe I’ll hack around on it during the weekend (no promise 🙂 ).

Nice global environment variable additions

Since my vacation is coming to an end I thought I’d leave a nice little trick on how to administrate a number of environment variable additions for all users on the system.

Sure, there is the /etc/environment file but it seems rather limiting to me. I needed a little more control, so I came up with the following the little scripting:

Create a new folder /etc/environment.imports, in the folder just have a ordered/leveled number of scripts (i.e. 01_qt, 02_java). Add the following code to your /etc/profile:

# Custom PATH and LD_LIBRARY additions
xdg_source_list=`echo /etc/environment.imports/*`
for source_file in $xdg_source_list
        source $source_file

Now you can just export all the necessary additions through the files in /etc/environment.imports:

export LD_LIBRARY_PATH=/opt/wine/lib:$LD_LIBRARY_PATH
export PATH=/opt/wine/bin:$PATH
export PKG_CONFIG_PATH=/opt/wine/lib/pkgconfig:$PKG_CONFIG_PATH

export XDG_DATA_DIRS=/opt/wine/share:$XDG_DATA_DIRS

This way it’s extremely easy to maintain a large number of custom-prefixed software for a complete system without touching the user’s custom profile.

Using twhirl on Linux – the nice way

Without any doubt twhirl is the greatest twitter client available. It’s an Air-based application – meaning you can even use it on Linux.

Now, as you may know KDE 4.1 comes with a handy little twitter client plasmoid itself but the functionality is really limited, the plasmoid is a little buggy and overall can’t compete with twhirl. So, let’s install twhirl then, eh?

First thing you have to do is installing the Adobe Air for Linux alpha. Since the installation is pretty straightforward and the package is an RPM I’ll skip the details.

After installing Air just navigate to the twirl website, look for the “manual installation” paragraph on the right handside and click “Download and install the latest twhirl release”. The installation will start and you’ll be able to start the application afterwards by executing (if you installed it to /opt) /opt/twhirl/twhirl.

You probably want to get rid of the pesky taskbar entry now: With KWin all you’ve to do is press ALT+F3, select Configure Window Behaviour and choose “Window Specific” in the dialog. Create a new rule by clicking New, click “Detect Window Properties” and select the twirl window. Just accept the settings in the upcoming dialog, and close it. Time to edit the rules a bit: Double click the new rule in the list, go to the Preferences tab and select “Keep below”, “Skip taskbar”, select “Force” for each item and don’t forget to enable the checkbox at the end. Apply the settings and voila – a nice, widget-like twirl on your Linux desktop.

The nice thing about twhirl is that it comes with different color schemes and the “Black Magic” colorset matches the dark Oxygen plasma theme almost perfectly.

Yeah, this post is pretty sketchy, I wish I could upload media to illustrate it – but that functionality is still broken.

Limit CPU consumption of applications on Linux

One of the more frequent questions in support channels: How do I limit a specific application to not consume all my cpu time?

While it is generally a bad idea to limit applications in that department, it is indeed quite easy…

Install the tool cpulimit (most modern distributions should have a package ready in their repositories!) and launch it with the correct parameters:

cpulimit -P /usr/bin/foobar -l 10

The command above would wait for program /usr/bin/foobar to be started and limit the CPU consumption of the application to a maximum of 10%.

Note that without further configuration you’ll need to sudo cpulimit or start it as a root. The specified application can be started in a normal user context, though.

Workaround for nVidia Linux driver TV-out scaling problem

If you’re using a GeForce 8×00 graphics card and the binary blob from nVidia you’ll may notice that the picture on your TV is slightly larger than the area the TV can display; a part of your desktop will be invisible.

That is pretty annoying, especially when watching movies with subtitles and half of the subtitle is unreadable just because of that.

Now, the following is a little something that works fine at least for Mplayer…

Mplayer provides the command line switches -screenh and -screenw which you can use to rescale the movie on the TV a little bit. For me, the following command line works out pretty fine:

mplayer -screenh 725 filename.mkv

Give it a try, play with the values and let’s hope nVidia will fix this nasty issue one day…

Adobe Air for Linux

A test version of Adobe’s Air for Linux is available for public consumption now. Tweet-r as well as the Pownce client work fine, there are some visual problems with alpha channels, though.

It is great to see that Adobe does release a Linux version, this should help adoption of this technology a bit. Even better, of course, would be a simultanous release on all platforms.