Ataristův protiútok – komplet
Nedávno vyšel celkem pěkný článek na Herním archeologovi o Ataristově Protiútoku, pěkně o něm psal chlapec, udělal mi radost a dostal i pěkné hodnocení. No on archeolog věděl, že dát míň nebavím se ním.

V recenzi se archeolog zmiňoval, že vlastně parser hry je divnej a že nebere třípísmenné zkratky, tak jsem mu vysvětlil, že kdysi dávno, hra na páskách měla dvě části, kde se muselo i zadávat heslo. Měla, vím to, hrál jsem ji jako děcko. Taky v první části hraje muzika, taky je tam povídání o tom jak máte hrát a jak máte zadávat příkazy.
Taky ji mám někde na páskách, tak jsem si řekl, že ji najdu. Pokusím se ty soubory nějak dostat do elektronické podoby a oslovím někoho kdo se v tom vyzná, jestli by z těch několika souborů neudělal něco, co by bylo funkční i pro emulátory.
Našel jsem verzi, která šla normálně kopírovat, protože původní hra se distribuovala s protikopírovací ochranou, to bylo kvůli soutěži. Prostě loader hry byl kousek ve standardu, pak si inicializoval turbo a zbytek si nějak načetl, prostě pro tehdejší kopíráky neřešitelná věc. Jasně stačilo „dvojče“ a měli jste aspoň zavaděč a zbytek si mohli zkopírovat. Hra má celkem tedy tři soubory, loader, první část a pak samotnou hru.
Dokonce jsem našel i nějaký speciální generátor od nějakého hackera, co umí vygenerovat na pásku onen nekopírovatelný loader, říkám si – mám ho zachránit pro budoucí generace? Nechce někdo i tyhle tři původní soubory z pásek? Řekněte si.
Soubory mám, co s nima nevím, tak jsem si posteskl na sociální síti a ozval se mě Jindroush, že to zkusí. Neuvěříte, on to zvládl za pár hodin a normálně nám vyrobil funkční verzi Ataristova Protiútoku. Děkujeme mu z celého srdce.
Tak tady ho máte.

Mimochodem, kdyby náhodou měl někdo doma výsledkovou listinu úspěšných řešitelů Protiútoku, bylo by to naprosto báječný, ale vím, kdysi to v K-Softu tiskli na termopapír z Robotrona, takže pochybuju, že se to dochovalo.
Kdyby vás také zajímalo, jak probíhala oprava, slepení a nebo vlastně jak to kdysi bylo chráněné, tak jsem si dovolil ukrást Jindrouhovo příspěvěk na Facebooku.
Několik screenshotů z průběhu „loupání cibule“ v příloze, včetně pár komentářů (u jednotlivých screenshotů)
Jinak to bylo vychytralé – vlastní turbo loader udělaný tak, aby rozšifrovával načtené bloky, v nich několik vrstev šifrování, kopie a patchování ROM, včetně přesunu části kódu do ROM oblasti a kontrola stavu cartridge v přerušení – aby nešlo vlézt do monitoru a patchnout snadno.


Ten text „AHOJ ZVĚDAVČE!“ – viz označené ascii hodnoty vlevo je zároveň entry pointem kódu zavaděče.
Instrukce s hvězdičkou jsou „illegal/undocumented“, nikdy si nejsem jist, na kterých verzích 6502 fungovaly. Ale na XE/XL jistě ano.
Takže ve skutečnosti jediné instrukce, co něco dělají, jsou ty podtržené tmavě – prostě smyčka přes 255 bajtů, kde je každý bajt od $247E přexorovaný $55.


A to už ztratí nervy uplně. Jestli ten text má pokračovat (a já to zvoral) nebo má pokračovat (a autor to zvoral), to netuším.
Po tomto už následují další kroky:
Kopie ROM do RAM, patchování kódu v ram, spuštění intra a hudby. Po zadání správného hesla se pak dotáhne druhá část (obsahuje jen texty), a celý začátek prvního dílu a celý druhý díl se rozšifrují a posunou do paměti od $480. A už se hraje.
A kdyby někdo chtěl si počíst celkem zajímavou diskuzi, tak si klikněte https://www.facebook.com/groups/1086787078030357/permalink/5065659550143070/