Tendo City
VirtualBox: Best thing ever. - Printable Version

+- Tendo City (https://www.tendocity.net)
+-- Forum: Tendo City: Metropolitan District (https://www.tendocity.net/forumdisplay.php?fid=4)
+--- Forum: Ramble City (https://www.tendocity.net/forumdisplay.php?fid=44)
+--- Thread: VirtualBox: Best thing ever. (/showthread.php?tid=6088)



VirtualBox: Best thing ever. - Dark Jaguar - 24th January 2011

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.


VirtualBox: Best thing ever. - Great Rumbler - 24th January 2011

Planescape Torment has been messed up like that for a while, luckily it's an easy fix.


VirtualBox: Best thing ever. - etoven - 24th January 2011

Yea, virtualbox is great.. A while back ago I ran linux on it and it worked great. Unfortunately none of my processors support hardware virtulization. But it still runs pretty well on my windows 7 machine. After reading your post, it sounds like you went threw hell just trying to get some really old games to work.. Jesus Crist are they that fun to play? It's like trying to power a f16 fighter with vegitable juice. It's possible to pull it, off but why would you want to?

I guess I'm just really for letting obsolete things die and moving forward.


VirtualBox: Best thing ever. - Dark Jaguar - 25th January 2011

I consider my old games part of my "library" of games, and I tend to want to be able to enjoy them for years to come. I don't throw away decades old books after all. Same thing here. I don't consider old art to be "obsolete", that's all. I mean I get that some people don't care that much. Those are the people content to just throw out all their old VHS tapes when their VCR dies rather than go through transferring them to DVDs or Bluray.

The alternatives, which would work but are more awkward to set up, involve either duel booting with multiple partitions or just buying really old parts off of eBay and building a "retro computer" for all this. Besides I'm nothing. There are people who go through great lengths to keep the old MT-32 music synthesizer from the 80's working on present computers because it provides the best quality sound for a number of old DOS games and is very tricky to properly emulate.

The distressing thing, to me, is all the whisperings of ARM processors killing x86 processors. Windows 8 will have a version designed for ARM, and all the speculators out there are talking about how ARMs are the next big wave, having already dominated portable systems.

There may be truth to that, but it'll certainly be difficult to convince me to switch. In fact, it'll be hard to convince most current Windows users who have even a decent number of modern programs they want to keep using to switch. In the end though, I do see it standing a good chance at dominating the laptop market.

I do wish they'd do a least a little more token support of legacy applications though. Directsound support in Vista/7 is just gone. That's more than just a legacy issue. That's bad moving forwards. MS has seen fit to do ALL sound processing via software. Well, that's not good. I bought an x-fi sound card for a reason after all. Sure just about anything that card can do can be done in software, but that's true of direct3d as well, but no one in their right mind would WANT to do that.

Sound acceleration takes the burden off the CPU, allowing it to handle other tasks instead. Creative and others have been forced to kludge together a solution. Games built with Vista and 7 in mind just directly look for X-Fi sound cards to give them commands directly. Yay, what is this the pre-directx days? What happens when a viable competitor to Creative finally shows up? As for older XP games, Creative had to put out a special program called "Alchemy" that sits resident in the background and intercepts calls to Direct Sound. However each game has to be added manually via a menu, and not all of them work (as mentioned before, Planescape Torment doesn't work with Alchemy). Bioshock does, and I can say that EAX turned on does improve the frame rates, as one would expect, as well as give me snappier sounds.

MS removing support for that was not a good long term plan. GPUs are being merged with CPUs in the future, and honestly I could foresee putting sound acceleration into the CPU as well to directly tie it all together for even quicker sound response in games, but only if the operating system supports those sorts of calls.

The removal of 16 bit support really is a purely legacy issue, but one that has some unexpected consequences, like, as I said, 16 bit installers for otherwise 32 bit programs. This one I blame Intel for. I am not sure why a true 16 bit support couldn't have been rigged into 64 bit mode just like it was into 32 bit mode. What confuses me even more is that 16 bit apps CAN run in 64 bit mode under a virtualized environment. Weird...


VirtualBox: Best thing ever. - A Black Falcon - 25th January 2011

It's weird that 7 would have such massive graphics issues... my Vista 32-bit machine does pretty much none of the things you describe beyond being unable to run DOS programs fullscreen (On that note, text mode DOS programs WILL run fullscreen -- so you can run Zork, Castle Adventure, Kroz, etc., just not anything that actually uses a graphics mode). Beyond the obvious 16-bit installers issue -- and I think that very, very few games aside from the ones you mention have fanmade installer fixes, most games just are not playable because most games in the '90s used 16-bit installers -- that whole massive DirectDraw problem you describe doesn't exist in Vista (32-bit at least). One more reason for me to not want to upgrade, if it's going to be like that...

... Actually, maybe it does exist to some minor degree. I've seen moments where the colors do go wrong. However, it never sticks; in Starcraft for instance perhaps sometimes the menus are messed up, but never the game itself, and most games are not affected. I've never seen most of that stuff you describe. I'm sure there are some minor issues here and there (Baldur's Gate's fog edges don't quite look right for instance), but nothing game-breaking like you've got there... well, apart from the games that do not work in Vista but did work in XP or DOS or 9x or whatever, there are a few of those. (note - I have a DX10 video card and DX10 or maybe 11 installed)

Quote: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).

I've never had a computer with an ATI video card, but if it got me 320x240 mode back, it'd almost be worth it I think...

Quote:What happens when a viable competitor to Creative finally shows up?


Creative will purchase or destroy them just like they have every other serious competitor. People have tried before, such as Aureal about 10 years ago, but Creative crushes them. And considering that DirectSound is for some monumentally stupid reason gone, as you say, it's not like we have a choice... it's Creative or onboard audio, pretty much, if you want sound, and onboard is obviously much worse for gaming. I agree, MS removing DirectSound was awful.

Quote: The removal of 16 bit support really is a purely legacy issue, but one that has some unexpected consequences, like, as I said, 16 bit installers for otherwise 32 bit programs. This one I blame Intel for. I am not sure why a true 16 bit support couldn't have been rigged into 64 bit mode just like it was into 32 bit mode. What confuses me even more is that 16 bit apps CAN run in 64 bit mode under a virtualized environment. Weird...


They just thought that emulating 16-bit mode into the 64-bit OS wouldn't be worth the effort, obviously. There was demand for 32-bit programs, but not enough for 16-bit ones for them to do it, unlike, say, XP, which of course basically was Windows NT (which previously had been 32-bit only) but with 16-bit compatibility mode added. I agree, it's unfortunate and not good, but it's not too hard to understand.

There is another way for some games, of course... you could re-buy games you already own on services like GOG, who make them so they work on modern systems now. I'd rather not, if I have the game on disc already, but it is an option for some titles.