OldComp.cz
https://oldcomp.cz/

Manic Miner pro PP-01
https://oldcomp.cz/viewtopic.php?f=48&t=7515
Stránka 13

Autor:  stamil [ 24.06.2019, 18:53 ]
Předmět příspěvku:  Manic Miner pro PP-01

Po předchozích konverzích jednoduchých 16KB her ze ZX Spectra na PP-01 (Raiders a Jumping Jack) jsem se rozhodl, že zkusím zkonvertovat něco složitějšího.
Rozhodl jsem se pro Manic Minera, protože je všude známý a oblíbený.
Z mého obvyklého postupu jsem mohl vynechat hned první krok, tj. disassemblování původní hry a vytvoření kompilovatelného zdrojového kódu. Vše díky tomu, že tuto činnost již za mě udělal někdo jiný. Kompilovatelný zdroják vytvořil William Humphrey, který se o plody své práce podělil na GitHubu (https://github.com/WHumphreys/Manic-Miner-Source-Code).
Pro kompilaci zdrojáků k PP-01 se mi nejvíce osvědčil assembler PASMO, ve kterém je možné si zapnout upozornění, pokud se některá instrukce nenachází v instrukční sadě I8080, ale pouze Z80. Pro konverzi mezi procesory přímo ideální funkce. Jenže zdroják stažený z GitHubu byl ve formátu assembleru ZEUS, se kterým se PASMO nekamarádí. Proto bylo nejprve nutno provést konverzi mezi formáty. Napsal jsem si k tomu sice krátký skript, který mi hodně pomohl, ale i tak se muselo dost věcí změnit ručně. Nakonec se ale kompilace podařila.
Teď zbývalo nahradit instrukce specifické pro Z80, sadou jiných instrukcí, které podporuje I8080. Takovou záměnu jsem už dělal u předchozích konverzí, takže zde žádný problém nenastal.
Problémy nastaly tehdy, když jsem se kvůli odlišné organizaci paměti v PP-01, pokusil relokovat celou hru do jiné oblasti, než ve které byla původně v ZX Spectru. Zjistil jsem, že zdroják od William Humphreyho toto neumožňuje, protože jsou v něm některé adresy v obrazových datech „natvrdo“.
Zkusil jsem je najít a přepsat na relokovatelné odkazy, ale zjistil jsem, že by to bylo na hóódně dlouho.
Naštěstí má PP-01 organizátor paměti, který umožňuje paměťové bloky „přeskupit“ tak, že výsledná paměť vypadá skoro jako u ZX Spectra. Píšu skoro, protože se mi i při sebelepším přeskupování nepodařilo na PP-01 dosáhnout většího bloku, než 40960 bajtů, což je o cca. 2KB méně, než na ZX Spectru. To je taky důvod, proč v zkonvertovaném Manic Minerovi chybí úvodní obrazovka s piánem. Jednoduše se do paměti nevlezla. Místo toho je tam nápis Manic Miner a text, že máte stisknout Enter. Rolovací text po tom, co dohraje úvodní kakofonická hudba, je ale funkční. Stejně tak automatická prohlídka všech místností, která po textu následuje.
Kvůli „přeskupování“ paměti je během nahrávání hry z SD-ROM modulu na krátký okamžik vidět na obrazovce tzv. rozsypaný čaj, což jsou herní data, která jsem potřeboval na chvíli někam odložit a jediná dostupná byla VRAM.
Jakmile se mi podařilo vytvořit spustitelnou verzi pro PP-01, nastal další problém. A to s rychlostí. Původně jsem totiž v první verzi zachoval i barvy, ale zjistil jsem, že by PP-01 muselo běžet tak 3x rychleji, aby to bylo plynulé. Proto jsem od barev upustil a místnosti jsou pouze černobílé. Ze stejného důvodu jsem také trvale vypnul hudbu v průběhu hry. Stejně i tak je hra oproti originálu pomalá. Prostě PP-01 není žádný rychlík. Možná to ale i přesto někoho zaujme a hru si stáhne a vyzkouší.
Rád bych také tímto poděkoval tvůrcům emulátoru PP-01, bez kterého by tato konverze byla nemyslitelná.
Link ke stažení je zde: https://uloz.to/!Pygm2gjWnIEU/miner-pp01-zip

Přílohy:
miner.jpg
miner.jpg [ 69.56 KiB | Zobrazeno 14147 krát ]

Autor:  EC1045.01 [ 24.06.2019, 19:26 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Výborná práce, klobouk dolu, ale z části zbytečná aneb, konverze Manic Miner na I8080 je už děsně dlouho a to na PMD-85 a to dokonce dvakrát viz:

https://pmd85.borik.net/wiki/Manic_Miner
https://pmd85.borik.net/wiki/Manic_Miner_original

PMD-85 béži taktéž na 2MHz a předpokládám, že při konverzi z Z80 na I8080 byla udělaná i optimalizace kvůli rychlosti, ne jen mechanické nahrazení instrukci co nezná I8080. A PMD-85 má VRAM úplně jinde než ZX-Spectrum ale taky odlišně řešené atributy.

Je pravda že Manic Miner je pomalejší na PMD-85 než na ZX-Spectrum ale není to nic katastrofálního … taktéž běží monochromně.

Autor:  Solaris104 [ 24.06.2019, 20:12 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Ta PMD konverze není ideální, v nějakém levelu chybí Kong atd. Takže buďte rádi, že Stamil tomu věnoval hodně času.

Autor:  Jack_Free [ 24.06.2019, 20:21 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Sice tento stroj nevlastnim, ale smekam pred kazdym kdo tohle dokaze.

Autor:  zxcygnus [ 24.06.2019, 20:29 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Ačkoli jsem PP-01 viděl funkční jen párkrát (naposledy na Bytefestu 2018) a znám spíš z doslechu dávám palec nahoru.
EC1045.01 píše:
Výborná práce, klobouk dolu, ale z části zbytečná aneb,...
Žádná konverze není zbytečná. Já bych postupoval stejně jsou-li zdrojáky k verzi na ZXS a nejsou-li k té PMD. Už jsem pár věcí disassembloval a rozluštit, co kterým kouskem kódu autor zamýšlel bývá dost často velký hlavolam. Zdrojáky ušetří hromadu práce.

Ostatně PMD 85 a PP-01 se zásadně liší v organizaci VRAM, nebo ne? Čímž narážím spíš na neobvyklosti na straně PMD (těch 6 pixelů na byte + atributy). Jak to má PP-01?

Autor:  dex [ 24.06.2019, 21:27 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

zxcygnus píše:
neobvyklosti na straně PMD (těch 6 pixelů na byte + atributy). Jak to má PP-01?


Moc zajímavě. Co bod, to barva.
Tři barevné bitplány R (8 KiO), G (8 KiO) a B (8 KiO), v každé této bance 8 bitů = 8 bodů dané barvy, kde se dá zapisovat buď do každé barevné roviny zvlášť nebo přes barvový registr "propisovat" skrz barvové roviny (dá se nastavit, do kterých barvových banek se má uložit zapsaná hodnota - například při nastavení bílé se jedním zápisem propíše informace do všech tří bank na stejou relativní adresu, při nastavení modrozelené se uloží jen do dvou).

Autor:  EC1045.01 [ 24.06.2019, 21:48 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Nejsem si teď úplně jist, ale mám pocit, že Roman Borik něco kolem Manic Miner dělal, snad novou konverzi na PMD-85. Něco okolo Manic Miner jsem se chvíli s Romanem bavil ByteFestu a s rozhovoru jsem nabyl dojmu, že děla konverzi ale lidská paměť je zrádná, tak se předem omlouvám, pokut kecám.

Proto jsem měl za to, že zdrojáky pro PMD-85 jsou, ale jak se teď pořádně divám na ty odkazy co jsem dal tak obě konverze jsou dost letité a asi k nim nebudou zdrojáky. A taky vůbec netuším, jak moc jsou věrné originálů.

Taky jsem nepsal, že ta konverze co udělal, byla úplně zbytečná, i když to tak asi vyznělo. Spíš jsem to myslitel tak že PMD-85 má úplně jinak zorganizovanou paměť než ZX-Spectrum a už jsou dvě konverze a to na I8080. Aneb jsem nepřímo narážel i na to jak maximálně využil možnosti PP-01 aby ho co nejvíce připodobnil k ZX-Spectrum. Ale je pravdou, že organizace VRAM v PMD-85 je dost atypická takže vydeorutiny z PMD-85 jsou pro PP-01 nepoužitelné.

Jinak vím o jediném stroji mimo PMD-85 a jeho klony který má velice podobně organizovanou VRAM a to MS 80 (kopie SIMENSu) deska videa má označení MS 80-351.

Autor:  dex [ 24.06.2019, 23:19 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

EC1045.01 píše:
Jinak vím o jediném stroji mimo PMD-85 a jeho klony který má velice podobně organizovanou VRAM a to MS 80 (kopie SIMENSu) deska videa má označení MS 80-351.


Též Oric (Oric-1, Atmos, Nova64, Pravetz 8D, ...) má VideoRAM organizovánu po šesticích bodů.

Autor:  misticjoe [ 24.06.2019, 23:22 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

zxcygnus píše:
Ačkoli jsem PP-01 viděl funkční jen párkrát (naposledy na Bytefestu 2018) a znám spíš z doslechu dávám palec nahoru.
EC1045.01 píše:


Mohu vzít na OldComp párty. Když Mraf bude brát ČB telku. A pokud někdo přinese ládovátko programů, pak není problém to celé rozchodit.

Autor:  rombor [ 25.06.2019, 08:26 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

EC1045.01 píše:
Nejsem si teď úplně jist, ale mám pocit, že Roman Borik něco kolem Manic Miner dělal, snad novou konverzi na PMD-85. Něco okolo Manic Miner jsem se chvíli s Romanem bavil ByteFestu a s rozhovoru jsem nabyl dojmu, že děla konverzi ale lidská paměť je zrádná, tak se předem omlouvám, pokut kecám.
Už ani ja si nespomínam, že by sme sa o tom bavili ;-), pravda ale je, že Manic Miner pre PP 01 už začal vznikať, ale pracuje (pracoval) na tom Ikon. Ja som mu iba sem-tam niečo korigoval a aj spakoval levely, aby sa mu to vošlo do pamäte. Neviem, v akom štádiu to má teraz, ale čo mi posledné ukazoval, tak to bol len ten úvod a možnosť zobraziť všetky levely a bolo to celé vo farbe.

Autor:  ikon [ 25.06.2019, 10:48 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Stamil ma svojimi PP-01 prvotinami veľmi inšpiroval, tak som sa pustil do konverzie Manic Minera, pretože to je naozaj ZX kultovka. Žiaľ nedokázal som tomu venovať potrebný čas, takže som sa v polovici tohto mesiaca zasekol na konverzii dát v leveloch do formátu, ktorý by bol vhodný a priamo použiteľný pre video RAM PP-01. A práve som zistil, že sa tomu už venovať netreba, lebo Stamil ma predbehol a vy si už môžete zahrať Manica na PP-01. Moja konverzia mala ambíciu byť plnofarebná a čo najvernejšia, ale vzhľadom na neotestovaný reálny grafický "výkon" som si nebol istý či sa to podarí. Nedokončené demo si môžte stiahnuť na http://sindik.at/data/manic_pp.zip

Autor:  dex [ 25.06.2019, 14:46 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

misticjoe píše:
Mohu vzít na OldComp párty. Když Mraf bude brát ČB telku.

K PP-01, které se grafikou a barevností vyrovná Sinclairu QL? Není to škoda? Proč ne barevnou?

Autor:  misticjoe [ 25.06.2019, 15:07 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Protože bych si musel ubastlit RGB kabel, což nevidím moc reálně...

Autor:  Busy [ 25.06.2019, 16:29 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

dex píše:
misticjoe píše:
Mohu vzít na OldComp párty. Když Mraf bude brát ČB telku.
K PP-01, které se grafikou a barevností vyrovná Sinclairu QL? Není to škoda? Proč ne barevnou?
Ano, toto ako prve napadlo aj mna. PP01 je svojou grafikou co bod to farba medzi osembitmi uplne vynimocne (spolu s IQ151), je preto vyslovene skoda ze to nie je farebne. Chapem ze by to zabralo viac miesta a slo pomalsie, ale s tym sa podla mna urcite da nieco urobit...

Autor:  misticjoe [ 25.06.2019, 18:38 ]
Předmět příspěvku:  Re: Manic Miner pro PP-01

Já si myslím, že krásně barevně by šel udělat třeba Tetris nebo Poing (https://www.mobygames.com/game/amiga/po ... Id,709400/). Tam toho CPU času asi není moc potřeba.

Stránka 13 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/