I believe it was WCII which had a framerate which was dependent on the speed of the processor. I remember trying to play it some years after it came out, and you literally couldn't understand what was happening on screen because it was too fast.
It was WC1 and I disassembled the code and added in a time-dependent limiter in dosbox.
I also added multiplayer--it's not quite documented and ready for consumption, but if you're interested in how it works, the code is right now up as a patch to dosbox in the wcmulti branch
https://github.com/danielrh/dosbox3d/tree/wcmulti
most of the changes are in the src/cpu/core_Normal.cpp and src/cpu/wc_net.cpp
the way you run it is... run a retail copy of WC.EXE with the branch of dosbox3d
then do
wcnet startserver <port>
on one machine and
wcnet connect <ip addr> <port>
then both machines just run wing commander as normal.
and the first one can start the first mission and the other connects in and gets to play as spirit. You can play through the whole campaign this way
Now I almost regret never having really played WC back then. Suddenly having the ability to play a round or two in co-op sounds pretty amazing and it's the first time I've seen DOSBox used to augment a running program by peek- and poking around in its address space. I feel like this almost deserves its own post.
Hi! Long time no see! Looks like you're still kicking a lot of ass :D :D :D
That's what the turbo button was for.
Both WC 1 and 2 depended on processor speed, but WCII had a slowdown feature (I believe it was Ctrl-+ and Ctrl--) that allowed you slow it down.
I got so good at WC1 by playing on a 286 and then being able to speed up my reflexes on a 486. I could read every bitmap.
dosbox has a setting to lock the clock rate at a chosen rate for those older games that are timing dependent like that.
the clock rate isn't quite enough--because more enemies do cause it to advance the program counter more...
really you do want to measure how long the frame took and sleep the interim