Jump to content

EF2000 2.0 Windows 95 Speed Fix


Recommended Posts

I've been working on a fix for EF2000 running too fast on modern systems.


To try this just extract all files in ef2000fix.zip into the ef2000 program folder.

Then use ef2000Fix.exe to start EF2000.

Note EF2000 must be started with ef2000FixLaunch.exe for this to work.


Source for ef2000Fix.dll is in the folder as well.

Happy to share what I've found out about this if anyone is interested.



I've put up new versions of the files. There are now two ways of using this.

The first uses a custom launcher to start EF2000 (as above).

The second uses a patched superw.dat file. EF2000 can be then started normally. Obviously backup your original file before overwriting it.

Both use the same ef2000.dll





More depth on how it works:

EF2000 works on a time resolution of 20 ms. The internal function that records time stamps gets the system time in milliseconds and does an integer divide by 20. So when measuring a time delta in the game loop it can be off by +- 20 ms not good but that isn't the main problem. On modern systems I've noticed the game loop takes around 5 ms. EF2000 records this delta as zero. When a zero delta is recorded there is logic to simply make it 1. So then 1 unit of EF2000 time (20 ms) will be simulated. From this you can see how the speed problem comes about. On a modern system there is constantly 20 ms of game time simulated for every 5 ms of real time.

My fix involves hooking the internal function that records the time delta. I record the delta and add a wait to round the time up to 20 ms this then matches the time that will be simulated.

The ef2000Fix.cfg has a value called loopTime which is the time in milliseconds each loop will be rounded up to. It should be a multiple of 20. 20 or 40 work well on my system (a 3rd gen i5). If you make this a non multiple of 20 the game will run in slow motion. To make the game run a little slower try 23 instead of 20.


Link to comment
Share on other sites

  • 2 months later...

It's amazing fix for SEF2000 I have ever seen. 


I have 2 versions of SEF2000, both have some different file names and sizes each other, and the fix is for v2.0. 


The set number 19 looks good for my hardware. 


Dos versions(including 3dfx) have more or less erratic time speed issue depending on views(i.g. in target external view the time speed is faster), but the issue isn't there in SEF2000 with the fix and runs smooth. 


Thanks a million! 



Link to comment
Share on other sites


  • Create New...