[Win7] Fixing old 256 color games with distorted palettes


Recommended Posts

For whatever reason I got in the mood for some retro gaming. Diablo 1, Atomic Bomberman, Planescape:Torment, things like that.. dinosaurs that are oh so last century but still fun to play. Then I was forcefully reminded about the 256 color issue with Windows 7; old 256 color DirectDraw games tend to have a psychotic color palette. Couldn't find any quick fixes via Google minus trying to force into a windowed mode and other iffy-at-best hacks. Sooo I poked around in the registry and got a fix. Putting this fix under the "It works for me" clause. None of the games I've run had to have any sort of compatibility modes set, minus a few that whined that they may not run. (Which they did.. Diablo for example will do this probably. Tell it to not bug you about it.) I was fairly surprised by how well these games ran under an OS that's a few versions ahead of what they were expecting.

Just throwing this out there in case anyone might find it useful. I'm doing this under Windows 7; no idea if it works (or is even needed) under Vista. XP? You need to upgrade. Shoo.

Requires a minor registry edit, the usual "be careful or your computer will die, come back as a zombie and eat your brain" rules are in play.

Each game will require it's own fix entry in the registry.

Navigate to : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\

Under Compatibility, you'll probably already have a few entries in there. Each entry is under it's own sub-key off of Compatibility. (You may want to bookmark that location in the registry editor for convenience.)

Also under DirectDraw is another key called "MostRecentApplication". This one is super handy, as you'll see why in a minute.

First thing's first, you'll want to make a new entry for your game. To make this easy, I attached an export of my Atomic Bomberman entry. Just rename the file to whatever with an extension of reg so it can be imported. Or, if you prefer a copy-paste, the export is listed as:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\Bomberman]
"Name"="bm95.exe"
"Flags"=hex:00,08,00,00
"ID"=dword:33c6e80c

Run your game for a few moments; don't really need to play it, just run then quit to the desktop. It's important that you do this step, as you'll see below.

Edit the file; there's a couple things that need to be changed. The key name itself needs to be changed obviously. Change Bomberman to whatever is appropriate. (Don't touch the rest of the name!) The key under it is called "name". This is the name of the actual executable of the game. Change this as appropriate.. just the name.exe, not the full path or anything. Leave "flags" alone, we want that as is. The final one is "ID". This will change from game to game. Here's where "MostRecentApplication" comes into play; the ID under that key is the ID of the game you just launched. Double click it in the registry, copy, then paste the value into the file, overwriting what's there. (Make sure it still begins with "dword:")

That's it. Save the file, double-click to import into your registry.

If you're on a 32 bit system, you're done. Go play. If 64 bit, you've got one more step to perform. You need to create this exact same key, but also under HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\ as the game is going to be running under 32 bit emulation.

Template.txt

I had no issues with AOE2 on Win7 64bit.

But this above fix will be good to try!

Also work doing is using it in XP-Mode. I've had large success doing this. :)

really? i mean the game worked perfectly normal but was using the wrong pallet which made it look crap (although when i first tried it on windows 7 i had a hard time remembering if the game really looked like that or not :p)

I've had ok results with XP compatibility in one game; most didn't show any difference, at least with the ones I've tried. This would have been ideal of course.

I've tried the kill Explorer trick once or twice, which did seem to work when I did, I just prefer a permanent fix that doesn't require forcibly killing other apps, especially Explorer, which knocks out the start menu too. I may just write a quickie app to create the reg entry automatically for laughs, maybe implement it via the "send to" menu or something. Right click, send to DDraw compatibility mode, done.

Zero experience with Age of Empires; works for me on all the Interplay and Black Isle RPG's, Bomberman, and the old Bioware games so far where XP compatibility mode failed to fix it. All of them are running with proper colors, and no compatibility settings needed otherwise. That was the only reason left for me to keep an XP VM going.. into the recycle bin you go.. XP is officially buried in my house.

  • 2 months later...

I didn't have much luck with the fix posted. You're obviously smarter than I am though, so I'm probably doing something wrong.

Entries Added in Registry for fallout

Key Name: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\Fallout

Class Name: <NO CLASS>

Last Write Time: 10/29/2010 - 7:04 PM

Value 0

Name: Name

Type: REG_SZ

Data: Falloutw.exe

Value 1

Name: Flags

Type: REG_BINARY

Data:

00000000 00 08 00 00 ....

Value 2

Name: ID

Type: REG_DWORD

Data: 0x4a5bcae7

the 64 Bit entry

Key Name: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\Fallout

Class Name: <NO CLASS>

Last Write Time: 10/29/2010 - 7:05 PM

Value 0

Name: Name

Type: REG_SZ

Data: Falloutw.exe

Value 1

Name: Flags

Type: REG_BINARY

Data:

00000000 00 08 00 00 ....

Value 2

Name: ID

Type: REG_DWORD

Data: 0x4a5bcae7

Any help would be appreciated. I could always install a virtual machine I guess...

Also, behold my Thread necromancy.

I read about this fix in a different forum (here) and your method is slightly wrong in a couple of places.

I'll just re-iterate the correct method:

1. Run your game at least once and exit out of it.

2. Go to your registry and navigate to "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\MostRecentApplication" (if you're using 64 bit, go to "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\MostRecentApplication")

3. Take a note of the name, game.exe, and the ID, which looks similar to this: 0x02e41c67

4. Remove the '0x' part of the ID and separate the values into pairs, like this: 02 e4 1c 67

5. Take the pairs and reverse their order, like this: 67 1c e4 02

6. Open notepad and add this:

32 bit only

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\&lt;NameOfGame&gt;]
"Flags"=hex:00,08,00,00
"ID"=hex:00,00,00,00
"Name"="game.exe"

