For a while now I have been posting about all the different games that you can run under Virtual PC – so I figured that it was about time to make some posts about games that I cannot get to run well under Virtual PC. Origin’s Privateer (from the Wing Commander series) is one of these games (it is also, unfortunately, my favorite DOS game of all time). Privateer is a space combat game that has you in charge of your own space ship and budget – taking patrol, cargo and bounty missions as you desire. It is an incredibly cool game – and while it does run under Virtual PC there are two significant issues:
- Sound effects are cut off early.
From what I can tell, Privateer uses 8-bit DMA sound to play its sound effects. It sends the first chunk of sound and then goes into a tight polling routine reading the write status register on the DSP on the Sound Blaster. I am not sure what they are looking for here – but they do not find it and as a result they only ever send the first chunk for each sound effect in the game. I suspect that they are actually trying to perform a timing routine by measuring how long it takes for the write status register to be cleared after they have sent the first chunk of sound. Because writing to the DSP is essentially a just memory transfer for us it is always possible to write more data – and this register is always cleared – which I suspect is the cause of the problem (I just haven’t figured out a good way to address this).
- Space flight is incredibly slow (20% of playable speed)
The cut scenes and story aspects of Privateer all run acceptably under Virtual PC – but when you actually get into the cockpit of the spaceship the game crawls. This problem is caused by the fact that the game polls the joystick port ~80,000 times a second – even when there is no joystick connected. This means that we spend the vast majority of our time servicing these false joystick requests.
So there you have it; Privateer remains one of the main reasons why I keep an old hardware box around for running DOS games:
P.S. Some of the key developers who worked on Privateer went on to develop FreeLancer (http://www.microsoft.com/games/freelancer/) at Microsoft – which is a game that truly rocks.