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

    • The fact I need to use "Show more" like 99% of the time is so annoying. Or why I have 7-zip under 3 submenus when it could be in top. And Microslop keeps saying how they'll improve Start and I've not seen ANY improvement yet. In MONTHS. WTF?! I'll believe any of it when they actually deliver anything.
    • LosslessCut 3.69 by Razvan Serea LosslessCut aims to be the ultimate cross platform FFmpeg GUI for extremely fast and lossless operations on video, audio, subtitle and other related media files. The main feature is lossless trimming and cutting of video and audio files, which is great for saving space by rough-cutting your large video files taken from a video camera, GoPro, drone, etc. It lets you quickly extract the good parts from your videos and discard many gigabytes of data without doing a slow re-encode and thereby losing quality. Or you can add a music or subtitle track to your video without needing to encode. Everything is extremely fast because it does an almost direct data copy, fueled by the awesome FFmpeg which does all the grunt work. Features Lossless cutting of most video and audio formats Losslessly cut out parts of video/audio (for cutting away commercials etc.) Losslessly rearrange the order of video/audio segments Lossless merge/concatenation of arbitrary files (with identical codecs parameters, e.g. from the same camera) Lossless stream editing: Combine arbitrary tracks from multiple files (ex. add music or subtitle track to a video file) Losslessly extract all tracks from a file (extract video, audio, subtitle, attachments and other tracks from one file into separate files) Batch view for fast multi-file workflow Remux into any compatible output format Take full-resolution snapshots from videos in JPEG/PNG format Manual input of cutpoint times Apply a per-file timecode offset (and auto load timecode from file) Change rotation/orientation metadata in videos View technical data about all streams Timeline zoom and frame/keyframe jumping for accurate cutting around keyframes Saves per project cut segments to project file View FFmpeg last command log so you can modify and re-run recent commands on the command line Undo/redo Give labels to cut segments View segment details, export/import cut segments as CSV Import segments from: MP4/MKV chapters, Text file, YouTube, CSV, CUE, XML (DaVinci, Final Cut Pro) Video thumbnails and audio waveform Edit file metadata and per-stream metadata Edit per-stream disposition Cut with chapter marks Annotate segments with tags View subtitles Example lossless use cases Cut out commercials from a recorded TV show (and re-format from TS to MP4) Remove audio tracks from a file Extract music track from a video and cut it to your needs Add music to a video (or replace existing audio track) Combine audio and video tracks from separate recordings Include an external subtitle into a video Quickly change a H264/H265 MKV video to MOV or MP4 for playback on iPhone Import a list of cut times from other tool as a EDL (edit decision list, CSV) and run these cuts with LosslessCut Export a list of cut times as a CSV EDL and process these in another tool Quickly cut a file by its MP4/MKV chapters Quickly cut a YouTube video by its chapters (or music times from a comment) Change the language of a file's audio/subtitle tracks Attach cover art to videos Change author, title, GPS position, recording time of a video Fix rotation of a video that has the wrong orientation flag set Great for rotating phone videos that come out the wrong way without actually re-encoding the video. Loop a video / audio clip X times quickly without re-encoding LosslessCut 3.69.0 changelog: Add lossless cropping & aspect ratio override via bitstream and container metadata #643 Alow shifting tracks for each file (-itsoffset) #216 Add "decimate video" tool to filter away all non-keyframes #2111 Add Windows ARM 64 native build with native ffmpeg Move timecode out of timeline and make it copy-able #2592 #2691 #2800 #483 #2808 Upgrade Electron to latest Add new "opposing" align mode #2654 Add FFmpeg -hwaccel auto setting for hardware acceleration of certain operations Add API events export-start and export-complete Allow deleting track metadata #2819 Improve shift segments dialog #2839 Show keyboard shortcuts inside button tooltips in UI Warn if trying to cut with too few keyframes around cutpoint #516 #2780 #2756 (Linux) include app name in notification #2794 Pull latest translations Other notable changes: Advanced output directory selector #2101 #2115 #2755 increase max file name length to 250 (truncation) #2779 don't reset playback speed when using special playback modes #2889 preserve chapters when merging files that already have chapters don't merge adjacent segments in combineOverlappingSegments #2896 don't transfer segment name when filling gaps #2754 always scroll up to zoom in #2703 #2786 increase max keyframes to 10000 Don't bind ctrl/cmd+c by default (they interfer with copying text) Many other improvements and fixes Download: LosslessCut 3.69.0 | ARM64 | ~100.0 MB (Open Source) Links: LosslessCut Website | Other Operating Systems | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Doesn't even need a UI for point 2 - use some sort of JSON/XML container - because MOST users won't even bother.
  • Recent Achievements

    • Conversation Starter
      FBSPL earned a badge
      Conversation Starter
    • Week One Done
      I2D earned a badge
      Week One Done
    • Week One Done
      Dr Jared Dental Studio earned a badge
      Week One Done
    • Week One Done
      RG INVESTMENT GROUP earned a badge
      Week One Done
    • Very Popular
      The Norwegian Drone Pilot earned a badge
      Very Popular
  • Popular Contributors

    1. 1
      +primortal
      488
    2. 2
      PsYcHoKiLLa
      263
    3. 3
      Skyfrog
      85
    4. 4
      FloatingFatMan
      64
    5. 5
      Michael Scrip
      62
  • Tell a friend

    Love Neowin? Tell a friend!