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 "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; it can also be found in the file
pcmagut4.zip 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