[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.