Direct Draw Hack: Helping The Aged On Win 7

By Alec Meer on September 7th, 2010 at 9:30 pm.

Despite the PC’s unassailable status as undying gaming platform with an uncountable number of titles in its history, the exciting/chilling march of operating system progress has seen successive versions of Windows cruelly dispense with support for the golden, vital past. Most recently, the otherwise fairly splendid Windows 7 threw out Direct Draw support, leaving a slew of Windows 95-era games left in the emulation cold. A man has fixed this, and thus you should worship him.

Finnish software engineer Jari Komppa was dismayed to discover that the earlier Wing Commander games – most especially the first one – went all kinds of wrong in Windows 7, either screwing up the palette or making the rest of the OS look all screwy. For Reasons Too Complicated To Explain involving DirectX’s attitude to and emulation of OpenGL, he’s been able to fix this. And he’s put it here.

Most compellingly, it’s proving to have knock-on effects to other era-defining PC games – including early StarCrafts, Warcrafts and Fallouts. So, if you want to revist such august titles without delving deep into file-hacking, DOSbox and arcane user-patches, here you go. Microsoft’s unilateral “screw the old games” philosophy doesn’t have to hold true after al.

, , .

67 Comments »

  1. Helm says:

    Are we talking running them straight up or through Dosbox, here?

    • Stijn says:

      Straight up; a large number of affected games aren’t even DOS games, but rather Windows-based games that use routines not supported as well by the current generation of Windows as by 95/98. This “patch” reimplements these routines so they work again.

    • Premium User Badge

      Wisq says:

      Okay, but the “earlier Wing Commander games” (especially the first one) were, in my memory, DOS games. Even WC3 was DOS. So unless there were Windows 3.1 versions released with DDraw, it seems a bit odd that this would have any effect on them.

      I think part of the problem here is that people have gotten complacent about running the ancient Windows ports of DOS titles, rather than running the original DOS versions under something like DOSbox. For example, when I wanted to find the DOS version of X-COM, I was constantly coming across sites that offered “X-COM” (not “X-COM for Windows” or “X-COM for DOS”) and almost all of them were the Windows version.

      The assumption (quite correctly) is that most people are going to want the Windows port, because Windows dropped most DOS support a while ago. But with DOSbox having matured so nicely, and Windows shedding its own backwards compatibility, the situation is starting to reverse.

      I’ve been preferring DOS versions over Windows versions for a long time now, since DOSbox runs equally well on Linux and Mac (I use both). As far as I’m concerned, this is a wake-up call that we can’t rely on Windows compatibility forever, and given how easy it is to emulate DOS, maybe keeping those DOS versions around isn’t such a bad idea after all.

    • dadioflex says:

      @Wisq Windows versions often incorporated extras like voice acting or extra music in the CD-Rom version.

  2. Wilson says:

    Wow, this is great. I love old games!

    • wrathfirex says:

      Mr Jari Komppa, you Sir are indeed THE man! I’m a lousy hacker and Dosbox is too complex for my simple gamer brain.

      Now if only Good Old Games would release the Wing Commander Series… *cough* *cough* *wink* *wink* *nudge* *nudge* *hint* *hint*

  3. ScubaMonster says:

    I haven’t tried on Win 7, but on Vista Starcraft ran just fine. So I’d assume it’s the same with Win 7. I know Diablo 2 works on Win 7, I have it installed right now.

  4. Vinraith says:

    Thank you Mr. Komppa, you’ve made me feel markedly better about my inevitable (if still somewhat distant) upgrade!

  5. ZIGS says:

    That image sure is… suggestive

    • monkeybreadman says:

      What its just a guy holding his joystic…. oh wait.

      NEWSFLASH – Wing Commander was an allegory for wanking

    • DJ Phantoon says:

      But of course. If you’re gonna be someone’s wingman, but the chick he picks up doesn’t have a friend, you’re gonna probably go alone that night.

    • Patrick says:

      I call it “Battling the Kilrathi”.

    • Premium User Badge

      stahlwerk says:

      “Shooting Prince Trakkath”

  6. Ravenger says:

    This might fix some rendering problems with the Baldur’s gate games.

  7. Xercies says:

    Would this fix the old C&C games? I’ve been trying to play them but its going funny because i’m guessing its an older game. i might just try it out.

  8. Premium User Badge

    DollarOfReactivity says:

    That screenshot takes me back. I can hear the MIDI music and pew pews clear as day. :) I use DBGL/DOSbox and haven’t noticed a problem, but good to know there’s a fix available. Ah, wonderful world wide web.

  9. MuscleHorse says:

    Is this just fixing graphical issues or others? I’ve had odd mouse glitches with Dungeon Keeper for a while.

  10. Andrew says:

    When I say that graphic it brought back some happy memories…. eventually.

    For something I spent at least a couple of months in front of the fact I couldn’t remember the name of the game till I read the text is a bit scary….

  11. Huggster says:

    Fallout. Gory.
    >>>
    Mad Max 4 is in pre-production with Tom Hardy playing Max – postponed until next year.
    I highly recommend the Blu-ray of Mad Max 2 – good transfer.

  12. dancingcrab says:

    Okay, now I need someone to figure out how to run 16-bit applications (e.g. Dungeon Keeper) in Windows 7 64 without resorting to DOSBox…

    • Azhrarn says:

      XP-mode VM will work for most old games, as long as they’re actually old and don’t require high-level DirectX support or hardware acceleration support since that Virtual Machine setup has neither.

      Another way is to use XP-mode to run the installer (since those are often 16-bit for Windows 95 era games, even if the software itself is native 32-bit) and then move the files back to your normal Windows 7 64-bit installation and running them in compatibility mode from there, worked very nicely with Dune 2000.

    • Optimaximal says:

      Only Dungeon Keeper’s installer is 16-bit. The game itself is 32.

  13. Shagittarius says:

    If they don’t run on Windows 7 they will run on my XP box. If they don’t run on my XP box they will run on my Win95/98 box. If they don’t run on my Win95/98 box they will run on my Dos box. If they don’t run on my Dos box they will run on DosBox.

    If they don’t run on any of those they probably never worked.

    • Ozzie says:

      Which makes me wonder: I also have a Win95/98 box, but I never got Master of Dimensions running on it. It just refuses to work, even with patch. Tried it on 95, 98, in a virtual machine, with various DirectX versions, but nope, impossible.
      I wonder how people got it running. Obviously, at least some reviewers managed to do so.

      There are other examples, but they’re so obscure that barely anyone heard of them. ;)

  14. gulag says:

    let me get this straight; you just drop this DLL into the folder alongside the EXE of any old game you’re trying to get running?

    Is that right?

  15. Rosti says:

    Aces! Now I can finally try to not fail WC3: Heart of the Tiger! Thanks Alec. Thalec.

  16. The Deleter says:

    Hooray! Now I can play that old Lego Rock Raiders game I loved when I was a kid.

  17. Klaus says:

    I like the way he holds that joystick.

    Yes.

  18. skooma says:

    Really pleased with this. I had to use Wine on Linux to play Cossacks 1 properly and Age of Empires 1/2 were affected as well by the lack of DDraw support.

  19. Jon says:

    Easiest way to run Dungeon Keeper is KeeperFX (with the added bonuses of higher resolutions!)
    http://keeper.lubie.org/html/dk_keeperfx.php

  20. DSX says:

    Fascinating work – I wonder if the VGA 320×240 modes can be hacked to run on smart phones and portable devices.

  21. ScubaMonster says:

    Even some more recent games have been affected. I re-installed C&C 3 on my Win 7 64 bit yesterday, and the game had a directx error trying to start it. So I downloaded DirectX 9, installed the latest patch for the game and got it to run. Apparently I had to have directx 9 and not just 10 or 11 or whatever it is that comes with Win 7.

  22. N3gentropy says:

    What’s funny is: Windows 7 still has Telnet drivers, if you look for them.
    I imagine some random intern flipping a coin to decide what gets tossed to bring the master disc down the few megabytes it needs to reach 7.1 GB.

    • Damien Stark says:

      Actually, as a network engineer supporting Cisco IOS gear, Telnet is invaluable and sees daily use. Yes yes I know SSH is better, but there has to be support in place on the code level you’re running, which depends on hardware, and there’s known bugs with outbound SSH, etc etc etc.

      Point is, you’d be suprised which things are valuable to business.

  23. The Other Chris D says:

    @Wisq
    The early WC games were re-released in a more windows compatible format sometime after WC4 was out. There, just dug the box out of my closet: Wing Commander: The Kilrathi Saga. The pack contained WC1, WC2, and WC3. (what, no WC: Armada?)

    “Modified for Windows 95. No more DOS installation”

  24. Ed from Brazil says:

    The hack has NOTHING to do with DOS or DOSBox. It’s for early Windows 9x games that used DirectDRAW.

    Wing Commander is included in that because EA released the Kilrathi Saga box back then, which had the first 3 games ported to Windows 9x.

    Early Win9x games are the last frontier for those of us who love to play older games. Especially 3D accelerated gems like MechWarrior 3 and Crimson Skies.

    Most DOS games can be easily played with DOSbox (and I do mean easily… it’s not very hard to make a decent dosbox.conf file for a game, it’s actually a lot easier than making a good boot disk back then), and anything post-glide seems to run very well on XP or 7. But those first DirectX games are a pain in the ass.

    I am immensely thankful to Mr. Komppa.

  25. IslamicShock says:

    Now somebody needs to figure out how to add IPX back to Vista/Win7.

  26. James Tao says:

    Another game that would recieve a positive boost from this: Planescape.

    There was some issues with graphical glitching on spell effects when DD was disabled, among other things. There were hacks to fix it, but all the ones I’d tried brought in new, lesser issues of their own. This will make my upcoming Win7 replay a heck of a lot easier…

    (tl;dr: Thank you very much, Mr. Komppa!)

  27. sana says:

    Age of Empires 2 doesn’t start up with the hack, and neither does Fallout 2. StarCraft runs at ~5 fps. StarCraft players should use the Chaos Launcher and run the game in window mode instead.
    http://www.teamliquid.net/forum/viewmessage.php?topic_id=65196

  28. dingo says:

    The early WC games were re-released in a more windows compatible format sometime after WC4 was out. There, just dug the box out of my closet: Wing Commander: The Kilrathi Saga. The pack contained WC1, WC2, and WC3. (what, no WC: Armada?)

    “Modified for Windows 95. No more DOS installation”

    The Kilrathi Saga went for some serious money on Ebay back in the day.
    I got my complete edition (including the calendar that is often missing) for around 200 EUR…
    If you have a complete edition it’s a good idea to hold on to it.

  29. Premium User Badge

    The Sombrero Kid says:

    Direct x doesn’t emulate Open GL this is needed because Microsofts Direct Draw Wrapper doesn’t behave the same way as the original native direct draw dlls, he’s fixed this for this game, but starcraft and warcraft all work fine with the Microsoft ddraw.dll, i’ve been playing them for since i got windows 7.

  30. Maxheadroom says:

    I found an old WC3 at work a few years back and tried to install it on my XP machine to relive some old times.

    However when I tried to install it I got a message along the lines of :

    “You need a cd drive that supports at least 2x to run this game. Your drive is reporting as 48x which is clearly impossible so there must be a fault. Installation aborted”

  31. Lord Poo Poo says:

    Can anyone confirm that this will fix Planescape: Torment’s graphic problems?

  32. Tei says:

    My impresion of the problem is this:

    Nvidia and ATI driver programmers are growing complacements on about a 90% of the games using the same 2 or 3 engines. So.. good luck if you create a engine from scratch or want to run something “weird”.

    Old games are using stuff that is not used anymore, so there can be more bugs there. Is like a house soo big, parts of it are abandoned and now are the house for bugs, spiders.. …literally.

    I have read on /. that Microsoft stills “supports” these old stuff, but new SDK’s don’t include then, so is somewhat like legacy stuff (lierally).

  33. fitz says:

    This is why I still have a second PC, full of very old components, that runs Windows 98 underneath my desk.

  34. Premium User Badge

    MonkeyMonster says:

    That image actually caused an intake of breath that made people in the office look up… isn’t nostalgia great.
    Wing Commander Privateer – anyone remember the mission to do with one of the holy planets and the guy looked like Salman Rushdie? Heh heh – good ol google…
    At one point in the game you had to defend an academic who had written a radical paper about some religious extremists called “Retros,” the academic in question looked exactly like “Salman Rushdie…”

  35. Vaxis says:

    Nah, Planescape Torment doesn’t even start with this hack. Bummer.

  36. Subject 706 says:

    @wraithfirex
    Fear not, there are several graphical front ends for DosBox that even a chimp could manage!

  37. bill says:

    It’s ridiculous how hard it’s becoming to run old games. Dosbox helps a lot for dos, but early windows games (or even later ones) can become nightmares.

    I’m really amazed no-one has made a decent solution. Either decent ddraw/d3d support for a virtual machine, or some more advanced form of wrapper that includes things like frame rate limiting. You’d think there would be the demand.

    Wine seems the best bet, but ironically very hard to get working on windows.

    Heck, you’d think some company could flog it to all the publishers – and they’d instantly have a massive back-catalogue that they could stick on steam/gog and make money off.

    (it’s also ridiculous that games have a shelf life of a couple of years, when movies and albums have decades/centuries. )

    • Ozzie says:

      Well, there are some open source projects which just recreate engines from some games. Of course, that’s not some universal solution, and lots of oddities are left out that way.

  38. cybernomad says:

    Apparently Planescape Torment runs without graphical glitches with a software called D3DWindower.

    Here is a link to a complete guide with user patches:

    A guide to PST with D3DWindower:

    And a link to the newest translated version i know of:

  39. Premium User Badge

    cybernomad says:

    Now hopefully like intended:

    Apparently Planescape Torment runs without graphical glitches with a software called D3DWindower, which also can run other old DirectDraw games.

    Here is a link to a complete guide to PST with user patches:
    http://thunderpeel2001.blogspot.com/2009/01/planescape-torment-fully-modded.html

    A guide to PST with D3DWindower:
    http://www.shsforums.net/topic/43616-how-to-deal-with-the-ddraw-problems-of-pst-and-other-ie-games/

    And a link to the newest translated version of D3DWindower i know of:
    http://www.brothersoft.com/d3dwindower-238977.html

  40. Lord Poo Poo says:

    @cybernomad

    Thanks!

  41. bakaohki says:

    I tried it with RA2, but unfortunately got a black screen with the logo, nothing else. Btw RA2 worked okay on Win7 x32 on my desktop (win98 compat mode), but on my W7 x64 laptop all the menu items are missing… anyway one still can run these games in Virtualbox with a pretty decent speed (used win2k for that).

  42. Luomu says:

    Mr. Komppa recently ported Death Rally to Windows, so I’m sure he knows his stuff. Somebody should just let him port more classic games.

  43. LionsPhil says:

    Hijacking the window function was a surprising experience. Apparently the legal way to do so is to use SetWindowLong, a function designed to access user-defined data padded after the window class structure, with a negative offset. This is documented in MSDN.

    *shudder*

    Win32 programming really is horrific.

    • Premium User Badge

      stahlwerk says:

      What the…? Wouldn’t that prompt the “Prevent harmful memory access”-extensions* to… oh no wait, that window already belongs to the process, right?

      *) may or may not exist.

  44. Enshu says:

    It is always nice to see something good done for old games and gamers.
    If only something could be done about IPX now without resorting to VM.

  45. James says:

    It may be relevant to your interests that Wing Commander 1 was recently legally released for free.

    http://www.wcnews.com/news/update/10285