24th January 2011, 10:43 AM
So's I'm noting how each time I upgrade my OS, it kills a little more of my backwards compatibility, killing a bit more of my soul. Recently I made the push to Windows 7, and if I'm going to do that, I decided to go all-in and use the 64 bit edition. I knew what that meant. Intel didn't add in legacy 16 bit support whenever a x86-64 processor is running in true 64 bit mode, so I couldn't run 16 bit applications. I decided to do it anyway, because really just about all my games are either pure DOS or 32 bit games, with only a handful of 16 bit games I'd just end up using DOSBox's special windows 3.11 installation I made.
Still, I hadn't expected the trouble I'd find. As ABF noted, the command prompt doesn't support full screen mode. That's not really an issue because it can't run 16 bit programs anyway. I'd just use DOSBox for that. However, the implementation of Direct Draw mode in Windows 7 is somewhat lacking. It seems that games that use Direct Draw modes get their color palettes overwritten almost immediately, so I was treated to Starcraft 1: Tie die edition. I felt like my monitor was in a psi-storm watching that game's colors go all rainbow on me. This also affected Fallout 1 & 2, Warcraft 2 B.NET, Monkey Island 3, and probably a few others I didn't get around to trying.
After looking up numerous very esoteric and inconvenient solutions (one involved keeping the resolution window open when starting the game), I finally found out that MS actually DID program in fixes for old Direct Draw games. However, the fix is game-specific, that is, multiple fixes. It identifies the game in question using a sort of hash value from the executable as well as the file name itself (to prevent false positives). However, Microsoft didn't put in quite nearly enough different game handlers. It seemed to take a back seat to making sure direct3d 9 emulation was working correctly (modern Direct3D having replaced direct draw for 2D, and rightfully so). It seems that the profiles for direct draw games are stored in the registry. Under a Directdraw heading (the location of which is different based on whether you are using 32 bit or 64 bit windows), there are two notable entires. The first is a list of keys handling specific executables (it's only got about 15 or so entries, most of which are downright terrible games), and the second is a note of the details of the very last direct draw application to be run. Starcraft was actually among those entries, but it was for an older patch, the newer patch having changed the hash value and thus no longer triggering that entry. Using the "last direct draw run" entry there, I just ran each one of my direct draw games, noted what that entry said the title and hash value was for it, and created new keys for each in turn. The tricky part was for a value that determined how Windows 7 would treat the direct draw coloring. Different values would result in different solutions, and the various 15 or so entries showed numerous different kinds of values. I settled on 00 08 00 00, the one the older Starcraft entry used, and that seems to work great for any game that runs in 640x480 (256 color) mode. After that, each game worked fine, but only after the very first screen had gone by (it seems the fix didn't activate as fast as the game started up). Fixing that was as simple as turning on one compatibility option in the shortcut itself, and then it worked flawlessly. Warcraft 3 was a special case. It didn't use direct draw, but it did have some weird distortion in the FMVs. Turning off desktop composition in the compatibility tab fixed that. (I can give you details of my fixes some other time if you need them. Heck I'll upload the registry entries I made if you want.)
Sounds great right? Well, it was, but it wasn't perfect. I noticed a few things. Firstly, numerous 32 bit games had 16 bit installers. This was a foolish oversight of old programmers which, sadly, is being repeated now as we move into the 64 bit era (so hopefully future 128 bit processors will fully support 32 bit modes so this isn't repeated). This included games that wouldn't even try to run if they didn't find the right registry entries saying "yes, this game actually is installed, no foolin'", and those games were Monkey Island 3 & 4, and Grim Fandango (probably others I have too). I lucked out though, because someone had actually developed special 32 bit installers for all 3 of those games. They only installed the games, and after that (and the previously mentioned registry tweak) those were working fine too.
One oddity is Planescape Torment. I blame NVidia here. Their driver isn't handling "sprite mirroring" correctly, meaning my character "moonwalks" in one direction. Turning off hardware accelerated sprite mirroring works though. (Another note, even with this game set up in Creative Alchemy, it still can't use EAX mode.) Actually NVidia is also to blame for not supporting 320x240 (or 320x200) modes correctly, which ATI still does. That shouldn't be a problem. Unlike other legacy support issues, that one wouldn't have hurt them in the least to implement. It's actually something I felt even in XP when Boppin' (Windows version) couldn't set up it's proper resolution in full screen and I was forced to play the game in windowed mode (which, since it's trying to run at 320x240 mode, is pretty dang small).
This brings me to the last batch I've tried. I have been working to get Tribes and Tribes 2 working correctly, and both just refuse to work right. I assume there's fan patches for these, but I'm sure they won't be the last that run into this level of messed up. Notably, Tribes 1 has a patch that runs as a 16 bit application, so again, I can't run it.
So yes, I tried out Windows XP Mode. What this amounts to is a special virtualized version of Windows XP running under Windows 7. This uses Virtual PC to do the job. The thing about virtualizing is, on a processor that supports "virtualization", it isn't emulation at all. It's running it's own code natively, just contained in another OS as a "sandbox" to prevent the code from going beyond that environment. Well, it runs it natively as far as the processor is concerned... That brings us to the next issue. Virtual PC sucks for gamers. It is meant as a stop-gap for businesses, so that outdated Windows XP applications (and outdated web applications designed for IE6) still work correctly while they upgrade their systems at their own glacial pace. In that role it does fine. However, everything else is handled via emulation. Even dragging windows around looks a bit choppy. Games can't even set a resolution at all, much less run at full screen. Maybe solitaire runs fine, but that'd be about it. It was enough however for me to run the Tribes 1 patch. That didn't fix it though.
This brings me to my next big discovery. There are, you guessed it, OTHER virtualization programs out there. Most of them cost a lot, and the few that are free aren't very high on features, such as Virtual PC. However, one GREAT one is VirtualBox. This brings me to the threat title. VirtualBox is just about the best thing I've ever found for playing outdated games. I'll note that again you will want a processor with virtualization enabled. While it will run without it, it'll be in an emulated mode, which as you might imagine is far too slow if you're trying to play games on it. In virtualized mode, it can run just about anything. Aside from Windows XP, Linux and Mac OS, it can also run some VERY outdated OSes, from Windows 98 to Windows 3.1. That's right, you can virtualize DOS games running side by side with windows 7 apps. After setting up a fake partition file, you'll stick in a disk image with the OS in question on it, or a bootable installer for that OS. It'll do what it needs to do to set it up and then you'll be able to "connect" a virtual CD image to that OS which will have special drivers that install to allow it to communicate with full directx support to the graphics and sound systems of the native OS. The best part is after this is done, the virtual environment can be made seamless with the native OS, allowing you to simply run applications in their own windows on your desktop, or full screen, and move the mouse back and forth between them, interact with them, and all that good stuff with no fuss and only a visual difference in the interface to clue you in that that's not a normal program.
So far, it's working simply fantastic for a lot of stuff. I've got Tribes 1 and 2 both working as well as they did in XP, and I intend to get that Windows 3.11 option utilized soon, possibly replacing the DOSBox version I have for playing those REALLY outdated games like the high res portrait version of KQ6.
Still, I hadn't expected the trouble I'd find. As ABF noted, the command prompt doesn't support full screen mode. That's not really an issue because it can't run 16 bit programs anyway. I'd just use DOSBox for that. However, the implementation of Direct Draw mode in Windows 7 is somewhat lacking. It seems that games that use Direct Draw modes get their color palettes overwritten almost immediately, so I was treated to Starcraft 1: Tie die edition. I felt like my monitor was in a psi-storm watching that game's colors go all rainbow on me. This also affected Fallout 1 & 2, Warcraft 2 B.NET, Monkey Island 3, and probably a few others I didn't get around to trying.
After looking up numerous very esoteric and inconvenient solutions (one involved keeping the resolution window open when starting the game), I finally found out that MS actually DID program in fixes for old Direct Draw games. However, the fix is game-specific, that is, multiple fixes. It identifies the game in question using a sort of hash value from the executable as well as the file name itself (to prevent false positives). However, Microsoft didn't put in quite nearly enough different game handlers. It seemed to take a back seat to making sure direct3d 9 emulation was working correctly (modern Direct3D having replaced direct draw for 2D, and rightfully so). It seems that the profiles for direct draw games are stored in the registry. Under a Directdraw heading (the location of which is different based on whether you are using 32 bit or 64 bit windows), there are two notable entires. The first is a list of keys handling specific executables (it's only got about 15 or so entries, most of which are downright terrible games), and the second is a note of the details of the very last direct draw application to be run. Starcraft was actually among those entries, but it was for an older patch, the newer patch having changed the hash value and thus no longer triggering that entry. Using the "last direct draw run" entry there, I just ran each one of my direct draw games, noted what that entry said the title and hash value was for it, and created new keys for each in turn. The tricky part was for a value that determined how Windows 7 would treat the direct draw coloring. Different values would result in different solutions, and the various 15 or so entries showed numerous different kinds of values. I settled on 00 08 00 00, the one the older Starcraft entry used, and that seems to work great for any game that runs in 640x480 (256 color) mode. After that, each game worked fine, but only after the very first screen had gone by (it seems the fix didn't activate as fast as the game started up). Fixing that was as simple as turning on one compatibility option in the shortcut itself, and then it worked flawlessly. Warcraft 3 was a special case. It didn't use direct draw, but it did have some weird distortion in the FMVs. Turning off desktop composition in the compatibility tab fixed that. (I can give you details of my fixes some other time if you need them. Heck I'll upload the registry entries I made if you want.)
Sounds great right? Well, it was, but it wasn't perfect. I noticed a few things. Firstly, numerous 32 bit games had 16 bit installers. This was a foolish oversight of old programmers which, sadly, is being repeated now as we move into the 64 bit era (so hopefully future 128 bit processors will fully support 32 bit modes so this isn't repeated). This included games that wouldn't even try to run if they didn't find the right registry entries saying "yes, this game actually is installed, no foolin'", and those games were Monkey Island 3 & 4, and Grim Fandango (probably others I have too). I lucked out though, because someone had actually developed special 32 bit installers for all 3 of those games. They only installed the games, and after that (and the previously mentioned registry tweak) those were working fine too.
One oddity is Planescape Torment. I blame NVidia here. Their driver isn't handling "sprite mirroring" correctly, meaning my character "moonwalks" in one direction. Turning off hardware accelerated sprite mirroring works though. (Another note, even with this game set up in Creative Alchemy, it still can't use EAX mode.) Actually NVidia is also to blame for not supporting 320x240 (or 320x200) modes correctly, which ATI still does. That shouldn't be a problem. Unlike other legacy support issues, that one wouldn't have hurt them in the least to implement. It's actually something I felt even in XP when Boppin' (Windows version) couldn't set up it's proper resolution in full screen and I was forced to play the game in windowed mode (which, since it's trying to run at 320x240 mode, is pretty dang small).
This brings me to the last batch I've tried. I have been working to get Tribes and Tribes 2 working correctly, and both just refuse to work right. I assume there's fan patches for these, but I'm sure they won't be the last that run into this level of messed up. Notably, Tribes 1 has a patch that runs as a 16 bit application, so again, I can't run it.
So yes, I tried out Windows XP Mode. What this amounts to is a special virtualized version of Windows XP running under Windows 7. This uses Virtual PC to do the job. The thing about virtualizing is, on a processor that supports "virtualization", it isn't emulation at all. It's running it's own code natively, just contained in another OS as a "sandbox" to prevent the code from going beyond that environment. Well, it runs it natively as far as the processor is concerned... That brings us to the next issue. Virtual PC sucks for gamers. It is meant as a stop-gap for businesses, so that outdated Windows XP applications (and outdated web applications designed for IE6) still work correctly while they upgrade their systems at their own glacial pace. In that role it does fine. However, everything else is handled via emulation. Even dragging windows around looks a bit choppy. Games can't even set a resolution at all, much less run at full screen. Maybe solitaire runs fine, but that'd be about it. It was enough however for me to run the Tribes 1 patch. That didn't fix it though.
This brings me to my next big discovery. There are, you guessed it, OTHER virtualization programs out there. Most of them cost a lot, and the few that are free aren't very high on features, such as Virtual PC. However, one GREAT one is VirtualBox. This brings me to the threat title. VirtualBox is just about the best thing I've ever found for playing outdated games. I'll note that again you will want a processor with virtualization enabled. While it will run without it, it'll be in an emulated mode, which as you might imagine is far too slow if you're trying to play games on it. In virtualized mode, it can run just about anything. Aside from Windows XP, Linux and Mac OS, it can also run some VERY outdated OSes, from Windows 98 to Windows 3.1. That's right, you can virtualize DOS games running side by side with windows 7 apps. After setting up a fake partition file, you'll stick in a disk image with the OS in question on it, or a bootable installer for that OS. It'll do what it needs to do to set it up and then you'll be able to "connect" a virtual CD image to that OS which will have special drivers that install to allow it to communicate with full directx support to the graphics and sound systems of the native OS. The best part is after this is done, the virtual environment can be made seamless with the native OS, allowing you to simply run applications in their own windows on your desktop, or full screen, and move the mouse back and forth between them, interact with them, and all that good stuff with no fuss and only a visual difference in the interface to clue you in that that's not a normal program.
So far, it's working simply fantastic for a lot of stuff. I've got Tribes 1 and 2 both working as well as they did in XP, and I intend to get that Windows 3.11 option utilized soon, possibly replacing the DOSBox version I have for playing those REALLY outdated games like the high res portrait version of KQ6.
"On two occasions, I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question." ~ Charles Babbage (1791-1871)