First post, by DivByZero
- Rank
- Newbie
I've prepared another patch, this one for the original Wing Commander 1 game, to add in speed throttling. This game is an extremely late game to not have speed throttling in place, being designed for 386 hardware. Attempting to run the original Wing Commander on a 486 or higher will result in gameplay being too fast. While some throttling work can be done on a 486 to approximate the correct speed, in particular disabling the cache (the "Special CDROM Edition" even included tools to do this), this only approximates the speed and results vary even on period correct hardware. Accurate speed throttling is also complicated here by the need for EMS memory for a full game experience (extra effects, graphics). This may be the only game out there which needs EMS and doesn't have speed throttling. The need for EMS means running in Virtual 8086 mode under EMM386 in the real world, which also means most throttling techniques don't work correctly as real mode is generally required. It also becomes increasingly difficult to obtain a playable speed the faster your hardware gets. This thread is spawned from earlier work and discussion a few days back here:
Re: New Patch - The Hobbit (1983) on 386+ CPUs
In order to prepare this patch, I inspected the code of both Wing Commander 1, which has no speed throttling, and the Secret Missions 2 expansion, which runs the same basic engine and added it in the throttling, but for those expansion missions only. In applying the same techniques to Wing Commander 1, this patch obtains the same results in the original game. This eliminates the need to hack around porting the game resources from WC1 into SM2.
I currently consider this patch a work in progress. Like SM2, this patch currently only patches gameplay, but not all the other bits of animation that doesn't have speed limiting in there, like the intro, people talking, pre-mission launch screen, etc, which weren't ever fixed in SM2 either (and are still a problem in Wing Commander 2 I believe). I may continue working on this patch and fix that issue too. I also haven't completed wrapping this patch into a python script to apply to any version of the game, like I've done for my previous patches. I'm short on time the last few days though, so in the interests of expediency I'm putting this patch out here in its current form, which is simply a patched WC.EXE binary of the F3.1 release. I hope to make it scripted and fix additional speed issues in the coming weeks, depending on how much time I get.
EDIT: Removed the patched exe, and added a python script to apply the patch instead. Rename from .py.txt to .py and execute in the same folder as WC.EXE. I tested this patch on the F3.1 version of WC.EXE, but the patch should be perfectly tolerant of version differences, and therefore work for all versions of Wing Commander 1. Please let me know if you find any versions that don't work.
Anyway, that's about it. Let me know if there are any questions or issues. I'll make edits to this main post as updates are available for this patch.