metzomagic.com Feature

Bring out your dead! Getting old games to run in Windows XP

By Steve Metzler (August, 2003)

Keeping in the mood of the title, upgrading your PC typically brings varying amounts of sorrow and joy to your desktop. On the one hand, you get a new generation of video and sound hardware that allows you to run all the latest releases (well, for at least 3 months until you need to upgrade again). On the other hand, some bridges will no doubt have been burnt, and this is especially the case with Windows XP - an operating system with very few vestiges remaining of the venerable DOS that its predecessors like Windows 95/98 were built on.

It was nearly a year ago to the day that I got my latest PC, and the first thing I did after XP was up and running was to...? You guessed it: brush the cobwebs off my favourite games and see what would still work! Let me tell you, I must have used up nearly half of the 40GB hard drive in a mad frenzy of hasty installs before I finally settled down and decided to approach the situation a little more methodically. Hopefully, what I am about to relate to you as a result of my experiences will save you some time, and help to alleviate the FUD (fear, uncertainty, and doubt) that inevitably occurs whenever you must tread that thin line between hardware and software.

Don't assume the worst!
Windows XP was released on the 25th October, 2001. That's nearly two years ago already. Only the most short-sighted of companies that were planning a release for on or around that time would have ignored this oncoming juggernaut at their extreme peril. So anything released since then is going to work right out of the box. There was also a longish period before that, from about 1997 onwards, when game companies had finally given up on DOS and were sticking quite firmly within the boundaries of what Windows 95 and DirectX allowed. Just a short list of fabulous games from this era that will work with no problems in XP:

Gabriel Knight 3
Fallout and Fallout 2
Planescape: Torment
Anachronox
The Longest Journey

Actually, The Longest Journey was made in 2000, and it's a borderline case. It fails miserably if you try to use its 'launcher', but works fine if you simply double-click on the main .exe file. There, I've saved you some bother already :-)

Know when to fold 'em
The Dark Ages for getting games to run in XP concerns the 1993 - 1996 time frame. It was during this period that companies were striving to squeeze the last remaining drop of performance out of DOS before Windows 95 took hold, and frankly, some 'war crimes' were committed in the process: reprogramming the processor to use their own memory management schemes, making use of esoteric or undocumented DOS/Win32 calls, you name it. Basically, games that fall into this category are either very difficult to get working, or won't work at all. But I've started up a permanent feature as a companion to this article to help with this type of game. It's entitled Steve's XP Games Corner, and it shows you how to get some real 'problem child' programmes running, beginning with:

Gabriel Knight: Sins of the Fathers (CD-ROM version)
Pandora Directive
System Shock (CD-ROM version)

The tweaking required to get games like this running is often considerable, so you'll need some special tools and file editing skills in order to tackle these games, but it's well worth the effort if you feel up to it. Please read the remainder of this article first though!

Anyway, back to it... if you can determine that a game of this vintage was written explicitly for Windows 95, you're still in there with a chance, albeit a slim one (DOS games are another matter. See the section below entitled 'Introducing VDMSound'). Windows XP will let you run programmes in Windows 95/98 'Compatibility Mode'. Sometimes you even need to do this with the Setup.exe on the CD that is used to install the game. If a Windows 95 game'sSetup.exe or the game itself refuses to work straight off in XP, you can try getting it to work in Compatibility Mode by doing the following:

  1. Right-click on the desired .exe file, and choose 'Properties' from the menu.
  2. Select the 'Compatibility' tab on the resulting dialogue.
  3. In the 'Compatibility mode' section of the dialogue, tick the 'Run this program in compatibility mode for:' box. Leave the operating system selected as 'Windows 95'.
  4. Click the 'OK' button, and then try running the programme again. If you still have no joy after that, you can try ticking various combinations of the boxes under the 'Display settings' section and then running the programme again (but I find that this invariably never helps).

A good example of Compatibility Mode in action is when you attempt to install the CD version of Broken Sword (I got my copy as part of the Total Revolution package). When you try to runSetup.exe from the CD, it won't even install in XP (thinks there's not enough hard disk space, no matter how much you have free). But just carry out the 4 simple steps above, run the Setup.exe programme again, and the whole thing now installs and works flawlessly (well, the opening credits are accompanied by some horribly loud and insane MIDI music, but it works perfectly from then on: speech, music, and all).

And that's about as much as I'd try on my own to get a Windows 95 game to run. See 'The last refuge' section below for ideas on obtaining help elsewhere.

Introducing VDMSound
Whereas there's often a simple solution for Windows 95 compatible games, the old DOS games are a different breed altogether. Now... this is where the going gets a bit tough. But don't worry, I'll try to introduce the concepts gradually, and not delve too deeply into things unless absolutely necessary. I promise.

It just so happens that a very bright and indubitably curious lad named Vlad Romascanu was discouraged by the fact that old DOS games could never work in Windows NT/2000. The reason for this is that most of these games assume that they are running in DOS (as they would), and interact directly with the sound hardware, chiefly for performance reasons. Unfortunately, this manner of direct interaction between software and hardware generates a 'protection fault' in modern operating systems. In other words: your game crashes and burns, usually before it even gets a chance to put anything on your screen. And what is XP but only a cousin of NT/2000! So... Vlad knuckled down and wrote a nice little utility that eventually grew into a very solid piece of open source (read: FREE) software called VDMSound. What VDMSound essentially does is emulate SoundBlaster and MIDI hardware in software, redirecting the wayward DOS programme's output to your modern Windows hardware! It also comes with a nice GUI (Graphical User Interface), so you can tweak to your heart's content - though mercifully, most games run with the default settings.

Here's a step-by-step guide to installing VDMSound:

  1. Launch your web browser and go to the VDMSound Home Page.
  2. Navigate to the Download area of this page, follow the link to SourceForge, and download the latest version of VDMSound from there (2.0.4 at the time of writing). For the remainder of these instructions, let's assume you put the downloaded VDMSound-2.0.4-WinNT-i386.msi file in a folder called c:\VDMSound.
  3. Double-click on the VDMSound-2.0.4-WinNT-i386.msi file that you just downloaded in order to install VDMSound. We'll also assume that you install it to the default installation folder: c:\Program Files\VDMSound.
  4. Next I recommend that you get the latest update, which was Update 2 at the time of writing. Stick this file in your c:\VDMSound folder too. Now unzip it into the c:\Program Files\VDMSound folder, so that the updated files go over the top of the files that were already there. Then open a Command Prompt (we used to call it a 'DOS box'. And geez, they really hid it well in XP. You get there via: Start -> All Programs -> Accessories -> Command Prompt). Then follow the instructions in the c:\Program Files\VDMSound\CHANGES.txt file in order to register the two new DLLs.
  5. Use Start -> Log Off to close down your XP session so that the changes will take hold. Then log back on again.
  6. Now we're going to get the GUI (a.k.a. VDMSLaunchPad). So follow the link to VDMSLaunchPad (version 1.0.1.1 at the time of writing). You guessed it, another file to stick into the c:\VDMSound folder. Unzip the contents of this file right into c:\VDMSound. Then double-click on the resulting install.bat file and... hey presto, we're now completely finished installing VDMSound (though you may have to Log Off from your XP session and log on again in order for the newly installed LaunchPad.dll to become effective).

