Windows 7 Forums
Welcome to Windows 7 Forums. Our forum is dedicated to helping you find support and solutions for any problems regarding your Windows 7 PC be it Dell, HP, Acer, Asus or a custom build. We also provide an extensive Windows 7 tutorial section that covers a wide range of tips and tricks.


Windows 7: How I fixed corrupt color palette on some old games on Windows 7


28 Jul 2010   #1

Windows 7 Ultimate X86
 
 
How I fixed corrupt color palette on some old games on Windows 7

Remember: Backup your registory prior to making any changes to it - Safety First

Step 1: Download / install and run Procmon.exe

Step 2: Run game with all default compatability settings ( eg: none except maybe "run as admin"

Step 3: Alt Tab out of game to Procmon window

Step 4: setup a filter on Procmon -> Path : to "DirectDraw\MostRecentApplication" set as include

Step 5: all going well it should show some entries relating to your game

Step 6: Look at the ID (it'll show up as a DWORD.) you'll need to convert this to a hex value

Step 7: open up regedit.exe and go to section "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\"

Step 8: Make a new Key in there naming it to something that resembles the game your running

Step 9: make a new Binary value and name it "Flags"

Step 10: double click on that newly created field and type in the Hex values " 00 08 00 00"(it will add in the spaces for you) then press enter

EDITED Step 11: make a new DWORD value and name it "ID"

EDITED Step 12: double click on that newly created field and type in the values you've converted DWORD value as DECIMAL then press enter

Step 13: make a new string value entry named "Name"

Step 14: double click on that newly created field and type in the text from Procmon as displayed for the Name of the program

Step 15: export the entries that you've just made as a backup for future use (eg: on a rebuild of your computer or something)

Below are samples of games that had corrupted palletes that are now showing correct on my computer, eg:Age Of Empires, Age Of Empires Expansion, Age of Empires 2, Age of empires 2:Conquerers, StarCraft.


EDITED CODE BELOW TO ADD SOME MORE ENTRIES AS I'VE FOUND THAT THE AUTOMATED METHOD STILL DIDN'T WORK AFTER HAVING TO REBUILD MY SYSTEM. i'VE REVERTED BACK TO MY OLD MANUAL METHOD

Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\AGE2_X1.ICD]
"Name"="AGE2_X1.ICD"
"Flags"=hex:00,08,00,00
"ID"=dword:3b7433ec

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\EMPIRES2.ICD]
"Flags"=hex:00,08,00,00
"ID"=hex:df,d1,81,39
"Name"="EMPIRES2.ICD"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\aoe2_x1]
"Flags"=hex:00,08,00,00
"ID"=hex:ec,33,74,3b
"Name"="age2_x1.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\StarCraft116]
"Flags"=hex:00,08,00,00
"ID"=hex:ca,89,65,49
"Name"="Starcraft.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\EMPIRES.EXE]
"Name"="EMPIRES.EXE"
"Flags"=hex:00,08,00,00
"ID"=dword:353f8679

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\EMPIRESX.EXE]
"Name"="EMPIRESX.EXE"
"Flags"=hex:00,08,00,00
"ID"=dword:35ec85c2
AFTER ORIGINALLY POSTING THE MESSAGE I'VE FOUND OUT THAT IT WORKS EVEN IF YOU ENTER THE ENTRY IN STEP 12 AS A DECIMAL dword AS OPPOSED TO A HEX VALUE .. THUS MAKING IT EASIER TO FOLLOW AND DO (NOTE i HAVN'T CHANGED THE OLD HEX VALIES IN THE CODE AS THEY TOO WORK ..

enjoy


My System SpecsSystem Spec
.

28 Jul 2010   #2

Windows 7 Home Premium (64-bit) *** Windows XP SP3 (32-bit), OSX 10.6
 
 

Awesome fix, thanks for contributing Blue Steel!

Walker
Windows Outreach Team
My System SpecsSystem Spec
28 Jul 2010   #3

Windows 7 Ultimate x64
 
 

Automated solution:

http://mudlord.hcs64.com/code/w7ddpatcher.zip

