Forum

Z PMD 85 Infoserver

:: späť na začiatok témy :: späť na zoznam tém ::
Správa
Autor  Autor ::  Lukáš
Poslaná  Poslaná ::  27.11.2012 20:15:31
Predmet  Predmet ::  Re: JETPAC
Já jsem dělal port ze ZX spectra hry Space raiders na IQ151, mám takový pocit že tyto první hry (objevili se i jako cartridge do XZ IF2), byly port z nějakého jiného osmibitu nebo herní automatu s procesorem 8080, nikde žádné relativní skoky, IX, IY... jen předělané pro zobrazování na Spectru. Jestli se ti povede funkční 8080 převod měl bych zájem o zdroják... zkusil bych IQ151 port, ale obávám se že tady s rychlostí už asi narazím.
 
Správa
Autor  Autor ::  Libor L.A.
Poslaná  Poslaná ::  28.11.2012 05:10:34
Predmet  Predmet ::  Re: JETPAC
Cožpak IQ151 nemělo standardní osazení i8080A/8224/8228? Pokud ano, je dost pravděpodobné, že to bylo taktováno rovněž na 2.048MHz. Ale rád se nechám poučit, je-li to jinak.
 
Správa
Autor  Autor ::  Lukáš
Poslaná  Poslaná ::  28.11.2012 06:23:47
Predmet  Predmet ::  Re: JETPAC
Procesor a obvody kolem jsou standard, ale problém je s grafikou IQ151 má pouze textovou Videoram. Pro grafiku má speciální modul s 16kB RAM ale přistupuje se do ní ne pomocí stránkování, ale tak že je připojená adresovkou na 8255 (2 porty adresa, třetí řídící) + datovka na zvláštní port, takže přístup do videoram je přes 2xout, 1x in, pak operace (and or xor) a pak out - pro změnu bitů v 1 bajtu. Např. nejrychlejší mazání grafické obrazovky pak trvá okolo 3 vteřin.
 
Správa
Autor  Autor ::  Libor L.A.
Poslaná  Poslaná ::  28.11.2012 10:47:51
Predmet  Predmet ::  Re: JETPAC
Bože.. Kdo tohle vymyslel..

Ale měl bych nápad, zkus udržovat virtuální obrázek v normální RAMce a kopírovat do té videoram jen změny, popřípadě vše ale až po provedení těch XOR propočtů.
 
Správa
Autor  Autor ::  Lukáš
Poslaná  Poslaná ::  29.11.2012 19:10:37
Predmet  Predmet ::  Re: JETPAC
Zběžně jsem prolítl kód a zase tak jednoduché jako Space Raiders to určitě nebude. S tímhle si docela pohráli a je tam hodně velká spousta Z80 instrukcí... Koukám že se už v roce 1983 pokoušeli o jakousi malou ochranu :)
Jinak pro informaci jak jsem dělal ty Space raiders...
1. disassembling hlavních částí, určení kódu a dat
2. doplnění návěstí, odkazů na data a tabulky a grafiku, disassembling grafiky jako DEFB
3. zkouška překladu na stejnou adresu a potom zkouška relokace na jinou adresu (stále ještě na Spectru)
4. Nahrazení instrukcí pro procesor 8080 a test (na spectru)
-> takto funkční zdroják teprve začátek portování na IQ151
5. předělání grafických rutin a výpisů textů + klávesnice + zvuky
6. tisíce drobných dodělávek a úprava časování :)

Takže jestli už si z něčím začal a budeš mít zájem o pomoc/spolupráci tak řekni.
 
Správa
Autor  Autor ::  Roman Bórik
Poslaná  Poslaná ::  29.11.2012 20:50:03
Predmet  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  Autor ::  Lukáš
Poslaná  Poslaná ::  29.11.2012 22:00:34
Predmet  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  Autor ::  Libor L.A.
Poslaná  Poslaná ::  30.11.2012 05:38:54
Predmet  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.
:: späť na začiatok témy :: späť na zoznam tém ::