Wednesday, July 29, 2009

Solving Color Problem (Red Grass, Purple Water) In Age Of Empires 2: Age Of Kings (The Conquerors And Others Too) On Vista And Windows 7

Changelog

  • Update (30-Jul-2011): A new update for the Palettestealersuspender program is up. This release brings some significant UI changes. The tool now loads and saves settings and hides to the notification area so it can run and monitor games in the background. I've restructured the accompanying blog post to move program instructions to a separate page.
  • Update (24-Apr-2011): A new update for my PaletteStealerSuspender program is up. This release fixes some bugs, and adds the ability to use the program in "batch/console"-mode. The readme contains usage details. The download link below leads you to the latest version.
  • Update (08-Sep-2010): I've added explanation for the new registry method (see comment). Also added a link to Jari Komppa's Ddraw implementation.
  • Update (18-Apr-2010): A new version of the program is up again. This version includes the ability to wait for a game until it is started instead of starting the game itself. This is useful when using launchers or lobby programs like Garena which start the game for you.
  • Update (27-Mar-2010): I've added a new version of the program which fixes the "CD not found"-issue when using patch 1.0c for The Conquerors. Turns out the working directory for the executable should be set to "C:\Install Path\Age Of Empires 2" and not C:\Install Path\Age Of Empires 2\age2_x1".
  • Update (7-Feb-2010): I've added a new version of the program to fix a minor error which caused an exception to appear when starting the game in some rare cases. Download link still below.

Introduction

Recently I wanted to play an old favourite of mine: Age Of Kings: The Conquerors. The game had been running fine all the way from Windows 98 (and NT 4 as well, which was a pain to play games on at the time, but I digress) until Windows Vista. However, with Windows 7 - which I've been running happily for some time now - I stumbled on a roadblock: the colours were all wrong.

This is not an uncommon problem. Many people have had problems when running the game on Vista or Windows 7, this is how you could describe it:
  • Basically, the colors are all off.
  • It's Age Of Empires: Mars Edition.
  • Grass turns red, or green, after playing a few seconds...
  • ...or the water turns purple.
  • Some trees turn red as well.

And this is what it looks like:


The thumbnail doesn't really bring it out, look at this ("zoom, enhance"):

The tree has an ugly red border around it and the grass turns too green (your experience might be worse).

Age Of Kings isn't the only game with this problem. Basically a lot of old Directdraw games suffer from this problem, like the first Age Of Empires, Worms Armageddon, and even Starcraft:


It's not too bad here though, most of the terrain looks okay.

Solutions and methods

There are a few different solutions floating around. Let's list the most common ones. I've also listed how well they work next to each number, so you can quickly scan the list. Newest and best performing methods come last.

Unreliable and/or hard methods

Most methods below are unreliable, or do not work with everyone. Most of them are pretty annoying and/or hard to execute as well. If you want better solutions, just skip this part...

(1 - unreliable) Alt-tab out of the game, and then maximize it again. This worked in XP (and in Vista for some users), and works in some cases in Windows 7. I had no luck with this anymore though. The colors would work for a few seconds, but then changed again.

(2 - unreliable) Change your in-game resolution. Doesn't work in Windows 7 anymore either. After switching resolutions, the colors even became worse. This might work in Vista, but this solution is not really preferred (you want to play on the best resolution possible).

(3 - unreliable) Before starting the game, open a explorer window. My Computer, a random folder, anything works. Surprisingly, this often worked in Vista with most Directdraw games. In Windows 7, not anymore.

(4 - unreliable) Mess around with the compatibility options, especially Run in 256 colors, Disable visual themes, Disable desktop composition, Display display scaling on high DPI settings and Run as administrator. This works for some games/users, but I don't really like this method as it has a lot of drawbacks (desktop windows/icons messed up when you exit etc...).

(5 - mostly reliable but annoying) Close explorer.exe using the Task Manager. This works on both Vista and 7, for most games, but if you're like me, you don't like to close your 5+ open explorer windows. Besides, there's a better solution...
This method has been added to the program (see below). Another way is to create a batch script, if you don't want to use the program:

REM kill explorer.exe
taskkill /f /IM explorer.exe
REM start the game and wait to finish
REM note: /D indicates the starting directory, often the same as your
game's exe
start /WAIT /D "C:\path\to\game.exe" "C:\path\to\game.exe"
REM start explorer.exe again
start explorer.exe

Or, another method:

taskkill /f /IM explorer.exe
"C:\path\to\game.exe"
REM if the game finishes press enter to restart explorer
pause
start explorer.exe

(6 - mostly reliable but annoying) Download a mod or tool for Age Of Kings: The Conquerors to play it in windowed mode. You can get it here. Unzip the archive into your installation folder, and run AoC.eXe. If you want, you can also mess around in the config.xml file to change some options. This is how it looks:


