YEAAA...
MY GAME IS STILL WORKING IN 2026 !!
PROGRAMMED IN 1992 ON AT .286 12MHZ.
...ENJOY OLDIES!!
Tohle je hláška, která vás dnes uvítá při spuštění klasické DOSové plošinovky Prehistorik 2. Nyní dostává další rozměr, a to díky novému portu, který je vytvořený v Pythonu (s využitím knihovny Pygame). Hru tak můžete nativně spustit např. pod Windows nebo na Androidu. Ale celé je to ještě podstatně zajímavější...
Port vznikl pomocí projektu DOS_RE, což je obecný framework pro reverzní inženýrství DOSových her. Jde o jakousi vývojářskou laboratoř vybavenou interprety procesorů, modely prostředí DOSu, BIOSu a dobového hardwaru. Jednotlivé rutiny původních her lze postupně nahrazovat novým kódem a následně porovnávat registry, paměť, obraz i komunikaci s hardwarem. Když se výsledky shodují, lze přepsanou část přesunout do nativního portu.
DOS_RE je navržen pro práci AI agentů (a sám z velké části vzniká s pomocí modelu Claude). Umělá inteligence pomáhá s analýzou a přepisem, správnost ale neurčuje odhadem - rozhodující je vždy porovnání s původním programem. Cílem navíc není jednorázově zachránit jednu hru, ale vytvořit nástroje použitelné i pro další DOSové tituly. (Ano, máme tu další střípek do mozaiky Kolik AI je příliš AI?)
U Prehistorika 2, který posloužil jako vzor a prototyp, už tento postup dospěl k plně hratelnému výsledku. Herní logika, vykreslování, zvuky, hudba, nabídky, mapa, úrovně i závěrečné sekvence byly převedeny do samostatného kódu v Pythonu. Port přidává skutečný širokoúhlý režim, interpolaci pohybu pro plynulejší obraz, hladší přechody, poziční stereo, celoobrazovkový režim a celočíselné škálování (nastavení vyvoláte stisknutím F10). Herní logika přitom dál běží s původním časováním, takže modernější pojetí by nemělo měnit fyziku ani obtížnost.
Pro Windows je připraven samostatný spustitelný soubor, ze zdrojových kódů lze hru rozběhat také v Linuxu a macOS. Potřeba jsou pouze původní datové soubory, doporučena je verze z GOG.
DOS_RE se mezitím testuje i na dalších hrách, mimo jiné na Lemmings. Zda z něj vznikne skutečná továrna na nativní porty DOSových klasik, se teprve ukáže. Pro mě je to samozřejmě černá magie :)




Posledne 3 mesiace robim na takomto sukromnom projekte, CYAC z 1991.
Na tento pristup ma naviedlo to ze samotna binarka sa pri spusteni najprv niekolko krat rozbaluje. Nez vymyslat nejaky nastroj lahsie bolo s pomocou AI odemulovat CPU s nechat ju nech sa rozbali v bajtovom poli (C#).
Neskor som si povedal ze k tomu pridam prerusenia, vstup z klavesnice a vystup na obrazovku a postupne preklapam funkcie do C#.
V tom 1991 to bola pomerne prasarna, cele 3D je pocitane bez FPU a bez nasobenia, asi 30% kodu musel byt povodne assembler, zvysok je Microsoft C 6.0a, moj ciel je to dostat do stavu ked to bude bezat cele bez emulacie a potom chcem zdvihnut LOD s rozlisko z povodnych 320×200 do niecoho dnesneho…
CYAC je Chuck Yeager? :)
jj, C.Y. Air Combat. Nedavny clanok o F15 ma tiez zaujal, co som pozeral na blog autora tak s tym pracoval asi 5 rokov kym to rozmotal. Bez AI by som sa ja do toho ani nepustal (nemam tolko casu).
Ak funguje tento screenshot link tak takto to testujem pod .NET 10 emulatorom: https://imgur.com/a/KKZgmFO
Teda pane kloboucek. Můžeme se těšit i na Red Baron třeba časem – ta věc má výbornou atmosféru a příběh, ale 320*200 a ty hrubé modely by chtěly trošičku prekabatit do moderna. Zbožňuju staré simulace postavené na vektorech bez textur.
S portom Red Baron by som sa vedel stotoznit velmi rychlo, pekna hra, to iste obdobie (1990), graficky snad este krajsia ako CYAC, od pohladu aj zlozitejsia.
V kniznici na GOG je aj nejaky 3D remake asi z 1998, nikdy som ho nehral, je to 1:1 povodna hra alebo nieco trochu ine?
Este ohladom CYAC a DOS_RE: preskumal som zbezne kody na github. DOS_RE ide v podstate cestou akejsi rekompilacie s ideou niekolkych automatizovanych krokov, hra bezi stale identicky (akoby v emulatore) ale uz iba pomocou modernejsieho kodu. Vysledok by nemal emulovat registre CPU ale funkcie. Problem ktory tam bude stale ostava je pochopenie samotneho kodu – nazvy premennych, skutocne nazvy funkcii a ich vyznam/logika.
V mojom pripade bohuzial neviem DOS_RE pouzit, nakolko CYAC vyuziva zlozitejsie formy SMC a aj nieco ako JIT/vnutorny emulator, co v sucasnej forme DOS_RE odmieta/nepodporuje. Kazdopadne je to zaujimavy pristup hodny pozornosti. Podobne boli v minulosti portovane niektore konzolove hry (bez pouzitia povodneho zdrojoveho kodu, de-facto rekompilacia).
Na GOG je balíček, který obsahuje:
1) první Red Baron (VGA verzi),
2) Red Baron 3D, což je Red Baron II s přidanou 3D akcelerací a síťovou hrou. Tzn. nejde o remake jedničky :)
Red Baron 1 mám rád, v tom jsem nalítal stovky hodin, ale dvojka mi bohužel k srdci nepřirostla. Je tam víc realismu, což z toho dělá lepší simulátor, ale horší hru. Jednička byla tak akorát – jednouchý letový model, uchopitelná akce, a k tomu pár fórků typu lámající se konstrukce, vliv větru apod.