OldComp.cz

Komunitní diskuzní fórum pro fanoušky historických počítačů


Právě je 29.03.2024, 01:13

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 40 ]  Přejít na stránku 1, 2, 3  Další
Autor Zpráva
 Předmět příspěvku: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 18:53 
Offline
Kecálek

Registrován: 26.01.2019, 18:45
Příspěvky: 99
Bydliště: u Mělníka
Has thanked: 7 times
Been thanked: 240 times
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 13915 krát ]
Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 19:26 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 783
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
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ě.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 20:12 
Offline
Pan Štábní
Uživatelský avatar

Registrován: 12.05.2013, 19:23
Příspěvky: 1910
Bydliště: Vsetín
Has thanked: 517 times
Been thanked: 812 times
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.

_________________
cs.speccy.cz, ondraspo186.8u.cz, zx-spectrum.cz


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 20:21 
Offline
Pan Generální
Uživatelský avatar

Registrován: 30.01.2014, 12:46
Příspěvky: 2757
Bydliště: Trutnovsko
Has thanked: 137 times
Been thanked: 270 times
Sice tento stroj nevlastnim, ale smekam pred kazdym kdo tohle dokaze.

_________________
ZX 81, Zx Spectrum & microdrive, Sinclair QL 2xFDD 3,5´(SD-QL, QubIDE, SGC), ZX Spectrum +2, Didaktik M, Commodore C64 I , Commodore C64 II Ultimate cart, Commodore C128, Commodore Amiga 500, Amiga 600HD, Atari 800XL SDrive, Atari 520ST & HXC usb floppy emulator. --- XBOX 360, Playstation 2, XBox ONE, Oric atmos, Enterprise 128, a několik PC a notebooku.....


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 20:29 
Offline
Pan Generální
Uživatelský avatar

Registrován: 18.05.2013, 14:56
Příspěvky: 2332
Has thanked: 303 times
Been thanked: 637 times
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?

_________________
https://cygnus.speccy.cz ZX Spectrum 128k, Betadisk, DivIDE, ESXDOS


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 21:27 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
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).


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 21:48 
Offline
Profík

Registrován: 15.01.2014, 20:08
Příspěvky: 783
Bydliště: Šlapanice
Has thanked: 129 times
Been thanked: 97 times
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.

_________________
Ne všichni jsme měli z češtiny za jedna, aneb jsem dyslektik a dysgrafik.

http://www.sapi.cz/


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 23:19 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
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ů.


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 24.06.2019, 23:22 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10111
Bydliště: Praha
Has thanked: 1953 times
Been thanked: 1517 times
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.

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 25.06.2019, 08:26 
Offline
Radil
Uživatelský avatar

Registrován: 13.05.2013, 17:48
Příspěvky: 529
Bydliště: Košice
Has thanked: 423 times
Been thanked: 265 times
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.

_________________
https://pmd85.borik.net - PMD 85 Emulátor, PMD 85, PMD 32-SD
https://pp01.borik.net - PP 01 Emulátor, PP 01, SD-ROM Modul


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 25.06.2019, 10:48 
Offline
Kecka

Registrován: 13.05.2013, 08:58
Příspěvky: 36
Has thanked: 174 times
Been thanked: 39 times
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


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 25.06.2019, 14:46 
Offline
Pan Štábní

Registrován: 12.05.2013, 22:24
Příspěvky: 1508
Bydliště: u Prahy
Has thanked: 44 times
Been thanked: 380 times
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?


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 25.06.2019, 15:07 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10111
Bydliště: Praha
Has thanked: 1953 times
Been thanked: 1517 times
Protože bych si musel ubastlit RGB kabel, což nevidím moc reálně...

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 25.06.2019, 16:29 
Offline
Óm Nejvyšší

Registrován: 22.05.2013, 21:14
Příspěvky: 3642
Bydliště: Bratislava
Has thanked: 371 times
Been thanked: 788 times
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...


Nahoru
 Profil  
 
 Předmět příspěvku: Re: Manic Miner pro PP-01
PříspěvekNapsal: 25.06.2019, 18:38 
Offline
Site Admin
Uživatelský avatar

Registrován: 11.05.2013, 23:48
Příspěvky: 10111
Bydliště: Praha
Has thanked: 1953 times
Been thanked: 1517 times
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.

_________________
Amiga/Amstrad/Atari/Commodore/Mac/Nintendo/PS/PC/Sega/Tandy/ZX


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 40 ]  Přejít na stránku 1, 2, 3  Další

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 7 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz