Rainbow color problems in older games (Windows Vista/7 issues)
Some Windows (XP rare cases), Vista and 7 have compatibility issues with DirectDraw using 256 color depth resulting in incorrect colors. This color issue does not occur on Windows 8 and later; the steps below only apply to earlier versions.
This issue appears to be caused by Explorer.exe resetting the system palette, essentially overwriting the palette defined by the game (hence the rainbow colors). This is evidenced by how taking a screenshot of an affected game will show just the discoloration with black where the other game assets would be rendered and by the fix itself.
A more technical explanation: These games rely on DirectDraw, an API in DirectX which was used to render graphics which is now deprecated. More specifically, they used an exclusive palette, where they set the system palette (the colors the system can use, back when there were only 256 colors) to the palette the game wants to use. However, some applications try to set their own exclusive palette, causing conflicting colors since the game's exclusive palette is no longer actually exclusive and is set to the wrong colors. In newer versions of Windows, CSRSS and the desktop window (explorer.exe) set their own palette, which causes the odd colors.
Fixes / Solutions / Workarounds
1. Direct Draw Compatibility tool - download w7ddpatcher
w7ddpatcher is the most simple and best method.
DirectDraw Compatibility Tool
[ Program purpose ]
DirectDraw Compatibility Tool is designed to fix color palette corruption in the old games (Fallout, Age of Empires, Worms Armageddon, Theme Hospital and other from the second half of the 90th).
Corruption occurs because of incompatibility between graphical interface Windows Aero and games intended to work with DirectX 7 DirectDraw or an older DirectX version. Both Windows Vista and Windows 7 have built-in compatibility tools for such games. But to invoke compatibility mode there should be information about specific exe-file in the corresponding part of the registry. DirectDraw Compatibility Tool allows to completely automate process of compatibility rules creation.
[ Program functions ]
DirectDraw Compatibility Tool has two operation modes:
- create compatibility rules for a given game;
- save compatibility rules to the reg-file.
If 'Pathname of the target exe-file' is empty, button 'Apply' will open the file selection dialog.
'Create reg-file' button allows to export compatibility rule as a Windows registry file. This file could be imported into the registry manually or distributed along with the game. I need to admit that reg-files are different for 32- and 64-bit Windows (64-bit version has keys in the additional registry brunch). In the case of the automatic rule creation ('Apply' button) DirectDraw Compatibility Tool detects Windows version itself. Manual application of the reg-file from the 32-bit Windows most probably will not give a positive result on the 64-bit OS but reg-file from the 64-bit Windows could be used on the 32-bit OS version seamlessly. In the latter case one redundant registry key will be created.
[ Supported games ]
Updated list of the supported games will be published on the DirectDraw Compatibility Tool web-page. Click 'homepage' link in the upper right corner of the program window to get there. If you managed to solve problems with a game which is not in the list, you could help the project leaving a comment on the site.
At the current moment color corruption has been fixed for Fallout 1, Fallout 2, Worms Armageddon (version 3.6.29), WarCraft 2 Battle.net Edition and Theme Hospital. This method should work for Age of Empires as well but has not been really tested.
[ From author ]
Hope I made a life of an old-gamers and fans a little easier. Any comment and suggestion are welcome, especially since the program homepage is my blog.
Copyright 2010 Galogen
English Localization by ALCHEMIST
2. PalettestealerSuspender - download
Prevents palette issues using a different method.
PalettestealerSuspender - A tool to prevent color problems in old Directdraw games
PalettestealerSuspender is a launcher tool which allows you to play Directdraw games in fullscreen on Windows Vista and Windows 7 without color problems. See this site for a full description of the problem and solutions.
- Update (15-Aug-2012): A new update for the PalettestealerSuspender program is up. This release tries to fix some common "black screen after game exit" and other problems people have reported. Updated version can be downloaded from normal link below.
- 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 (this one).
- Update (24-Apr-2011): A new update for the 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.
- 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. 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.
- Worms Armageddon
- Age Of Empires (and Rise Of Rome)
- Age Of Empires 2: Age Of Kings (and The Conquerors)
- Starcraft (and Broodwar)
- Diablo 1 (and expansions)
- Diablo 2 (and expansions, note that Blizzard fixed the color issue in a recent patch)
- Star Wars: Galactic Battlegrounds (fun fact: this game uses the same engine as the Age Of Empires series)
- Fallout 1
- Fallout 2
- Others... (MechCommander?)
After opening the program automatically places itself in your notification area and loads your saved settings. Settings are saved in "save.xml"; you may delete this file and start the program again to start with a blank slate if you desire to do so. Only one instance of the program can run at once.
Image file lost
The program places itself in your Windows notification area after starting it.
Right click menu
Right clicking the notification area icon brings up a menu with the following options:
Games: this menu will subdivide itself into a list of games. When starting the program for the first time, no games will be present. For each game added, a (un)checkable entry will appear, together with an option to start a game manually.
Configure...: this menu item brings up the configuration screen, where you can add games and manage settings. Double clicking the icon has the same effect.
Quit: exits the program completely.
Image file lost
Right-click menu after starting the program for the first time.
The configuration screen
Image file lost
The "Games"-menu shows a list of added games. Entries can be checked from this menu to monitor them.
The configuration screen (brought up by choosing "Configuration..." in the right-click menu or double clicking the notification area icon) allows for the following:
Image file lost
The configuration screen is opened by choosing "Configuration..." in the right-click menu or by double clicking the notification area icon. Games are added in this screen.
- A list of games: you can add game executables here using the "Browse..." and "Add" buttons. Double clicking removes entries from the list. Checking an item denotes that you wish to monitor this particular game (remember that entries can also be checked from the right-click menu). Every change you make to this list will also be reflected in the right-click menu under "Games".
- A list of palette stealing processes: which should require no tampering in most cases. Palette stealing processes are automatically detected and added to the list while the configuration screen is active. If the program isn't working correctly for you, you might want to leave the configuration screen open while running the game to let new entries appear in this list. By checking and unchecking items you can choose which processes you want to suspend. Note that it is impossible to check or uncheck some processes.
- The method to suspend and resume palette stealing programs: in most cases, the recommended option should work well enough. Try the other options in case the program isn't working.
- Buttons: "Save and Hide" saves your settings to "save.xml" and hides the program back to the notification area. "Quit" completely exits the program and has the same effect as picking "Quit" from the right-click menu.
Starting and playing games
There are two ways to play your games. The first one is to "manually start" your games with the right-click menu. PalettestealerSuspender will automatically suspend all palette stealing programs and resume them when exiting the game.
The first way to start games: by manually starting them from the right-click launcher menu.
The other way is to let PalettestealerSuspender monitor your list of running processes to see if a game has been started. To allow PalettestealerSuspender to monitor a particular game, check its entry in the configuration screen or through the right-click menu itself. This option provides the most flexibility, as you can just configure a list of games you want to monitor in the configuration screen, make sure they are checked, and then just hide PalettestealerSuspender and forget all about it. It will automatically react when you start a game, while still allowing to "manually start" games from the right-click menu as well.
As of April 2011, the program also contains a console mode, look in "readme.txt" for usage instructions.
License and Disclaimer
This work is licensed under a Creative Commons Attribution-Share Alike 2.0 Belgium License as stated at Creativecommons.org
THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Found on Bedagainstthewall.blogspot.com
downloads of the tool on this site are offline / expired but i
found download on Github.com
Original Macuyiko site: Blog.macuyiko.com
3. DxWnd DirectDraw emulation - download page
DxWnd was originally created to enable old DirectX games to run in a window. Nowadays it provides far more features: It can fix the odd rainbow color issue, enable time stretching, and you can decide between running the game in a window or in full screen.
4. Registry hack - manual override
Windows 7 actually has a builtin, hidden fix for this issue but requires editing the registry.
- Run your game at least once and exit out of it.
- Go to the 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)
- Take a note of the name, game.exe, and the ID, which looks similar to this: 0x02e41c67
- Remove the '0x' part of the ID and separate the values into pairs, like this: 02 e4 1c 67
- Take the pairs and reverse their order, like this: 67 1c e4 02
- Open Notepad and add the following. Change NameOfGame to whatever you want, leave Flags alone, enter your own ID keeping commas intact, and change game.exe to whatever it is.
32 bit only!
Windows Registry Editor Version 5.00
64 bit only
Windows Registry Editor Version 5.00
Not the best method for new users as editing the registry incorrectly can damage your OS.
5. Kill Explorer with batch script - not recommended!
Paste the following into a text editor and save as a batch script. Run it from the game's folder:
TASKKILL /F /IM "explorer.exe" If script fails/crashes before it restores the Explorer, you will be left with a blank desktop screen and will have to manually restart the process by the windows key+R to bring up the run dialog and typing "explorer.exe"
start /w [insert executable name here].exe
found on Pcgamingwiki.com
RizZen´s note: I never tried that tools above neither i can guarantee nor promis that color problems can be 100% solved on Vista and Win7 OS - but i have some feedback that method 1-3 are helpful for some people who tested it - so i recommend giving it a try when i would use those OS.
(c)by RizZ (2017) - overhauled (2020)