HOW TO: Coax retro DOS games to play on Vista

640KB Is Enough For Anyone

Remember all those awesome games back in the pre-Windows days? Space Quest Commander Keen Doom…no-one had heard of Blizzard and Sierra ruled supreme.

Of course it wasn’t all sweetness and light. Those games could be quite finicky about the machines they played on so many hours were devoted to tweaking those AUTOEXEC.BAT and CONFIG.SYS files trying to load as much into HIMEM as possible all in the interests of squeezing an extra 10KB out of that precious 640KB base memory.

I think the best I ever managed was every driver loaded with 632KB base memory left over. It was a good day.

And then Windows came along just to complicate things. Luckily Windows 3x wasn’t really an operating system rather a collection of applications which sat on top of DOS. So to get around that we started writing long and complex AUTOEXEC scripts with a boot/memory configuration to meet each and every need. Man there was a LOT of rebooting those days. However the hardware wasn’t too complex so the restarts were actually faster. Funny how things “develop” isn’t it?

Anyhoo nowadays we don’t have to worry about one game wanting EMS while another wanted as much XMS as you could throw at it – the game installs and Windows takes care of the rest (assuming your drivers are OK but that’s a modern-day headache).

But what about all those awesome games? I remember devoting hours to Death Knights of Krynn Wing Commander and every Sierra adventure I could lay my hands on. Of course they’re incredibly dated by today’s gaming standards but from a pure gameplay perspective they still have lots to offer (if you can get past the graphics).

Unfortunately for our reminiscences time has not been friendly to the old DOS games. Windows has become increasingly incapable of supporting them. Windows 9x wasn’t too bad but then it still had quite a lot of embedded 16-bit architecture. Ungenerously it was a GUI for DOS. Once the NT-based builds started to dominate however time was ticking down for my old pixellated friends.

So in the interests of regressing to my childhood (and geek-fuelled masochism) I tried to get some classics up and running on Windows Vista.

Tweak Central

Vista’s approach to application compatibility is very much the same as Windows XP. Any application can be run in compatibility mode whereby Windows emulates an earlier operating system (Windows obviously) to try and get things running. It’s almost like virtualisation – the host OS presents the client with a hardware configuration it thinks it can handle.

In Vista compatibility is managed by right-clicking on either the main application EXE or a shortcut to that EXE and then click the Compatibility tab.

Vista can emulate anything from Windows 95 to Windows 2003 SP1 all of which is very funky but none of which directly helps you with DOS.

In fact for DOS apps the only one of any help is “Run the program as an administrator”. This is actually very necessary – DOS had a very direct approach to hardware and knew nothing of user accounts or security whereas Vista seems to run on little else.

Standard administrative access to the box won’t cut it and the app is guaranteed to crash citing an NTVDM.EXE error. Run it as administrator and this won’t be a problem.

However that’s not the end of your woes. Vista recognises that the app you’re looking at is DOS-based and it tried to come to the party with options for running the program configuring memory fonts and screen settings and you can get happily lost tweaking to your heart’s delight even to the extent of editing the AUTOEXEC and CONFIG files (yes they still exist – hidden away as .NT files in WindowsSystem32).

But it seems to be mostly in vain. I tried a few apps which weren’t even that old by DOS standards – One Must Fall: 2097 and Space Quest 1 (the updated version). OMF2097 did run but half the key mappings were missing and performance was woeful. Space Quest just bombed constantly.

So it does appear that in it’s ever-reaching quest for perfection (cough splutter) Microsoft has left the old warhorses out in the pasture.

But all is by no means lost. My new favourite application and cause of hours of lost productivity is DOSBox. This opensource application runs up a shell window which emulates a DOS environment perfectly. The major advantage of DOSBox is that it handles all requests between Windows and the DOS window so you don’t need to worry about compatibility. And yes Vista runs it perfectly.

It’s doesn’t worry about memory allocation – that’s all done automatically. What you can do is tweak how it emulates x86 hardware – graphics type sound card emulation key mapping and so on. It’s a seriously robust shell which doesn’t have a negative impact on the host OS at all. You can pause the shell without affecting the game and even capture the shell into a movie. It rocks.

One of the major problems of playing DOS games on modern hardware is addressed – that of CPU speed. Some games when they DO load on a modern system are running so fast that’s it’s impossible to play. DOSBox even emulates the processor and can ramp the available CPU cycles up or down without having to quit the shell. The default value is 3000 cycles – I found on Pentium 4 3.0-3.8GHz machines that 10000-11000 cycles ran things pretty smoothly.

The only thing to watch out for with DOSBox are Windows Sticky Keys. These are accessibility features for physically-handicapped users and they are activated by pressing a particular combination of keys which a normal user wouldn’t be likely to stumble across. However hitting SHIFT five times in a row is more than probable during gameplay and DOSBox doesn’t partitition keyboard or mouse activity away from the host OS. So be sure to use this key combination to bring up Sticky Keys and disable it before it pops up mid-game and drops DOSBox’s focus giving your opponent a great opportunity to beat you into the ground.

So download DOSBox and load up some abandonware! Of course that’s a highly immoral thing to do but if your morals are feeling frayed or in need of a holiday take yourself off to and relive the good ‘ol days.