![]() |
|
28 Jul 2010 | #1 |
|
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 ![]() enjoy |
My System Specs![]() |
. |
|
28 Jul 2010 | #2 |
|
Awesome fix, thanks for contributing Blue Steel!
Walker Windows Outreach Team |
My System Specs![]() |
28 Jul 2010 | #3 |
|
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 Specs![]() |
. |
|
28 Jul 2010 | #4 |
|
Wow that was quick
![]() 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 Specs![]() |
28 Jul 2010 | #5 |
|
Try now, it should distinguish between x64 and x86 Windows 7/Vista OSes and patch accordingly.
|
My System Specs![]() |
29 Jul 2010 | #6 |
|
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 Code:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\StarCraft116] "Flags"=hex:00,08,00,00 "ID"=hex:ca,89,65,49 "Name"="Starcraft.exe" 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 Specs![]() |
02 Aug 2010 | #7 |
|
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 Specs![]() |
. |
02 Aug 2010 | #8 |
|
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 Specs![]() |
09 Aug 2010 | #9 |
|
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 Specs![]() |
10 Aug 2010 | #10 |
|
Nice work guys!
Great stuff! |
My System Specs![]() |
![]() |
Thread Tools | |
Similar help and support threads | ||||
Thread | Forum | |||
palette title bars in paintsop pro I have modified every image in both Windows and Caption Buttons > Aero > Dwm Window and Windows and Caption Buttons > Basic, but can't get these PaintShop Pro palette title bars to change. What do I need to do to modify active and inactive states? Thanks, Ellen |
Themes and Styles | |||
Changing Window's System Color Palette Back To The Default Setting The original system color palette was with white background and black text. As I have difficulty in working with that color combination - my eyes are getting strained - I want to set background color as black and text color as white. When I tried that using the "Personalization -> Windows Color... |
Graphic Cards | |||
How to play 256 color games on W7? Hi, I found an old games only compatible with 95/98/ME, it can only be played in 256 color mode. I have tried setting the option in compability settings, but the screen goes all fuzzy and I quit the game from there. How can fix/play this game?? |
Gaming | |||
Problem with Doom/Palette Games I'll get straight to the point. When I try to run Doom or any game using a palette, I get things similar to this: http://img97.imageshack.us/img97/4655/1002629o.jpg Some times forcing the games to run in 640x480 solved the problem, but it didn't for most. I recently discovered that it might... |
Gaming | |||
Games locking up after 3-15 mins? FIXED I just did a fresh install of RC 7100 (64) on my new system build, and decided to start by testing 4 games: CnC3 - Kane's Wrath, Crysis, HalfLife 2 (+ep 1, 2, and CS:Source), and World of Warcraft. System Specs: -Asus Rampage 2 mobo -i7 920 @ 2.66 on air (overclocking later) -12gigs Corsair... |
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 21:36. |
![]() ![]() |