Emulácia najmä starších hier vždy tvorila obrovskú časť počítačovej komunity, vďaka ktorej sa hráči často dostávali ku titulom, ktoré mohli dovtedy konkurencii závidieť.

Pred niekoľkými dňami sa však internetom prehnala počítačová verzia Super Mario 64, ktorá namiesto toho, aby bežala na tradičnom emulátore, často skrytom za .exe súbor, obsahovala početné prvky prameniace z nedávno uniknutého zdrojového kódu hry, píše portál Ars Technica. Vďaka tomu teda hra pôsobila a fungovala ako tradičný počítačový port.

Rozoberanie zdrojového kódu u videohier je často spájané s hľadaním technologických medzier využiteľných k optimalizácii. Legendami v tejto oblasti sú aj dve Nintendo série, Super Mario a The Legend of Zelda, kde je rovnako, ak nie radikálnejšie aktívna aj moderská komunita.

Zatiaľ čo myšlienka emulácie funguje na softvérom vytvorení podobného prostredia pôvodnej platformy v rámci iného systému, reverzné rozoberanie zdrojového kódu sa sústreďuje na optimalizáciu daného softvéru už od základu pre nové zariadenie, bez potreby medzičlánku v podobe emulátora.

Binárne hackovanie je náročná a mravenčia práca

Prvým krokom pri reverznom inžinierstve N64 hier je stanovenie si špecifickej verzie grafického IDO kompilátora obrazu hry. Tu moderom pomáhajú uniknuté buildy alebo zabudnuté zvyšky zdrojového kódu už priamo v obraze hry.

V druhom kroku sa tak zisťuje, ako sú jednotlivé súbory na výslednom obraze hry organizované. Kenix, popredný moder v Zelda Reverse Engineering Team tvrdí, že N64 má výhodu obraze hier, ktoré sú zostavené do 16 bajtových celkov, kedy sa jednotlivé oblastí dát s textúrami alebo polygónmi dajú od seba jednoduchšie odlíšiť.

Niektoré súbory sú dokonca aj špecifický pomenované v tvare _SÚBOR_a_RIADOK_ priamo Nintendom, čo moderom pomáha v opätovnom budovaní hier. Samotný kód je tak dostupný v programovacom jazyku C, ktorý aj napriek početným uľahčeniam v podobe automatizácie je náročnou a mravenčou prácou. V konečnom dôsledku tak reverzne dosiahnutý kód musí byť skontrolovaný funkciu po funkcii a následne ručne prevedený do použiteľného C kódu.

Prečítaj si tiež
Toto sú historicky najpredávanejšie hry na známych konzolách

Náročnosť sa líši u každej hry

Podľa Kenixa sa náročnosť procesu líši od jednotlivých hier, kedy napríklad vývojári pri Super Mario 64 nevyužili žiadny kompilátor. Prevod základného kódu je tak podstatne jednoduchším procesom ako v prípade The Legend of Zelda: Ocarina of Time, kedy autori využívali rôzne spôsoby optimalizácie generujúce kód podstatne rýchlejšie.

Priame PC portovanie rozhodne nie je jednoduchým procesom, čomu nenahráva ani fakt, že N64 využíva diametrálne odlišné renderovacie nástroje ako napríklad moderné OpenGL. Zdrojový kód Super Maria 64 bol zverejnený minulý september, takže moderi za tú dobu dokázali vytvoriť hneď niekoľko nových nástrojov dovoľujúcich im meniť rôzne aspekty hrateľnosti hry.

V prípade Ocarina of Time tím dokázal reštaurovať len 15 % zdrojového kódu do C podoby. Dúfajú však, že hlbšie binárne hackovanie im v nasledujúcich mesiacoch otvorí nové možnosti, ako podrobnejšie a najmä rýchlejšie prebádať čaro ďalších N64 hier.

Pošli nám TIP na článok



Teraz čítajú