On my large monitor, I actually enjoy playing this way.

There are other mods out there for other games which allow to run them in windowed mode. For Age Of Empires: Rise Of Rome, you can get this mod. Or you can get DxWnd which forces Directdraw (DirectX >=7) games to run in a window. I had no luck with it for The Conquerors however. For Starcraft, there are also some tools floating around to fix the resolution/window/colors. For Worms: Armageddon, CyberShadow is working on a fix for the game (see here), so you might want to keep an eye out for that.

(7 - mostly reliable but annoying) This is the newly found strange "Screen Resolution"-method. Found on this forum recently. This is a weird workaround but seems to work on every game I've tried. Follow these steps exactly: right click on your desktop and pick Screen Resolution. You're not done yet (!), in the Screen Resolution window, click Advanced settings. Another window will open - click the Monitor-tab in that window. You should now be looking at something like this:


Now, leave these windows open, and start the game. The colors should work. Unbelievably weird (I had to pick the Monitor tab for it to work), but it works. If it works for you too, you may stop reading here :).

Newer and/or reliable methods

You'll find the easier, newer and more reliable methods in this section.

(8 - reliable) Download a tool I quickly whipped up to play Directdraw games in fullscreen without them changing colors. This tool will act as a launcher which places itself in your notification area and automatically suspends all applications which are changing the game's colors and will bring them back alive when you close the game. A full explanation and usage instructions for the tool can be found here.

(9 - reliable) Thanks to this comment I found out that Windows 7 actually provides a compatibility hack build in to allow running old DirectDraw games in all their glorious colors. The HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\ registry entry (or HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\ for 64bit Windows) contains entries for some popular games, such as Age Of Empires and Starcraft.

Then why are those games not working right? It turns out that the ID used in the registry entries are very specific to the game version. You can follow along with this blogpost to find out all about this hack.

If you don't want to download procmon to figure out the application ID yourself then you can download a tool by Mudlord here (or mirrored by me here because the original source seems to be down). The source code is included, and looks clean. To use it, open the w7ddpatcher.exe executable, and press Patch to add a DirectDraw application to the registry. After patching, the game should always work with correct colors, and you won't have to use the program every time you want to play the game (unless you change the executable e.g., by updating the game).

      (!): note that this tool might not work with Windows Vista or XP, I've only tested it with Windows 7 myself. If you're using XP, you're probably better off using my tool (see #8 above), since it probably doesn't come with those registry entries. Also, the tool won't work out of the box for Age Of Empires 2 (and other SafeDisc using games), as that game needs an entry for age2_x1.icd instead for age2_x1.exe, as stated on this forum thread. Take a look at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\MostRecentApplication to find out the correct application ID and edit the registry entry manually accordingly.

(10 - reliable for certain games) A few days ago, this writeup from Jari Komppa got my attention. This coding wizzard has programmed a custom ddraw.dll which wraps all DirectDraw calls and redirects them to an OpenGL surface. Tip of the hat to this guy. Download the DirectDraw Hack DLL binary from his site and put it in the same directory as the game executable you're trying to run. It should work for Wing Commander, StarCraft 1, WarCraft 2, Fallout and Fallout 2.

      (!): the DLL alas, does currently (as per last update to this blog post) not work for Age Of Empires 2. So I'm still shamelessly plugging my tool for that game (see #8 above).

Technical explanation

If you're interested in a little background on why this problem is happening, read on.
When I first encountered this problem, I already knew a little about DirectX, the GDI and the Windows API. Basically, back in the day, DirectX (which handles a lot of the graphics and multimedia workload in games and other program) included a component called Directdraw, used for rendering 2D graphics.

PCs back then weren't really powerful. Everything had to be as fast as possible, even color handling. So something which Directdraw did for you was maintaining a palette of 256 colors. Like a painter, programmers could fill this palette with 256 colors they would use: ten greens for grass, 6 blues for water, and so on. Some of these 256 colors are static (but then again, not always) and cannot be changed. If you're interested in the deep and dirty details: this page does a good job explaining it.

Now this is the thing: if you're a fullscreen game, you don't want other programs screwing up the system palette, changing your beautiful chosen colors to ugly greens and reds. And this is what's happening in Windows 7. If you read System Palette and Static Colors on MSDN, it states that "However, because changing the static colors can have an immediate and dramatic effect on all windows on the display, an application should not call SetSystemPaletteUse, unless it has a maximized window and the input focus." Alas, this is not enforced by Windows, and thus explorer.exe (which comes from Microsoft mind you) and other programs will happily call SetSystemPaletteUse and mess the poor fullscreen DirectDraw game up.

