Running DOS Game On Windows XP

by Bob Rogers
(rcr@longhighway.com)
(Links Updated February 25, 2009)

Running DOS programs in Windows XP can be difficult. Unlike earlier versions of Windows, XP is not based on the DOS kernel. Instead it, like Windows 2000, is based on the NT kernel. This is one of the things that makes XP more robust than Windows 98, but it has it's drawbacks for the DOS gamer. Because there is no DOS kernel, XP has to run DOS games in "pretend DOS" mode. Unfortunately, XP is not a great pretender. In addition, the tricks you learning in your DOS gaming days (veterans who fought to get more free memory to run "Falcon" will know what I mean) are no longer appropriate in the new age of XP.

The difficulty you'll have in running a DOS game will depend on your machine and on the game. Before trying the steps below, try running the game by simply clicking on it, then try various settings on the compatibility tab. This procedure is outlined in the Microsoft Knowledge Base article Q301911.

When I first tried to run the DOS version of "Steel Panthers World War 2" on my XP machine I saw some text on the screen but there was no game visible. By using a VGA test program called vgatest.exe I discovered that my video card - a top-of-the-line Radeon 8500 - didn't support all the VESA modes. If this is the case, there's not much you can do except to try running the game in an emulator. However, you may find that different video card drivers provide the VESA support that the game demands. In my case installing the latest (beta) drivers from ATI solved the problem. (Note to Radeon owners: these drivers leave the display a mess when you exit a DOS game; to clear things up just use the ATI system tray tool to switch resolution or refresh rate and then switch back to the one you want.)

Even after updating the video drivers, you may notice that all your DOS programs run at a 60 Hz refresh rate. I don't know of a solution for this.

Other causes of DOS game failure include lack of memory (conventional, extended, or expanded) or sound card problems. Windows XP does provide specials file that replace FOR DOS PROGRAMS ONLY the autoexec.bat and config.sys files of yore and which configure the pseudo-DOS environment. These are, respectively, autoexec.nt and config.nt and are in the c:\WINDOWS\system32 directory (their location in Windows 2000 may be different). These files are well-commented. If you create a shortcut to a DOS program, right click on it, click on "Properties", click on the "Program" tab, and click on "Advanced..." you will see that the paths of these files in a dialog box. If you decide to experiment with these files, I'd advise copying them, editing the copies, and setting the shortcut to point to the copies. This way you not only avoid messing up your originals, but you can have different files for different programs.

It's important to remember that the autoexec.bat and config.sys files in your hard drive's root directory have nothing to do with DOS programs.

As mentioned above, XP's DOS subsystem is less than perfect. Even by playing with the autoexec.nt and config.nt files - which don't provide all that much control, really - you may not be able to get your game to run. All is not lost, however, thanks to the efforts of one Vlad Romascanu and his marvelous VDMSound program. Not only does VDMSound provide SoundBlaster emulation in software (which works with any Windows-supported sound card), not only does that emulation make DOS programs "think" they're "talking to" a real SoundBlaster, but VDMSound makes configuring XP's DOS subsystem fairly easy. Even if you have a new SoundBlaster, like the "Live" model, using VDMSound is easier than getting the latest Creative cards to work for DOS games.

The rest of this page will be devoted to using VDMSound, so you may want to get it, install it, and read the docs for it right now. You may even want to read the docs before you install it - but who does that? From here on out, I'll assume you've installed VDMSound and seen that it adds a "Run with VDMS" entry on programs' context (right click) menus.

There's a good chance that your DOS game with a separate sound setup program. For instance, for "Steel Panthers World War 2" this program is called setsound.exe. Right click on that program and run it with the "Run with VDMS" menu item. That will "train" your game to talk to the virtual SoundBlaster card provided by VDMSound.

Now create a shortcut to the games executable file. For "Steel Panthers World War 2" this is spww2.exe. You don't want to create a shortcut to the spww2.bat file since that file tries to install VESA drivers that probably aren't appropriate for today's high-end video cards.

Go to the VDMSound directory (probably c:\Program Files\VDMSound) and copy autoexec.vdms and config.vdms to a directory of your choice. I put mine in a directory named for the game, just to help keep things organized.

Right click on the shortcut and click "Properties". Click on the program tab and edit the box labeled "Cmd line:". For "Wargame Construction Set II: Tanks!", I changed this from:

C:\games\TANKS\TANKS.EXE

to:

%VDMSPath%\VDMSRun.bat C:\games\TANKS\TANKS.EXE

What we're doing here is telling Windows to use VDMSound to run our game.

In the same "Program" dialog, click "Close on exit", then click "Advanced...". A dialog box labeled "Windows PIF Settings" will appear. Now edit the fields labeled "Autoexec filename:" and "Config filename:" to point to your copies (note: your copies) of autoexec.vdms and config.vdms, respectively.

Now try and run the game. If it works correctly, you're done. If there are still problems, don't despair, and for heaven's sake don't reformat your hard disk and start over. Editing your copies of autoexec.vdms and config.vdms may solve your problems.

I actually have not yet had a need to edit autoexec.vdms, but I needed more conventional memory for "Tanks!" so I commented out the CD-ROM and DPMI drivers by putting "REM" before these lines:

lh %SystemRoot%\system32\mscdexnt.exe
lh %SystemRoot%\system32\dosx.exe

"Steel Panthers World War 2" ran fine with VDMSound, but the mouse was terribly slow, so slot that the game was almost unplayable. I found an old DOS program from PC Magazine, "mousectl.com" that takes care of the problem. You can download it and try it out. I was able to cure my slow mouse problem by adding these lines to my autoexec.vdms file:

REM Make the mouse up to 1.5x more sensitive; 8 values
REM apparently provide acceleration as the mouse moves.
loadhigh c:\local\dos\mousectl 5,6,10,15,15,15,15,15

Though I haven't had to do it yet, you could probably add CPU slowdown programs to the autoexec.vdms file if a game is too fast on your modern PC.

Finally, to get a file containing a report of how much memory is available to your DOS program, add this line to autoexec.vdms:

mem /c > c:\dosmem.txt

Comments to the author: Bob Rogers (Sorry, I cannot advise on specific games.)

Sandbox Home
Like to read? Visit Reader's Diary.