Autor ::Roman Bórik Poslaná :: 29.11.2012 20:50:03 Predmet ::Re: JETPAC
Keď som "portoval" hru Plotting zo Speccy, tak som všetko písal nanovo. Okrem skutočnosti, že sa tam používali Z80 inštrukcie, tak pôvodný kód bola neskutočná "šialenosť", i keď z určitého pohľadu tam boli zaujímavé a šikovné riešenia. V 90% kódu sa všetko riešilo cez zásobník - vyberanie z tabuliek, vykresľovanie grafiky. Napr. sa tam nepoužívala jedna rutina na zobrazenie spritov, ale všetko bolo rozpísané desiatky-krát pre každý prípad zobrazenia nejakého spritu a dáta spritu sa ťahali cez zásobníkové operácie. Takže niekoľko kB kódu bolo iba vykresľovanie spritov. To som si na PMD 85 z pamäťových dôvodov pochopiteľne nemohol dovoliť. Z pôvodného kódu som okukal iba niektoré algoritmy (rutiny) hernej logiky, ktoré som si ale aj tak upravil a prispôsobil pre seba.
Správa
Autor ::Lukáš Poslaná :: 29.11.2012 22:00:34 Predmet ::Re: JETPAC
Jak píšeš o tom zásobníku, připomíná mi to přeložený kód třeba Pascalu, to dělá tyhle šílenosti...
Správa
Autor ::Libor L.A. Poslaná :: 30.11.2012 05:38:54 Predmet ::Re: JETPAC
Já jsem pro disasemblaci použil snap paměti v herním režimu, takže jestli tam nějaká ochrana byla, to nevím. Ale přijde mi, že se tam dost plýtvá pamětí (na kód), řada věcí by šla určitě udělat úsporněji. Uvidíme, co s tím udělá převod na platformu i8080. A co se týče zásobníku, přičel jsem na chuť těmhle konstrukcím se zásobníkem. Většinou šetří místo pro kód a urychlí celou věc. Momentálně mám u JETPACa disasemblované části s "obyčejnými" printy, obsluhou klávesnice, generování pseudozvuků, různé podpůrné procedury pro převody adres a identifikoval jsem místo a smysl některých proměnných. Teď rozkresluju obrázkové "slices", ze kterých se skládají obrázkové objekty. Začínám mít základní představu, jak to funguje. Doufám, že identifikuju nějakou kulturní základní herní smyčku. U Flappyho (některé lidi bych považoval za bohy - bez ironie) je nádherná ukázka kompaktní hrací smyčky na pár bajtech, ze které se volají dílčí provedury.