PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beseitigung von falscher Farbdarstellung in alten Windows-Spielen (DirectDraw)



Friedrich III.
29.04.13, 17:46
Vor dem Konvent und während des Konvents (Ryo kann das bestätigen :D) habe ich krampfhaft versucht die falsche Farbdarstellung in den Filmsequenzen und Menüs von "Outlaws" zu beseitigen. Während man das fehlerhafte Direct3D mit 3Dfx (via Glide Wrapper) überbrücken kann, war die Darstellung durch DirectDraw eine harte Nuss gewesen.

Folgende Anleitung und Programme haben mir Abhilfe geleistet:

http://www.playersmind.com/index.php/component/content/article?id=20



Depending on whether you have a 32 or 64 bit version of Windows installed you will have to browse to a different registry key.

If you have a 32 bit version installed browse to:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw

If you have a 64 bit version of Windows installed browse to:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw

There you will find the keys "Compatibility" and "MostRecentApplication". "Compatibility" includes the list of fixed games. However, in order to add your game of choice you will have to know its "ID". In order to find out its "ID" you have to run it and then return to the Registry Editor. The "ID" will have shown up in "MostRecentApplication". Now check out the "Compatibility" key. Each game has its own key in there and four values. So do this:

1. Right click on "Compatibility", select "New" > "Key". Call it adequately to the game you want to add (it doesn't matter to the functionality).

2. Select the new key, right click in the right field, select "New" > "Binary Value". Rename it to "Flags". Next double click on this value and set it to "00 08 00 00" (without the quotation marks).

3. Add another binary value, call this one "ID". Properly filling this one is a little tricky. Go to "MostRecentApplication" and look at the ID there. It will look something like this: "0x3b05ac00". You will have to "translate" this to a binary value. To do this drop the "0x" and divide it into four groups of two characters like this: "3b 05 ac 00". Now invert this series of values - so "3b 05 ac 00" becomes "00 ac 05 3b". Now go to the "ID" you added for the game of your choice and insert this value there.

4. Now add another entry to your key, this time a "String", and call it "Name". Again, look up the proper value in "MostRecentApplication". It's the one which contains the name of your game's executable (i.e. "diablo.exe"). Fill your string with that name.

If you've made no mistake the game should be fixed now. Run it and see whether the color corruption is gone. In case of some games the intro or title screen will still have rainbow colors, so you may want to enter the actual gameplay to make sure it worked. If it didn't, go back to the Registry Editor and check for mistakes (you may want to compare it to the entries that were already there).

If you've double checked, everything seems correct and color corruption is still present you may have sadly run into a game which the fix actually doesn't work on or needs other flags than 00 08 00 00. Sadly at this point I can't provide any other advice than resorting to killing explorer.exe after all.

Obwohl das Progamm W7DDPatcher (http://www.gamefront.com/files/21307964/w7ddpatcher-withsource.zip) diese Vorgehensweise automatisch macht, musste ich es zusätzlich nach oben genannter Tätigkeit auch noch ausführen, damit zumindest Menüs und Filmsequenzen richtig dargestellt wurden. Ausnahmen waren Intro und Credits (wenn man das Spiel verlässt). Es könnte vermutlich an Windows 7 Starter auf meinen Netbook liegen.

Bei einer Google-Suche über einen Verweis im GOG.com-Forum hatte ich folgendes Programm entdeckt:

http://blog.macuyiko.com/2009/07/solving-color-problem-red-grass-purple.html


(8 - reliable) Download a tool (http://static.macuyiko.com/files/palettestealersuspender/PalettestealerSuspender.zip) 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.

-> http://blog.macuyiko.com/p/palettestealersuspender.html

Nun habe ich eine einheitliche Darstellung im Spiel. Vermutlich hätte ich mir den ersten Schritt oben sparen können, wenn ich das Programm früher entdeckt hätte; das werden ich wohl später herausfinden, wenn ich "Outlaws" unter Windows 7 x64 oder das erste "Emergency" auf meinem Netbook zum Laufen bringen will. :smoke:

Alith Anar
29.04.13, 18:46
Vielen Dank für die Information :)

Wer die Dosbox benutzt und das gleiche Problem hat.
Kann dort entweder im GUITool (Ich verwendet ProGammaX) bzw in der dosbox.conf den Output wert auf ddraw bzw surface ändern.

Friedrich III.
30.04.13, 21:41
"Emergency" wird dank W7DDPatcher richtig unter Windows 7 Starter dargestellt; bei "Outlaws" unter Windows 7 x64 gab es auch die erwähnte Problematik (Menüs und Filmsequenzen ok, Vor- und Abspann fehlerhaft), dafür musste ich es gewissermaßen nicht zwei Mal ausführen. Zudem wird die CD-Musik (womöglich aufgrund des 64-Bit-Installer) nicht abgespielt. Das ist jedoch kein allzu großes Problem, das man nicht lösen kann. :D

Auf jeden Fall ist der W7DDPatcher sehr zu empfehlen, wenn von offizieller Seite nichts kommt. Wenn dieser scheitert, ist PalettestealerSuspender der letzte Strohhalm.