Slashdot Mirror


Breathing New Life Into Old DirectDraw Games

An anonymous reader writes "I bought a bunch of old Wing Commander games for Windows, but they use DirectDraw, which Microsoft has deprecated. They don't work too well under Windows 7, so I ended up reimplementing ddraw.dll using OpenGL to output the games' graphics. I wrote an article describing the process and all the fun workarounds I had to come up with, and released all related source code for others to hack on."

12 of 274 comments (clear)

  1. There were some damn fine games in that era... by Dexter+Herbivore · · Score: 4, Insightful

    and we didn't need gimmicks like motion controllers, photo-realistic graphics and high framerates to enjoy them.

  2. Or you could by Rosco+P.+Coltrane · · Score: 3, Insightful

    use an older version of Windows in a virtual machine.

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
    1. Re:Or you could by M.+D.+Kristopeit · · Score: 3, Insightful
      NOT INSIGHTFUL. virtual machines are NEVER the optimal solution. ddraw.dll has been reimplemented at the lowest level... given that, why would anyone choose to rather use a virtual machine?

      the only appeal of using a virtual machine was to a lazy developer WHO DIDN'T WANT TO DO IT RIGHT.

      thanks story submitter... glad someone out there still understands, and has some pride left.

    2. Re:Or you could by dintech · · Score: 4, Insightful

      But to run Wing Commander on modern hardware, it doesn't need to be optimal. 80/20 rule dude.

    3. Re:Or you could by kinema · · Score: 5, Insightful

      What is learned by simply booting up a VM and loading a game? In the story submission he specifically mentioned "all the fun workarounds" that he had to come up with get everything to work on a modern system. Don't you think doing a cleanroom reimplementing a subsystem like DirectDraw presents a great learning experience?

      No, I wouldn't have done this if you had payed me; I have my own interests and passions. I'm not at all interested in graphics programming or for that matter video games, though, apparently someone is and I think it's great that he saw a problem and decided to attempt to find a solution for it.

      This is what being a geek is all about. Bravo.

    4. Re:Or you could by Your.Master · · Score: 5, Insightful

      It's only already done if the only ddraw game you want to play is Wing Commander 1-4 (Windows versions). And only with conventional monitor setups and only if you never want to capture the window content, due to the kludges involved. And if you can stand the known bugs he mentioned, eg. the blinking screen effect described in Wing Commander 4.

      So basically, it's only already done if you want a suboptimal experience. But you were just talking about how you wanted an optimal solution, and how a solution that basically works better than this is "never" the optimal solution. To be fair, it sounds like 1-3 work pretty well, but for 4 you have to put up with some crap. And any other ddraw game is unlikely to work all that well.

      This is a fun an interesting reverse engineering project. Stop being such a prick about it.

  3. Re:Wine? by advocate_one · · Score: 4, Insightful

    "Funny you should mention that..." I blew this morning trying to get some old PS2 hacking apps running on Wine. In the end I just installed w98 on a spare box. Wine is classic YMMV. It's a good, worthy project, but man, you just can't _count_ that's it's going to deal with even small old VB6 apps ahead of time. Use restraint for recommending it unless you've done exactly what's being discussed.

    what seriously pisses me off with WINE is that something works with one version of it, but breaks in the next... the database is almost useless with regards to being kept up to date and I'm too old for all this hassle now... and there's TOO much emphasis on having the very latest game running on it to the detriment of making sure other games don't become broken by changes made to support the latest and greatest...

    --
    Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
  4. Re:Who says DirectDraw is going away? by Suiggy · · Score: 5, Insightful

    Yes, DirectDraw still exists on Windows 7, ddraw.dll is still there, and the headers are still a part of the Windows SDK and DirectX SDK. The problem is that graphics card vendors no longer care to test that their drivers work properly with DirectDraw, so it's really hit or miss if you get support.

  5. Re:Wine? by bmcage · · Score: 4, Insightful

    Wingcommander ran great in wine last time I played it in 2008. I suppose windows developers don't follow linux development?

  6. Re:Wine? by mr_mischief · · Score: 5, Insightful

    Automated testing of all the applications is pretty much a nonstarter. However, automated regression testing to make sure function calls with the same arguments in the same context don't give different results just because you debugged a different set of arguments or in a different environment are easy to do with a proper test harness. The hard part is mapping the applications to test cases, but that's not impossible, just time consuming and somewhat difficult.

  7. Oh stop by Sycraft-fu · · Score: 5, Insightful

    The "Back in the day things were so much better," stuff gets annoying no matter what it is about and games are no exception. Were there good games back in the day? Sure were. Guess what? There were also bad ones, you just don't remember them as well. This is in part because our memory tends to deliberately filter out bad experience, but mainly because good games you played a ton, bad games got set aside.

    Know what else? There are good games now. The modern graphics and so on have not stopped people form being able to make good games.

    Also I don't like this elitist "purist" thing that people pretend to of "Oh I don't even like the graphics, I just want good gameplay." Guess what? The graphics and sound can well be a part of that. When games are visually appealing it can add to the immersivness. It is easier to lose yourself in a convincing world.

    So stop getting all "Get off my lawn," about games. There are great old games and you can still enjoy them with the help of emulators. However don't hate on new games just because they look better. That is not a bad thing, it is a good thing.

  8. Re:Oh SNAP! by pandaman9000 · · Score: 3, Insightful

    You are in with the old crowd here. S.T.A.L.K.E.R. is a few years old, except for Pripyat, and even then the graphics are the most dated part of the game.

    And, yes, gameplay is what really matters. I still break out M.U.L.E. occasionally, and, guess who joins? My hardcore gaming kids, aged 8, 12, and 14.

    Read that again: Game play IS the top priority in a game's longevity.

    M.U.L.E.
    Age of Empires
    Age of Mythology
    DOOM/DOOM2
    Freelancer
    Serious Sam
    Oblivion
    Rainbow Six 3: Raven Shield
    Counter Strike (Half-Life1 AND 2 versions)
    Quake, Quake2 CTF

    These are just a few that drive home the "game play matters" idea. Notice how almost all of those are over 5 years old? My guess is that it is that we are in the era of "Milk the online play", and past the "Make it worthy of replay" era.