1) Run the patcher on the game you want to fix.
2) Enjoy.

Note: Source included for people who want to see how it works. Works on both x86 and x64 OSes.
My System SpecsSystem Spec
.


28 Jul 2010   #4

Windows 7 Ultimate X86
 
 

Wow that was quick thanks mudlord

I know you said its for x64 only but i'd appreciate it if you could change it see what OS (ie: x86 or 64bit) is being used and then have it apply according to the OS your running this great patcher.

I know a little C Code and can see what its doing but i don't know enough to add in a feature like this..

OR

If you could just have 2 buttons patch x86 and patch 64Bit.

either way would work.. i know that the first way IS possible just don't know how to do it. and I'd prefer it done that way if possible
My System SpecsSystem Spec
28 Jul 2010   #5

Windows 7 Ultimate x64
 
 

Try now, it should distinguish between x64 and x86 Windows 7/Vista OSes and patch accordingly.
My System SpecsSystem Spec
29 Jul 2010   #6

Windows 7 Ultimate X86
 
 

sorry your patch program is coming up with incorrect info..

i just ran it on starcraft.exe ( starcraft 1 no expansion installed)

here is your generated code
Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\StarCraftDemo]
"Name"="Starcraft.EXE"
"ID"=hex:6b,56,91,35
"Flags"=hex:00,08,00,00
here is the correct code
Code:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\StarCraft116]
"Flags"=hex:00,08,00,00
"ID"=hex:ca,89,65,49
"Name"="Starcraft.exe"
as you can see your patcher is getting the wrong flags for this game

BTW thank you for trying to get this working
it'll certianly make things easier than all the steps i'be posted

edit: added

I just ran it again on the same executable and got a totaly different result yet again
Code:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\SWarClass]
"Name"="StarCraft.exe"
"ID"=hex:71,a2,eb,4a
"Flags"=hex:00,08,00,00
My System SpecsSystem Spec
02 Aug 2010   #7

Windows 7 Ultimate x64
 
 

Its fine, delete the old entries, and leave SWarClass.

As you see in the source, I use the window class ID to generate the registry entry name. The key is actually not worrying about precise subkey names. I just used the window class ID as thats a easy identifier. I could make it the process ID, if people want though for consistancy.
My System SpecsSystem Spec
02 Aug 2010   #8

Windows 7 Ultimate X86
 
 

I'd prefer seeing it and having it generate the same values for the same game every time.. to me its very disconcerting and seems dirty having the patcher come up with different entries for the same game. getting it to use consistant keys and names etc.. would also make it easier to check for and get rid of duplicates. (you could even get your patcher to check then too .. then have it prompt wither to replace / update / delete (delete is for in case the patcher doesn't fix the problem) etc...

PS: sorry to be so picky
My System SpecsSystem Spec
09 Aug 2010   #9

Windows 7 Ultimate x64
 
 

You certainly don't ask for much, do you?

It can't get the keys already there, thats not happening. Application class IDs don't change when updates are made, so its best to just reapply on updates.
My System SpecsSystem Spec
10 Aug 2010   #10

Windows 7 Ultimate x64
 
 

Nice work guys!
Great stuff!
My System SpecsSystem Spec
Reply

 How I fixed corrupt color palette on some old games on Windows 7




Thread Tools



Similar help and support threads for2: How I fixed corrupt color palette on some old games on Windows 7
Thread Forum
Changing Window's System Color Palette Back To The Default Setting Graphic Cards
Hi users -please post when your problem is fixed (or even not fixed) Chillout Room
How to play 256 color games on W7? Gaming
fixed BSOD isn't fixed :( BSOD Help and Support
Nvidia color control vs Windows color control settings? General Discussion
Problem with Doom/Palette Games Gaming
Games locking up after 3-15 mins? FIXED Gaming

Our Sites

Site Links

About Us

Find Us

Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd

All times are GMT -5. The time now is 08:52 PM.
Twitter Facebook Google+



Windows 7 Forums

Seven Forums Android App Seven Forums IOS App
  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33