Now we're ready to try out our new weapon... but we need an old DOS game for that! Hmm. Seeing as we all have different games, it's going to be rather difficult to find one that we share in common. But I'll tell you what: how about we use one of my favourites, Realms of the Haunting, as an example? (you realise of course that you have no choice in this matter :-) OK, let's go for it then:

  1. First, let's assume that you have already installed Realms of the Haunting (ROTH hereafter) to a folder called: c:\ROTH. Make sure you still have ROTH CD 1 in your CD-ROM drive.
  2. Now we have to 'train' ROTH to use VDMSound. Using Windows Explorer, open the c:\ROTH folder. Then right-click on the INSTALL.EXE file you see there. A menu pops up. There are two 'Run with VDMS' options near the top of this menu. IMPORTANT: select the one with the MUSICAL NOTES icon! Up pops the VDMSound Configuration Wizard. Now normally you would just select the 'Use a default configuration' option and try to get a game working that way first. And in fact, ROTH works just fine with all the defaults. However, we're going 'under the hood' here to see how this all works, so select 'Set up a custom configuration' and hit the 'Next' button.
  3. On the next page, choose: 'Create a new configuration from scratch' and hit the 'Next' button again.
  4. There is a single button in the business portion of the next page, namely: 'Advanced...', so click on it. Whoa! Options. Truckloads of them :-) When trying to get a game to work, I recommend changing JUST ONE THING AT A TIME. For instance, all you need do to get most old Sierra games running is go to the 'SoundBlaster' tab and change 'IRQ:' from the default of '7' to '5' (I just happen to know this, but you can find these little quirks out all by yourself if you always remember to only change one setting at a time between runs). Anyway, ROTH doesn't require any changes. We're just having a peek under the hood to see what's possible. So leave all the settings the way they are and hit the 'OK' button at the bottom of the dialogue to close it. Then hit the 'Next' button one more time, then the 'Finish' button, and we should finally get a Command Prompt appearing.
  5. The ROTH soundcard configuration runs, and ROTH is even able to automatically detect, configure, and test your 'fake' SoundBlaster. Yippee!
  6. Upon exiting, note that VDMSound has now saved its configuration as a 'VDMSound Shortcut' called INSTALL. If you ever needed to run the install again, you could do so simply by clicking on this shortcut.
  7. Now we can try running the actual ROTH game. Just right-click on the ROTH.EXE file, and go through the same steps as you did with the install, making sure to maintain the same settings. After running the game once, you now have a VDMSound Shortcut called ROTH that you can double-click on to run ROTH anytime thereafter. And we're done!

Not all games will work that easily, but you can always browse through the 'Compatibility list' on the VDMSound Home Page to view the notes of those that have gone before you. If you don't find the game you're looking for listed there, try reading the installation notes for your game carefully, looking for the default options concerning IRQs, DMA channels, version of SoundBlaster, etc. For instance, to get one very old game working I remember having to set the SoundBlaster DSP ver. to '1.05 (SoundBlaster 1.x)'. You can also play with various combinations of EMS and XMS memory simulation on the wizard's 'Compatibilty' tab if a game manual expresses requirements of this nature.

Just to explain a few of those 3-letter acronyms that you may not have seen before:

IRQ (Interrupt ReQuest) - the mechanism by which the sound card gets the processor's attention when it's finished playing one sound sequence and is ready to be programmed for the next one.
DMA (Direct Memory Access) - whereby the bytes going to the sound card are transferred directly out of memory to the card, rather than having to be read by the processor one at a time and then sent to the card, which would take much longer.

One other thing you have to know about using VDMSound is that if you choose to leave the 'Remember my settings' box ticked every time upon exiting the wizard, you'll have to keep deleting the VDMSound Shortcut file prior to each run or the wizard won't start up again. So you may not want to save the settings until you get the game working. And that means you'll have to do the final run twice, so always remember what you last did! I would always recommend saving the settings on the very first run though, as we did in the example above, for if the game works on the first attempt then you are done.

The last refuge
If you can't get a Windows 95 programme working in Compatibility Mode, or a DOS programme working using VDMSound, then don't give up hope just yet. Remember that if nothing else, the Web is at least a vast knowledge base! You will find that Half-Life, for instance, can be made to work. All you need do is download an 86MB patch (that I eventually found on a mirror somewhere in eastern Europe), and something like 8 hours and a much higher phone bill later... voila! You see, I'll go to nearly any lengths to get a great game running in XP.

But beware that any advice you find on the web must also be tempered somewhat. If some bright spark purports to have got game 'X' working, but hasn't provided detailed instructions that you can duplicate with success, and more importantly, that other forum readers also haven't duplicated with success, it is probably a vacuous boast (much like an unreproducible scientific experiment. Think: cold fusion :-) Likewise, don't begin to even contemplate taking any advice that involves putting a second operating system on your machine (i.e. going 'dual boot'). This process is beyond the realm of expertise of mere mortals, and you will almost surely wind up in tears and with a useless lump of expensive hardware should you attempt it. If you want to run lots of older games as a hobby, then you're best off using any old clunker of a machine (with DOS 6.2 and Windows 95 installed) expressly for that purpose.

And that's about it from me for now. I hope that you can take something useful away from this article. If you manage to get even one or two games up and running, that alone should be worth the time and effort expended reading this!

See also the Quandary SOS Page for links to additional help in getting games to run.

Copyright © Steve Metzler 2003. All rights reserved.