Mit tegyünk, ha régi DirectX játékkal nosztalgiáznánk, de nem jók a színei?
Valamelyik nap rámtört a nosztalgia és úgy éreztem elő kell vennem régi kedvencem, a Starcraft nevű játékot. Hogy ez mekkora nosztalgiát jelent, arról talán képet alkothat, hogy a játék 1998-ban jelent meg és a gépigénye is ennek megfelelően mindössze egy Pentium 90-es 16MB memóriával. Fel is telepítettem (természetesen a kiegészítővel együtt), majd letöltöttem hozzá a Blizzard honlapjáról a legújabb frissítést és örültem, hogy két másolás után már a CD-re sincs szükség a játékhoz. Igen ám, de bár a telepítés gond nélkül zajlott, a játék maga gyakorlatilag élvezhetetlen volt, mivel a színei nagyon nem stimmeltek.
Fontos figyelmeztetés, amit minden olyan honlapon olvashatunk, ahol a regisztrációs adatbázis módosítására buzdítanak: csak saját felelősségre! Csak az fogjon hozzá, aki tudja is mit miért csinál, az ebből eredő károkért felelősséget nem vállalok, blablabla...
Tehát vissza a problémához. A játék gond nélkül települ, azonban elindítás után az aktuális DirectX verzióval a színei torzak, nem megfelelő színpalettát használ, így gyakorlatilag élvezhetetlen. Első nekifutásra rohannánk a kompatibilitás varázsló felé és állítgatnánk mindenfélét, azonban ezeknél a játékoknál sajnos nem vezet megoldáshoz, a színek továbbra is torzak maradnak.
Ahhoz, hogy a fent látható kép helyett az alábbi kép fogadjon minket, a DirectX kompatibilitást kell beállítanunk egy viszonylag egyszerű regisztrációs adatbázis trükkel.
Első lépésként meg kell győződnünk róla, hogy minden olyan alkalmazást bezártunk, aminek köze van a DirectX-hez. Az egyik olyan program, amire nem is gondolnánk, hogy megkavarhat minket az adatgyűjtésben, az a TeamViewer, ha véletlenül futna, akkor zárjuk be! Miután ezt megtettük, el kell indítanunk a játékot, majd ki kell belőle lépni, így a regisztrációs adatbázisban (amit a regedit paranccsal érünk el) létrejön egy számunkra lényeges bejegyzés a
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\MostRecentApplication]
kulcs alatt. Ha 32bites Windows rendszert használunk, akkor nincs Wow6432Node, a SOFTWARE szekció után a Microsoft-ra léphetünk. Ezen a kulcson belül találunk egy ID, illetve a Name változót aminek az értékére szükségünk van (a Name segít eldönteni, hogy a megfelelő programhoz találtuk-e meg az azonosítót).
Miután ezt a két értéket felírtuk, menjünk át a mellette lévő
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectDraw\Compatibility]
kulcshalmazra és hozzunk létre egy új kulcsot! Ennek a kulcsnak akármilyen nevet adhatunk, de célravezető, ha a programunk nevét adjuk neki, hogy legközelebb is felismerjük. Ezután a kulcson belül létre kell hoznunk azt a két változót, amit az előbb lemásoltunk, pontosan úgy, ahogy ott láttuk, (illetve, ahogy a már ott lévő bejegyzéseknél láthatjuk) azaz a Name változó az egyszerű karakterlánc típus, az ID az pedig duplaszó. A többi hasonló kulcsnál még szerepel egy Flags változó is, amit mi szintén hozzunk létre (bináris típusként) és adjuk neki a 00,08,00,00 értéket. Sajnos sehol nem találtam információt arról, hogy ez a változó pontosan mit csinál, így lehet, hogy más játéknál mást kell oda beírni, a többi előre beírt bejegyzésből lehet ellesni olyan értékeket, amik biztosan jók.