One line of code causes all the problems….. A simple hex edit fixes it….
I will provide a fixed dll for lazy people and go over how to do it yourself.
However: there are other Unreal Engine 1 games with the same exact issues. Enter Harry Potter 1 and 2. The second (Chamber of Secrets) had a prototype posted with the source, which allowed us to go over the engine. Lots of references to Deus Ex and Ion Storm were found throughout the engine, which explains now why both share the same speedup issue.
This one line of code tries to clamp the game between 10 and 200fps, but the problem is: that doesn’t limit the FPS, that just limits the calculated delta between frames. What that happens instead, a value for above 200FPS is passed in and this code forces it to act as 200FPS. Removing the line, of course, fixes the issue and the game runs happily well up to 1000FPS.
Deus Ex’s fix
Such a stupid problem. I think they were trying to clamp the max FPS to 200, but you have to force the max tick rate in UGameEngine to do that (it’s a function called MaxTickRate())
The Actual Fix
Find “0AD7A33B” in hex forward, it’ll look something like this:
Note the highlighted sections: this is to guide you to the correct section, there is multiple instances of this value and this is the correct one. Set it to 00 00 00 00
Next, find “CCCCCC3E” in hex forward, it’ll look like this:
Also note the highlighted parts, as this helps mark where the value is.
Change it to “FF FF 7F 7F.”
And now save. Now, if you use the DX10 render device, open DeusEx.ini and find
Type “FPSLimit=0” under the header. Save and you should have a unlocked game. If you use DeusEXE, then go to configure and set the FPS limit to 0.
Now you have a game that will work fine uncapped!
It contains both the fixed Engine.dll and the original Engine.dll.