Preface
Unreal Engine 1 Games (Unreal, UT, DeusEx, Rune, Nerf to mention a few) won't run correcly on (mobile) hardware with speedstepping. It will run too fast/slow and gamespeed will constantly change. Also Unreal Engine 2 games, at least Postal 2, are affected. There are numerous workarounds, but most will require you to disable all of your speedstepping options, which is a big hit. A modified Launcher can also solve this issue. Actually only two lines of code must be changed and another two lines must be added. Multiple CPU cores are also a cause of issues, but this can be fixed, for example by setting an appreciate affinity mask (you won't need an extra launcher here), but it is conveniant to add an appreciate affinity mask to my launcher.

The main problem arise from the avaiblity of the source code of those launchers and headers to compile (among other native code) for those games. There is only source code for the launcher of Unreal 224v availible (found in unrealpubsrc224v) and source code for some of the linux launchers (UT, Rune, ...), but those linux launchers are pretty useless for this purpose.

The launcher source out of the Unreal PubSrc is sufficiend, but must be modified to run correctly with newer versions of the engine. The main effort was to fix those glitches. As noted above, the headers are not availible for many games. This issue can also be worked around since only the headers of the Core, Engine and Window package are neaded, and are similar, or at least the parts needed for the launcher to compile, since these are core Unreal Engine packages. So using some of the released headers as a base, some set of headers for compiling launchers for those games can be constructed.
 
Official Headers / Libs
These are the official released Headers / Libs. Tell me if you knew about more. I mirrored them here, since they are sometimes hard to find these days, or you will have to register. The DeusEx Headers / Libs are taken out of DeusExSDK1112fm.

 Unreal[unrealpubsrc224v.zip]
 UT[ut432pubsrc.zip]
 Rune[RunePubSrc107.zip]
 DeusEx[DxHeaders.zip] [DXLibs.zip]
 
Third Party Headers / Libs
These are third party Headers / Libs, I found somewhere on the web. They aren't official, nor am I related in any way to them. This Unreal Gold stuff seams to work like a charme. Only thing left to do is to add ULevelSummary.h to Engine/Inc. For conveniance I mirrored it [here].

 Unreal GoldGrab them over at [oldunreal.com]
 
My Unofficial Headers / Libs
These are Headers I modified and Libs I created with the method mentioned beneath for other games, or other versions of the game. This Nerf stuff is based on the header found in Unreal and Rune.

 Nerf[NerfNonOfficialPubSrc12.zip]
 
Creating Libs
Once you got the Headers, you will also need to have the Libs to be able to compile. Creating the *.lib files out of the Package.dll file in the System directory is a straight forward process. You will need dumpbin and lib, which are included in Microsoft Visual C++. Since you need it anyway to compile, this won't be an issue. They can be found in Microsoft Visual Studio\VC98\Bin. I'll use some Unix shell utilities for converting the export table. You might want to check out [UnxUtils]. The export table is also a quite handy reference when you set up headers.

First you will need to use dumpbin to get the export table:
 # dumpbin Sample.dll /EXPORTS /OUT:Sample.exports
Now transfer the export table into a *.def file.
 # echo "LIBRARY Sample" > Sample.def
 # echo "EXPORTS" >> Sample.def
 # grep -aE "[0-9]+\ +[0-9A-F]+\ [0-9A-F]+" Sample.exports > Sample.symbols
 # sed 's/ \+[0-9]\+ \+[0-9A-F]\+ \+[0-9A-F]\+//' Sample.symbols >> Sample.def
 # rm Sample.exports Sample.symbols
With the *.def file you can use lib to crate the corresponding *.lib file to link with.
 # lib /MACHINE:IX86 /DEF:Sample.def /OUT:Sample.lib

You can also put this in a script like [this]. And invoke it with:
 # ulib.sh Sample
You might even like to add an entry to the Explorer, so that you can right click -> Create *.lib file.
 
Installation
TODO
 
Launcher Binaries
Here are my precompiled launchers. If you don't know what, you need, you are probably right in this section. :)

 TODO 
 
Launcher Source
Here is the source code for my launcher. I set up it up in a single source base. You can select the game, by selecting the according configuration.

 TODO 
 
Deprecated
Here are the initial releases of my launchers. They should work fine, but they don't have the same codebase. Once these codebasese are merged and new releases are up, they will disapear.

 DeusEx[Binary] [Source]
 Rune[Binary] [Source]
 Nerf[Binary] [Source]
 UT[Binary]
©2008 Sebastian Kaufel