or

64 bit only

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\&lt;NameOfGame&gt;]
"Flags"=hex:00,08,00,00
"ID"=hex:00,00,00,00
"Name"="game.exe"

*Note: Change <NameOfGame> to whatever you want, leave 'Flags' alone, enter your own ID keeping commas intact, and change 'game.exe' to whatever it is.

7. Save it as 'fix.reg' and run it to import it to the registry.

Here's my example from 'The Hell' mod for Diablo:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\The Hell]
"Flags"=hex:00,08,00,00
"ID"=hex:8b,c1,c3,34
"Name"="TH.exe"

I read about this fix in a different forum (here) and your method is slightly wrong in a couple of places.

I'll just re-iterate the correct method:

1. Run your game at least once and exit out of it.

2. Go to your registry and navigate to "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\MostRecentApplication" (if you're using 64 bit, go to "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\MostRecentApplication")

3. Take a note of the name, game.exe, and the ID, which looks similar to this: 0x02e41c67

4. Remove the '0x' part of the ID and separate the values into pairs, like this: 02 e4 1c 67

5. Take the pairs and reverse their order, like this: 67 1c e4 02

6. Open notepad and add this:

32 bit only

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\&lt;NameOfGame&gt;]
"Flags"=hex:00,08,00,00
"ID"=hex:00,00,00,00
"Name"="game.exe"

or

64 bit only

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\&lt;NameOfGame&gt;]
"Flags"=hex:00,08,00,00
"ID"=hex:00,00,00,00
"Name"="game.exe"

*Note: Change <NameOfGame> to whatever you want, leave 'Flags' alone, enter your own ID keeping commas intact, and change 'game.exe' to whatever it is.

7. Save it as 'fix.reg' and run it to import it to the registry.

Here's my example from 'The Hell' mod for Diablo:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\The Hell]
"Flags"=hex:00,08,00,00
"ID"=hex:8b,c1,c3,34
"Name"="TH.exe"

Works fine, thank you and also thanks Jen Smith.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Here's how to watch the Xbox Games Showcase today and what to expect by Pulasthi Ariyasinghe The June games showcase week has been a packed one, with everything from major presentations like Sony and Summer Game Fest to indie-focused reveals coming in almost every day. Now, it's almost time for another big one, with Microsoft bringing its Xbox Games Showcase back later today. This is a double feature too, with a Gears of War E-Day deep dive also being attached to it. For anyone wanting to tune in online, the 2026 Xbox Games Showcase is kicking off at 10 AM PT | 1 PM ET | 6 PM BST | 7 PM CEST later today, June 7. The event will be available to watch on the official Xbox YouTube (4K 60FPS), Twitch, Facebook, Steam, Amazon Live, and other portals. Separate livestreams for American Sign Language and Audio Description will also be available. "This year marks 25 years of XBOX, and this Showcase is poised to be a true celebration, offering world premieres, new gameplay, fresh updates, and more for a swathe of projects we cannot wait to share," said Microsoft about this presentation. With a new CEO behind it that is pulling off some interesting moves, Xbox may have some surprises to reveal today. New looks at first-party games like Halo Campaign Evolved from Halo studios, Fable from Playground Games, InXile Entertainment's Clockwork Revolution, Mojang's Minecraft Dungeons II, and Call of Duty: Modern Warfare 4 from Infinity Ward are to be expected here. We may finally get to see the new Blade from Arcane Studios in action and a new Persona game from Atlus at the showcase too. Surprise announcements may also arrive from other Microsoft-owned studios like Bethesda, MachineGames, Ninja Theory, Obsidian, Rare, World's Edge, or Blizzard. Considering how every new release nowadays is staying away from November and December to avoid Grand Theft Auto VI's release, any launch dates Microsoft announces will probably skip those months as well. Once the Xbox Games Showcase ends, Microsoft will immediately kick off the Gears of War: E-Day Direct. This deep dive into the upcoming prequel from The Coalition should attach gameplay footage and perhaps a release window to the highly anticipated project.
    • People in the '50s and '60s had the same attitude, and we're still here over a half century later.
    • So after some fiddling I was able to get it to run at a pretty stable 30FPS. I'm slightly surprised about how much fiddling I had to do to get there though given what I thought was reasonable hardware: Processors: 16 × AMD Ryzen 7 7840HS w/ Radeon 780M Graphics Memory: 16 GiB of RAM Graphics Processor 1: AMD Radeon 780M Graphics Graphics Processor 2: AMD Radeon RX 7700S I think I could do it better if I use Linux rather than Windows, Windows RAM usage is stupid without stripping the system down. But once I got it working in a reasonable state, it was so awesome! I felt like a new Bond! If anyone has any advice to get things going a bit smoother FPS-wise, I'd appreciate it.
    • Something is rotten in the state of Denmark Australia
  • Recent Achievements

    • Dedicated
      Mark Spruce earned a badge
      Dedicated
    • Collaborator
      conkir earned a badge
      Collaborator
    • Rising Star
      olavinto went up a rank
      Rising Star
    • One Month Later
      lamborghiniv10 earned a badge
      One Month Later
    • Week One Done
      lamborghiniv10 earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      482
    2. 2
      PsYcHoKiLLa
      256
    3. 3
      Steven P.
      74
    4. 4
      +Edouard
      70
    5. 5
      FloatingFatMan
      69
  • Tell a friend

    Love Neowin? Tell a friend!