CV #52het - 52 projekt

Játék-kitömörítők

- 1999-2003 -

Az internet mainstreammé válása előtt meglehetősen nehéz volt bizonyos erőforrásokat beszerezni. Ma például, ha érdekel egy játék zenéje, valószínűleg Spotify-on egy kereséssel megtalálom és azonnal hallgathatom is.

Régen ez nem így volt, és nem csak a zenék miatt, hanem más értékes erőforrások miatt is (képek, hangeffektek, videók, animációk, stb) konkrétan a játék adataiban kellett turkálni, hogy hozzájuthassak ezekhez.

Ez viszont nem volt egyszerű, mert általában mindegyik azt csinálta, hogy kitalált egy saját fájlformátumot és abba szórt bele mindent, mint egy zip fájlba. Tehát ahelyett, hogy használták volna a klasszikus fájlrendszert és a fájlokat egyenként ott tárolták volna, összecsomagolták egyetlen fájlba. Ennek voltak előnyei, hiszen ebből olvasni sokkal gyorsabb volt, mint a fájlrendszerből, a játék többszörözése is egyszerűbb, ha nem ezer fájlt kell másolni, csak egyet, ami nagy. Viszont hátránya is volt, mert nem lehetett a dolgokat egyenként megnézegetni, felhasználni.

A hátrányok kiküszöbölésére alkottam meg számos, természetesen minden alkalommal játékspecifikus "kitömörítő" szoftvert (bár nem valódi tömörítésről beszélünk, de magyarul nem tudok rá jobb szót).

Egyszerű kép- és hangkitömörítők

Vannak bizonyos általános fájlformátumok, amiket minden nap használunk pl. képek vagy hangok/zenék tárolására. Ezeknek a legtöbbször van egy speciális ismertetőjele, amik alapján lokalizálhatók egy nagy adattömeg közepén is (pl. a jpg képek biztosan tartalmazzák a "JFIF" betűsorozatot, a hangfájlok legtöbbször úgy kezdődnek, hogy "RIFF...WAVEfmt"). Ha tehát végignézünk egy nagy fájlt és ilyen azonosítójegyeket találunk, akkor ott lesz valami érdekes, amit érdemes megvizsgálni.

Készítettem ilyen kitömörítőt BPM, WAV, PCX, JPG, XM fájlokra.

Struktúrált adathalmaz

Előfordul, hogy az adatfájl jól észrevehetően struktúrált, tehát pl. tartalmaz egy katalógust a benne lévő adatokból (ilyen pl. a Quake 1 "pak" fájlja). A katalógus általában nagyon egyszerű, olvasás alapján megfejthető (pl. van benne egy fájl név, egy méret meg egy pozíció, hogy hol található a nagy adattömegben). Ennek megfejtése után nagyon egyszerű hozzá kitömörítőt írni.

Ezekhez a játékokhoz készült: Comandos, Comandos MP, NFS2, Imperium Galactica, Zulu Assault, Unreal Tournament, Quake 1/2.

Trükkösebb adatok

Volt egy Star Wars Racer nevű játék, amiből ugyan könnyű volt kinyerni a hangeffekteket, viszont mindegyik el volt kódolva. Nem gondolom, hogy sok erőforrást raktak bele, mert egy XOR művelettel és egy kulccsal (0xEEEE5555, such encryption, very hexa, wow) nekimenve szépen vissza lehetett fejteni a natúr WAV fájlokat, amiket aztán akár egy Winamppal le lehetett játszani.

Aztán persze nem csak a játékok fájljaiban lehetett kutakodni, de a DrótPostaGalamb adatfájljáról külön poszt lesz.