| |
 |
| |
| 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.
|
| |
| 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].
|
| |
| 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.
|
| |
| 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:
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. :)
|
| |
| 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.
|
| |
| 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.
|
| ©2008 Sebastian Kaufel |
| |