I googled a bit around to see if I could find any clues. This message at Stackoverflow describes the same problem. This message is actually posted by the maintainers of Worms: Armageddon. No-one provided an answer though. I opened up Visual Studio (which was still installed) to quickly throw something together in VB.NET to intercept the WM_SYSCOLORCHANGE, WM_PALETTECHANGED, WM_PALETTEISCHANGING and WM_QUERYNEWPALETTE messages and look at where they're coming from. Basically, three processes are fighting:

CHANGING from (0)
CHANGED from Age of Empires II Expansion (135458)
Device context: 16847861
Process: 4508: age2_x1
Got 256 palette size scr
[...]
CHANGED from GDI+ Window (917744)
Device context: 184626156
Process: 2452: explorer
Got 256 palette size scr
CHANGED from (65552)
Device context: 1744905863
Process: 540: csrss
Got 256 palette size scr
[...]


The game itself, explorer.exe, and csrss.exe.

I then wanted to make a program which would change the palette back every time an outside process tried to change it. A had a whole list of functions loaded and code written, but it just didn't work out and turned out to be too difficult. Also, I was beginning to suspect that this method could work, but would still result in flickering while changing palettes. I was browsing around at the Worms Armageddon forums, and found out that somebody wrote a DLL with source code for this problem. The code was written in Delphi and easy enough to read: grab a process, find every thread, and send the suspend message to every thread. I converted this code to VB.NET and slapped it on a form which would grab every WM_PALETTECHANGED message to update its list of processes.

Note that there is actually also a lesser known way to suspend a process with one API call, without iterating all the threads, which is used in the PsSuspend- and Process Explorer tools made by SysInternals:

_
Public Shared Function NtSuspendProcess(ByVal ProcessHandle As IntPtr) As Integer
End Function
_
Public Shared Function NtResumeProcess(ByVal ProcessHandle As IntPtr) As Integer
End Function


The full source code for my PalettestealerSuspender program can be found on this page on my blog. Consider it a reward for reading all the way to the end.

