NOBOMI začal už na Tálském mlýně pracovat na SHARP verzi dema Bad Apple. Je trochu hanba, že se na našich MZ miláčcích objevuje kultovní Bad Apple až teď, po všech těch kalkulačkách a jiných obskurních strojích, ale jak Bohouš s oblibou říká „nejsou lidi“.
Bad Apple demo běží na obou počítačích v textovém režimu 40×25 znaků a využívá se PCG (programovatelný znakový generátor). Každý znak má 8×8 pixelů, čímž je dosaženo celkového rozlišení 272×200 pixelů.
Pokud si vezmete do ruky kalkulačku, spočítáte si, že to nesedí. Ano, na šířku se používá jen 34 znaků, protože by neseděl poměr stran. SHARP předběhl dobu a už v roce 1984 měl poměr stran obrazu 16:10 a originální video od Niconico uživatele Anira má poměr stran 4:3. I tak Bohouše těch 34 znaků dost natrápilo. Během jednoho snímku se dá dost krkolomným způsobem přenést až 11 znaků bez vygenerováni waitu a ten 1 znak navíc (33+1) to zpomaloval o jeden celý další řádek.
V PCG se používá 2×256 znaků a předefinovávají se jen rozdíly. Jedna sada znaků je pro liché a druhá pro sudé snímky. Video jede na obou strojích, které se hardwarově dost liší, na slušných 20 fps. Jako komprese se používá obdoba RLE. Dalo by se určitě najít efektivnější algoritmus, ale v době kdy Unikarta bez problémů emuluje 16 MB RAM disk jsou ty 4 MB dat úplně bez problému.
Na MZ-800 se využívá obvyklý zálohovaný RAM disk kompatibilní s originálním SHARP RAM diskem MZ-1R18 a portem 0xE9 sloužícím pro přepínání 64 kB stránky. Bohužel na MZ-1500 tento typ RAM disky nefunguje a tak se musí použít EMM disk. Ten si se 4 MB daty bez problémů poradí a díky tomu jsme přišly na drobnou chybku v Unicard manažeru, které je v něm už od jara, že .MZE soubory nešly mountovat. Sypu si, jakožto tester, popel na hlavu. Naštěstí Bohouš chybku rychle našel a opravil. Pro jistotu jsem ale dal opravený manažer do souboru s demem. Demo pro MZ-1500 totiž musíte pouštět na reálném železe. Neznám emulátor MZ-1500, který umí emulovat EMM disk.
U MZ-800 je situace jednodušší, tam Bad Apple rozjedete v pohodě i v emulátoru. Spustitelný .MZF soubor je jen jeden pro oba stroje, ale data se liší. Není to tím, že by MZ-800 a MZ-1500 byly shodné stroje, hardware je dost odlišný, právě, co se týká grafiky, ale Bohouš prostě udělal univerzální binárku, která si pozná, kde běží.
Zvukový doprovod je použitý z BBC Micro, kde je rovněž zvukový obvod SN76489. Původní skladbu pro projekt Touhou zaranžoval Masayoshi Minoshima (Alstroemeria Records) a pro SN76489 upravil Inverse Phase. Můžete si všimnout, že na MZ-1500 hraje hudba o něco níž, než na MZ-800, protože má pomalejší hodiny do SN76489. Zvuk je ale vždy synchronizovaný do obrazu, takže tanečnice trsají pěkně do rytmu.
Pokud se nebude chtít zabývat originálním hardware nebo emulátorem natočil jsem video z obou počítačů a můžete se na ně podívat výše. Pro ty pravověrné mám odkaz na stažení dema Bad Apple pro SHARP MZ:
U videa MZ-1500 mi hraje jen pravy kanal, jako jen jedno sluchatko.
Jj, vim o tom, lyze sejmout 😉 MZ-1500 ma dva zvukove generatory, pro kazdy kanal zvlast. Hraje to jen do jednoho, protoze na MZ-800 je jen jeden a port pro hrani do obou na MZ-1500 nam asi koliduje s emulaci strankovani standardniho RAM disku nebo necim jeste jinym, to se musi vybadat.
Port pro oba kanály na MZ-1500 je 0xE9 (0xF2 – levý, 0xF3 – pravý). Na unikartě by tam nemělo nic překážet. Pokud se ale zapisuje na levý a pravý, tak ten levý je blokovaný emulací PSG v unikartě (pravý je volný). Že by ho to zablokovalo? To se mi nezdá, ale… To už je spíše na Bohouše 😉
Na Unikartě je na 0xE9 stránkování zálohovaného RAM disku ne? Každopádně to Bohouš zkoumal a vypadl, že si nebyl úplně jistý, čím to je.
To sice ano, ale jen pro MZ-800. U MZ-1500 je to (zatím) volné, právě aby to neblokovalo případnou emulaci obou PSG.
Šup s tím na Pouet.net!
Let me ask you this.
How do I get mz800emu to play the demo all the way through ?
By renaming bad_apple_MZ800.mzr to rd.dat, I can run mzf for the time being, but after about a minute, the video stops and I cannot proceed. The audio continued to play without stopping.
Did you set the Size of Memory Disc to 16 MB?
When I checked, it was 1MB.
So I set it to 16MB and rebooted, and it played to the end without any problems.
Thank you very much !!
You’re welcome.