119 comments :

  1. Thanks very much for this informative post. It brings some clarity into what seemed to be a random annoyance.

    Unfortunately your program doesn't seem to work for me. I'm running Windows 7 RC x86 build 7100 and although the program loads I get an "unhandled exception" error when I try to play a game. Running your program as administrator gets me into the game but doesn't fix the colours and I have an "unhandled exception" error waiting for me in the background. I can send you the error dump if you wish.

    ReplyDelete
  2. Brian,

    Thanks for reporting this error. I would gladly take a look at it. Send the dump to macuyiko[at]gmail[dot]com

    ReplyDelete
  3. Brian (Not the same as above)August 15, 2009 11:27 AM

    Works on Windows 7 RTM build 7600. I dont know how to combine this with IGZones.com (multiplayer replacement for AoE2). But thanks anyway!

    ReplyDelete
  4. THANK YOU! the closing explorer.exe did the trick for me

    ReplyDelete
  5. AWESOME!!! I have been searching thruout the internets for a way to make AOE2 windowed.

    Now, thanks to you, I have it!

    You rock!

    ReplyDelete
  6. Im using windows xp, and i notice the graphic problems ONLY happens at exact hour, i mean, when i got that graphic issue, not only in AOE2 but in other 2D game, i tab out and the windows clock its at zero minutes, like this last time, it was at 23:00, and im sure the next situation will happen at 24:00.

    Thx for all this well explained tips.

    ReplyDelete
  7. Thanks man, that leaving the windows open trick worked. Thanks bud.

    ReplyDelete
  8. I love you, man. Will you (or, failing you, the program) marry me?

    ReplyDelete
  9. Thanks for very helpful information

    ReplyDelete
  10. Using Vista 64 and Recommended option and I still get the color change. Once I didn't get the color change but I locked up about 20 min into the game. Noticed that my USB keyboard lights went out. Sad that this game does this. My friends and I still play it multiplayer. Or at least we did...

    ReplyDelete
  11. I can't seem to get the windowed version to work, where exactly does it have to be. I just get an error message just before the game starts every time.

    ReplyDelete
  12. The archive needs to be extracted so that aoc.exe is in the same location as age2_x1.exe.

    ReplyDelete
  13. That's where I had the files placed, yet I get the same error message saying "An error occured while trying to start the game.". I don't know if you have any idea why this is happening.

    ReplyDelete
  14. Not really. What happens when you extract the contents of the archive to the same location as empires2.EXE and try to run it from there? It appears that this does make a difference for my installation.

    ReplyDelete
  15. what about installing mod packs from MPS to the game. MPS won't install..can that be fix ??

    ReplyDelete
  16. Ah!!! i need help!!
    it plays as windowed mode
    but when i try to start a game, any game
    it says "An error occured while trying to start the game"
    please help!!
    i just clicked and dragged the items onto the main folder

    ReplyDelete
  17. @Anonymous: I've never used MPS so I wouldn't know about that, sorry :).

    @Anonymous: players who're getting errors with the windowed mode: which version are you using? Dragging to the main folder (same location as empires2.exe) should work, and does work here with Conquerors 1.0c. It might not work with other versions (e.g. unofficial 1.0e)...

    ReplyDelete
  18. When I try to start the age of empires with the tool, it gives me an error saying 'Please insert the correct CD-ROM'. Im usiing Windows 7 32 bit Professional release verions

    ReplyDelete
  19. When trying to run AOC 1.0c, I receive the same error of "Please insert the correct CD-ROM". I'm using Windows 7 Ultimate 64 bit.

    ReplyDelete
  20. @Anonymous and @Anonymous above me: Thanks for reporting this problem! I've checked by digging up my original CD and using patch 1.0c.

    The problem lies in the fact that the working directory should not be set to the same path as the executable, but to the path of empires2.exe. The new version of the program handles this automatically for The Conquerors and should work now.

    ReplyDelete
  21. Thanks man.

    That tool works very well.

    But I have a question.

    I'm using Garena to play multi player game.

    How could I get the effect on Garena?

    There's just a "game boot parameter".

    Would you let me know??

    ReplyDelete
  22. @Anonymous and others using Garena, lobby programs, launchers and mod packs which launch the executable for you:

    I've uploaded a new version of the program which include a new feature to help you out. First of all, start the program, then Browse to the game executable (which we're going to start now with another program).

    Then press "Watch Game" instead of "Start Game". The program will now wait until the game is started. Now go to your launcher/lobby/whatever program and start the game from there. Once the game is launched the Suspender will activate itself and suspend all the process. It will then wait until you exit the game.

    ReplyDelete
  23. ... since this is still a new feature, please let me know if this works.

    ReplyDelete
  24. WOW WOW WOW!!

    Thank you for answering quickly.

    AND

    IT WORKS!!!


    I don't know how to appreciate you!!!

    Thank you very much!

    ReplyDelete
  25. I have been using your program for a while, the last version and 3.0, and I think that the program might delete the explorer.exe over time because I had to reinstall the game three times.

    ReplyDelete
  26. Please dis regard the previous comment, I figured out what I was doing wrong.

    ReplyDelete
  27. Thanks so much for all of your work doing this! I think the future will be virtualizing whatever platform the game was designed for, but even at this point AOE2 doesn't play in my virtualized XP on my my linux machine, but this lets me play it on a Win7 machine.

    Thanks so much! I've spent alot of my life investigating even more inane things!!

    ReplyDelete
  28. Hello, your program does quite well when playing Age of Empires, it works wonders if I use the 3rd option, but, it does not have any effect when I play Star Wars Galactic Battlegrounds (being more accurate, the expansion pack). If I pick the 4th option (kill the process), "kills" explorer.exe, but it stats again before the game loads.

    My OS is Windows 7 Pro, if you need more specific info, please let me know.

    Regards.

    ReplyDelete
  29. Found what happened, I was opening a launcher instead the actual game. Thanks for the program!

    ReplyDelete
  30. Hi, just wanted to say thanks for this - I was having the colours problem with Fallout 2, purchased from gog.com. Your tool is the only fix that works, and now I can enjoy this awesome game again!

    Maybe you should contact gog and see if they'd pay you some money for your tool, since a LOT of people on there are having the same problem.

    ReplyDelete
  31. Cheers, useful info to have and a good explanation of the technical background to it.

    It's mad explorer.exe is allowed to get away with this theft, especially as the problem has been present in the last 3 desktop Windows editions in some form. Good workaround.

    ReplyDelete
  32. I tried everything till I found this.It works a treat.Thank you so much

    ReplyDelete
  33. Applications like this aren't required anymore.

    mudlord.hcs64.com/code/w7ddpatcher.zip

    Run that
    start game

    game and app will terminate automatically.
    Start the game again and colours will work fine Permanently.

    doesn't do a thing about the freeze though unfortunately, nobody knows the exact cause of it.

    ReplyDelete
  34. what it does is grab the ddraw app id, and apply a ddraw compatibility fix in the [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility or [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility sections.

    ReplyDelete
  35. Hallelujah, i tested it with Warcraft 2 BNE (had this color bug) and it works perfectly.
    Thanks to the great mind who made up this programm ^^

    ReplyDelete
  36. you're program runs fine so far! Thank you!

    ReplyDelete
  37. This tool works perfectly for my laptop:
    Compal (Sager) FL90 w/ Nvidia M8600GT 512Mb video, Intel Core2 Duo, 4Gb, Win7 x64. The red in the grass was much more pronounced than what you have in your sample images above, but your little program worked to get AOEx1 Conquerors back to normal. Thanks!

    ReplyDelete
  38. i'm having a problem with number 9, i did the patch and it fixed my color but now i can't load old saved games or save new ones. why?

    ReplyDelete
  39. For the above poster, for some reason (depending on what game you're playing) if you run a game but run it as an administrator then you may not have access to some of your previous saved games, if you first started playing the game without running it as an administrator. Not sure why it is but its happened for a few of my older games when I do that, probably has to do with Windows 7.

    ReplyDelete
  40. Thanks man!! Your program worked for me on Windows 7.

    ReplyDelete
  41. Thank you, now I can finally play Fallout 2 again! You have no idea how many things I've tried before I found your blog!

    ReplyDelete
  42. The application above is brilliant. Thanks!

    ReplyDelete
  43. Great article! So well laid out and researched, you present the information in a very compact and easy to read way.

    Thank you for your time!

    ReplyDelete
  44. YES, fallout 1 Works windowas 7!!!
    You are AWESOME!!

    ReplyDelete
  45. http://www.4shared.com/file/xeIljXSm/DirectDraw_Compatibility_Tool_.html

    too bad none of these fix the freezing and system lock issues

    ReplyDelete
  46. Thanks for the effort man!!

    The tool works on Conquerors (AOC) on a newly booted w7pro - however, exiting the program and running AOC again makes it "lockup" with a black screen and the only way to get "back" is to hard-reset the PC. I had the same problem using the .bat file thats circulating (the one using kill task explorer).

    ReplyDelete
  47. @Anonymous: the first time after you exit the game, are you able to use your computer normally? Meaning that it is only after starting the game for a second time that you get the lockout?

    ReplyDelete
  48. That is correct. I use your util, start the game, all is fine, I exit the game, all is still fine, but when I try to launch the game a second time it will "hang" as mentioned above.

    ReplyDelete
  49. @Anonymous: interesting. If you're willing to contact me by e-mail (macuyiko@gmail.com), I'll send you a debug version this weekend which will create a log file to help me track down to problem.

    ReplyDelete
  50. Sure no problem. Email sent.

    ReplyDelete
  51. I'm sorry (happy?) but I'm having difficulty reproducing the problem. For some reason its not locking up any more... If I'm able to reproduce the problem I'll e-mail you the log.

    ReplyDelete
  52. No worries, I'm happier to see problems disappear rather than to encounter new ones :).

    ReplyDelete
  53. I have a feeling the problem went away after patching with the mudlord-thingy...not sure tho..

    ReplyDelete
  54. Nice Work man !

    ReplyDelete
  55. Quick question

    I'm using Method 6 and the game works perfectly in windowed mode however I can't re-size the window and nothing I've tried in the config file lets me change the window size.
    Do you know how to change the size of the window even if it's just to 1280*1024?

    ReplyDelete
  56. @Anonymous

    Correct, the config does not allow you to change the window size. Using the in game options menu however should allow you to change your resolution (800x600, 1024x768 and 1280x1024). The window should resize by itself to the new size.

    ReplyDelete
  57. my screen keeps scrolling diagonally right up!!!
    arrows dont work!
    Help!
    AOE 2 age of kings

    ReplyDelete
  58. Thank you so much for the programe, exactly what I was looking for!

    ReplyDelete
  59. fantastic work.well,thanks for these instructions.it will very helpful to us.it was nice post.i liked it.

    ReplyDelete
  60. Hi!
    The 8. method works fine with Age of Empires 2 and Star Wars Galactic Battlegrouns. Thanks man! :)

    ReplyDelete
  61. The PalettestealerSuspender program you made works perfectly. Previously I had used the registry solution which worked 95% of the time but yours works perfectly.

    However, I have a few suggestions to make it more gamer friendly.

    1) Could the program be expanded to run 24/7 in the system tray?
    2) For the above to work better, one should be able to add game executables to a list for the program to constantly watch for when in the system tray.

    Assuming of course, the program doesn't take up much resources. Doesn't seem like it has so far.

    ReplyDelete
  62. Above guy here.

    If you don't have time or interest to expand it anymore, could the source be released so that others can do it?

    ReplyDelete
  63. @Anonymous above: Interesting suggestion. I like the systray and game watchlist idea, but this would mean that the program would have to save and load this list somewhere, together perhaps with the list of offending processes to suspend. This'll require some changes to the user interface as well, to combine the current "one-shot" gui mode, console mode and systray mode together in a coherent whole. I'll think about a good way to do this and post an update when a new version is online.

    As for the source code, a link to the source is already made available in this blog post.

    ReplyDelete
  64. I'm having a problem it seems with Conquerors. I installed the game and tried running it, it stopped responding every time. I installed 1.0c and was getting the "Please insert the correct CD" issue. Found this site and downloaded the Palettestealer program. It shows as -
    Game:
    C:\Program Files (x86)\Microsoft Games\Age of Empires II\age2_x1\age2_x1.exe
    Start in:
    C:\Program Files (x86)\Microsoft Games\Age of Empires II
    But it still keeps on asking for the CD.
    Any ideas? :)

    ReplyDelete
  65. I can't believe this problem is solvable! you are a genius.

    could you explain what is causing this problem?

    ReplyDelete
  66. Huge thanks for the program you made. I've been fiddling around with Fallout for about 3 hours trying to get it fully working, and this has sorted it out straight away.

    Thanks again!

    ReplyDelete
  67. Thanks, method 8 worked for me

    ReplyDelete
  68. Thanks for this most informative post. I've been trying to solve the color problem in Fallout for more time than I'd like to admit, and solution number 10 worked perfectly. Thanks again to you for posting and to the hacking pro who modified ddraw.dll!

    ReplyDelete
  69. Amazing, simply amazing. nothing worked, then a simple download and patch and it's perfect

    ReplyDelete
  70. I have another problem, however. Sometimes, when i go to reopen the game, it doesn't open to the game I had last saved, but an even more previous game I have already finished. I haven't tried method 8. Does method 8 fix that problem?

    ReplyDelete
  71. Thankyou so much for the palettestealersuspender - finally I can enjoy Fallout (for the first time, I'm very late to the game lol)

    Much respect.

    ReplyDelete
  72. Thanks Alot thats really informative stuff.
    by the way i have some problem with rise of nations too on windows 7.

    ReplyDelete
  73. Thank you so much! I've been looking all week to fix this problem! :)

    ReplyDelete
  74. HI, sorry i just tried to run Star wars battlegorunds saga, and tried the program form stept 8 but it doenst seeems to work.... i first thought of using stepp 9 but my computer knowledge is to low im afraid. really sorry to bother but could anyone make an step by step description of NR 9

    ReplyDelete
  75. @Anonymous

    1) Download and extract http://static.macuyiko.com/files/w7ddpatcher/w7ddpatcher.zip
    2) Run "w7ddpatcher.exe"
    3) Press "Patch" and pick the game's executable (found in the game's installation directory)
    4) Start/play the game as normal, the colors should look fine

    ReplyDelete
  76. Thanks for answering so fast! and thanks for your post is really the best ive found realted to this problem. and just a little tipp for the ones that install Star wars galactic battlegrounds saga... you have to patch both executables in the game folder( for the normal and expansion) then it all works wonderfull!! thanks a lottt!!!!!!

    ReplyDelete
  77. Macu, sorry to bother with this but my computer just crashed i patched with the program a total of 3 executables from the game .... it worked fine yesterday and today i tried to start my computer but it got stuck. i Runned starupfix program form windows and after an hour it said it couldnt fix it. Right now im running my computer in safe modus but ive no idea what can i do would oyu have an idea on how to undo the patches ? perhaps thatll fix my problem :S

    ReplyDelete
  78. o i have a windows 7 home premium

    ReplyDelete
  79. I'd bet your problem is not related to the patches. You would fare better by uninstalling recent drivers, programs, performing a virus scan, and chkdsk-ing your drive.

    Still, undoing the patches can be done as follows:
    1) Boot in safe mode
    2) Start -> run "regedit"
    3) Navigate to
    - for 32 bit (probably your case):
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\Compatibility\
    - for 64 bit:
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility\
    4) You will see directories corresponding with the game, right click those and press "Delete" (make sure to only delete the folders corresponding to the Star Wars games)
    5) Close and restart

    ReplyDelete
  80. hey, i agree with you i doubt its a patchs problem hmmmm i desinstalled alreday the game (the only program recent installed) i belive i havent installed an new drivers but i cant semm to be able to run my antivirus :S thanks for the info do, first on ill try to see if i can run the antivirus !

    ReplyDelete
  81. well i tried undoing the patches but there werent ther i guess they were just erased wenn i uninstalled the game OO but still my computer is f* up :S my best guess is that its a virus that came with the game but i cant run the antivirus T___T macu do you have any suggestion of what i could try ? im desperate here T___T

    ReplyDelete
  82. No, sorry, this is an unrelated problem which could be caused by many factors. Other than a virus, it could also be that one of your drives is failing...

    Try scheduling a checkdisk by running the following in a command line (in safe mode):

    chkdsk c: /f /r

    This will ask if you want to schedule a drive check next time you restart, press yes and restart and let the check do its work.

    Maybe a reinstall of Windows is in order...

    ReplyDelete
  83. Ty ill try it, btw i can only use safe mode :S cant start it normally. And yup im trying to get an external drive to save at least my privat data it looks ill have to format my computer OO

    ReplyDelete
  84. sorry quick question in order to reinstall windows you have to erase all of your data right?

    ReplyDelete
  85. I have a slight problem. I have a Toshiba laptop with Windows Vista x64 bit, and whenever I'm done playing Age of Empires 2: The Conquerors my computer locks up in a black screen and does nothing until I hold the power button down to force shut down. Help me please? And thanks for the help.

    ReplyDelete
  86. Oh, and I need to clarify: I used your program, the one you made yourself. It worked fine the first 2 times I started the game, but then it locks up. :C

    ReplyDelete
  87. @ Anonymous (and everyone who's trying to solve the black screen problem after quit AOE)

    You don't need to hold the power button but CTRL+SHIFT+ESC to load the Task Manager. Find the palette suspender-related stuff and close it. You may have to close both exes to get back the desktop (explorer.exe).

    If anyone knows a better solution to solve this issue let us know.

    ReplyDelete
  88. An Awesome article!!!!

    Those pictorial representation helped me a lot in the troubleshooting phase.

    Thanks Guys!!!!

    ReplyDelete
  89. I use XP, and I have Same Problem..
    which one the trick i have to use for AOE 2 : Age Of King ?

    ReplyDelete
  90. Thanks a lot!!!

    Method #9 is obviously the BEST solution for several games of the "ancient time"...

    ReplyDelete
  91. #7 Works! Thanks a lot! It really is a weird solution haha

    ReplyDelete
  92. Thank you so much for the tool, it works amazingly simple.

    ReplyDelete
  93. Go into task manager select the processes tab and end explorer.exe then alt-tab back into age of empires
    Note: this will make your task bar disapear and any open folders
    To restart explorer open the task manager agian in the aplications tab hit new task and type explorer in the box
    The colours change because of the Aero theme's poor handling of colours


    Edit:
    You can also make a batch file with the following lines and place it in the same location as your age of empires 2 executable

    taskkill /F /IM Explorer.exe
    age2_x1.exe
    Start explorer.exe
    -------------------------------------------------------------------------------

    1.Download directdrawfix at http://www.xomicron.com/software/directdrawfix/
    2.Run DirectDrawFix.exe as administrator
    3.Browse the age of Kings Executable to fix. Most likely it would be C:\Program Files\Microsoft Games\Age of Empires II\empires2.exe and press apply
    4.Now browse the conquerors Executable to fix. Most likely it would be in C:\Program Files\Microsoft Games\Age of Empires II\age2_x1\age2_x1.exe and press apply

    By then you can run age of empires without color issues. By the way You won't need to create any batch files at all. It was an old concept until Xomicron the good company decided to fix.
    -------------------------------------------------------------------------------
    NOTE: The tools quit working for me for some reason. A Windows Update maybe???

    ReplyDelete
  94. Nice advice! But here's a faster way.
    http://j.gs/1249116/age-ii-bug-fix

    ReplyDelete
  95. Method 7 with the monitor tab method worked for me.

    Fixed star wars galactic battleground.

    Great compilation, many thanks!

    P.s: I still don't understand what kind of sorcery is that, but if it works!

    ReplyDelete
  96. 8=win
    just unzip start and tell it what games you play and it will turn Mars green

    ReplyDelete
  97. Is there any way for someone (like me) who has no technical knowledge, to accomplish the fix? Thank you for any help.

    ReplyDelete
  98. Just great!!! Back to the glorious days of Age of Empires!!! Solution 9 worked for me!

    ReplyDelete
  99. i don't know too much on how to download programs and files on my computer but somehow i was able to get number 8 from above to work thanks alot

    ReplyDelete
  100. You are a GOD among men sir!!!
    I've been trying to play Sanitarium without graphic glitches, and your palette suspender worked PERFECTLY.

    THANKS AGAIN!

    ReplyDelete
  101. Removing the "explorer.exe" in task manager worked a charm for me!

    Except it removes the task bar, and i have to re-do the function to see it again...

    How do you tell the PC to close "explorer.exe" automatically when you start the game, and re-open it when you exit? As you mentioned above:

    REM kill explorer.exe
    taskkill /f /IM explorer.exe
    REM start the game and wait to finish
    REM note: /D indicates the starting directory, often the same as your
    game's exe
    start /WAIT /D "C:\path\to\game.exe" "C:\path\to\game.exe"
    REM start explorer.exe again
    start explorer.exe

    Where do you but this command????

    ReplyDelete
  102. @Anonymous: copy/paste the commands in notepad and save as a ".bat"-file (*not* ".txt"), e.g.: "startgame.bat". Double clicking the .bat file will then start the game and restart explorer.exe.

    Make sure you edit "C:\path\to\game.exe".

    ReplyDelete
  103. Wow!
    Absolutely insane but i got Monkey Island 3 to work in the right colours by just leaving the advanced settings of screen resolution open.
    I have no idea why it works but you are totally brilliant!

    Thanx

    ReplyDelete
  104. Wow, finally got a fix for Master of Orion 2 that doesn't involved killing explorer. w7ddpatcher.exe worked perfectly.

    ReplyDelete
  105. Friend, thank you!
    Congratulations, your program has saved my AoE. Brazilian greetings.
    Hug!

    ReplyDelete
  106. Hey, Im trying to get the Palettestealer to work for Age of Kings, The Conquerors. However, I want to use the widescreen fix provided by someone else (another genius ;-)) This fix comes with a .BAT file looking like this:

    @echo off
    ECHO Using process.exe to suspend explorer.exe (win7, vista palette fix)
    "C:\Program Files (x86)\Microsoft Games\Age of Empires II\AoE2Wide\Process.exe" -s explorer.exe
    ECHO Starting Age of Empires II - The Conquerers in the correct screen mode
    "age2_x1_1.0c_1920x1080.exe" 1280
    ECHO Resuming explorer (was suspended before)
    "C:\Program Files (x86)\Microsoft Games\Age of Empires II\AoE2Wide\Process.exe" -r explorer.exe

    So, in effort to be able to play multiplayer AND widescreen, I thought of this:

    - Rename "age2_x1_1.0c_1920x1080.exe" to age2_x1 and place in original directory, replaceing original exe.
    - Use Palettestealer instead of process.exe -s / -r to suspend explorer.exe.

    This way, Gameranger should start the widescreen version, and your tool should be able to suspend palettestealers. However, I can't get it to work :( May the issue be, that you don't pass parameters to the exe? Because, I tried the "NOSTARTUP" and I still get the intro screens.

    Any help much appreciated! :)

    Cheers,

    ReplyDelete
  107. I've tried all of these... unfortunately my Age of Empires 1 still does not display correctly :(
    when using your tool, the only difference it made was on the start menu the game didn't have faulty colours.. but as soon as I go to single player, I can't see a thing the colour is so bad :(

    ReplyDelete
  108. Regarding solution #9 for Age of Empires 2 Conquerors:

    There is a Version distributed by Ubisoft as 1 DVD with AoE 1 and 2 with Expansion on it.

    The following post seems to provide the registry keys with the right ID values:

    http://www.sevenforums.com/gaming/100379-how-i-fixed-corrupt-color-palette-some-old-games-windows-7-a-3.html#post2233986

    Insert the Registry code mentioned there into a .reg file and import it to the registry. However, keep in mind that this is only for the Ubisoft version. For any other version the ID values may be different! (rest should be the same though)

    As far as i can see this is intended to work on both 32 and 64 bit (i successfully tried with 64 bit) but for 32 bit i would skip the registry values which are intended for 64 bit.

    ReplyDelete
  109. All of that is very complicated,,,
    This is the simple thinks if you want to playing AOE2 in Windows 7..
    in the main menu click option, and then change the graphic detail to medium..
    It's Solved for Me...

    ReplyDelete
  110. Thanks !
    killing explorer.exe worked for me on windows 7.
    Will be trying out solution#8 for easier workaround.
    More thanks for explaining in detail the technical bits as well for the curious.

    ReplyDelete
  111. I don't even know what Windows I'm using, safe to say I'm better off with the green grass outside

    ReplyDelete
  112. Thanks a lot, it worked charmfully to fix AoE II.
    Cheers.

    ReplyDelete
  113. Well hello gys,
    Im happy to inform you that you wont be struggling anymore to get AoeII to work properly.Hidden path entertainment has remastered the whole game in HD and made it working in modern systems!It is available on steam by now..It's has the good old multiplayer and this time its easier than before and you can play private matches as well with steam.Amazing work..Happy playing everyone! :)
    http://www.hiddenpath.com/games/age-of-empires-ii-hd-edition/

    ReplyDelete
  114. I fixed the purple water and red grass in Age of Empires II in Windows 7 by doing the following:

    1. Right click on the desktop, and left-click on Personalize
    2. Under Basic and High Contrast Themes, left-click on Windows Classic
    3. Close the window.

    In other words, I think it's the "glass Aero" borders around windows that cause the problem.

    Another thing that might work is to right-click on the AoE icon, and choose Properties. Under Compatibility, check "Disable desktop composition".

    ReplyDelete
    Replies
    1. Another, unrelated bug in the game is that sometimes the background music won't play at all.

      The CD has to be in the alphabetically first CD/DVD drive for music to play (e.g. E: drive won't play the music if you also have a DVD-ROM drive called D:).

      Delete
    2. Palette stealer Suspender Works Great.. Thx

      Delete
  115. I dl the palette stealer which was working great for about 20 mins and then got black screen and then total shut down I can't restart my comp or try to reboot it as it shuts down again....help

    ReplyDelete