----------------------------------------------- History ------- $Id: introduction.txt,v 1.1.1.1 2001/11/30 22:10:58 cvsroman Exp $ $Log: introduction.txt,v $ Revision 1.1.1.1 2001/11/30 22:10:58 cvsroman Initial CVS release. ----------------------------------------------- Dokumentace k programu ZX2MZ verze 0.1 -------------------------------------- Tento program je urcen k prevadeni programu a her z pocitace ZX Spectrum na pocitac Sharp MZ-800. Program byl napsan v jazyku Java. Pro svuj beh vyzaduje JDK 1.3 a knihovny Xerces (1.3.x) a JDOM (beta7). Druha cast programu - emulacni rutiny hardwaru ZX - byla napsana ve strojovem kodu Z80 a nachazi se take u tohoto programu ('etc/emu.mzf'). Cely proces konverze hry se sklada z nasledujicich kroku -------------------------------------------------------- * nejprve je nutne upravit nejaky emulator ZX Spectra, aby generoval reportovaci soubor o jeho behu. Ja jsem pouzil emulator XZX verze 2.9.3, diff soubory pro jeho upravu jsou soucasti tohoto programu. Lze pouzit i emulator ZX48 napsany Zdenkem Adlerem, jehoz soucasti jiz zmineny generator reportu je. * Spustime upraveny emulator, jeho vystup presmerujeme do souboru ('> soubor'). Pote vybereme hru, kterou chceme prekonvertovat a spustime ji v emulatoru. * Dostatecne dlouho hru hrajeme, abychom zajistili, ze emulator prosel vsechna mista pristupu hry na hardware Spectra (zkousime vsechny typy obrazovek hry, ruzna ovladani - klavesnice/kempston, atd..). Kdyz jsme si jisti, ze jsme prosli vsim, cim jsme meli, ukoncime emulator (XZX - F10). * Souboru s vystupem z emulatoru dame priponu .log, je to nas emulacni 'report', ze ktereho budeme vychazet. * Z log souboru vytahneme reportovy XML soubor (zacina na ' ed b0 12 ed b0 ed a0 ed a0 77 77 36 00 ed a0 ed a0 ed a0 77 cb 16 cb 1e ed a0 ed a0 ed a0 cb 1e 12 ed b0 ed b0 7e 7e 46 cb 16 cb 1e 7e cb 1e d3 fe d3 fe d3 fe d3 fe d3 fe d3 fe d3 fe d3 fe d3 fe db fe db fe db fe db fe db fe db fe db fe db fe db fe db fe db fe -------------------------- log end --------------------------- 2) Z log souboru vezmeme XML a vytvorime soubor py.xml. 3) podivame se na bloky, ktere hra narava. Je videt, ze nejprve je nahravan basicovy program (bloky 0,1), potom obrazek (2,3) a nakonec kod hry (4,5). Vzhledem k tomu, ze Pyjamarama vezme pri startu uvodni obrazek z obrazovky a pozdeji ho tam zase vraci, budeme potrebovat jak kod (blok 5), tak i obrazek (blok 3). Proto si zapamatujeme jak jejich cisla, tak i adresy, kam se nahravaly. 4) podivame se, na jake adrese se hra spousti. Z logu je videt, ze poprve kod vystoupil z ROM (adresy 0000-4000) na adresu 8110. Zkusime proto tuto adresu pouzit jako startovaci. 5) provedeme konverzi pomoci zx2mz, prikazova radka bude: zx2mz py.xml etc/emu.mzf py.mzf MeJmeno RLE 8110 tap py.tap 3 4000 tap py.tap 5 64ff Pro konverzi jsme pouzili XML report a emulacni rutiny. Dale jsme specifikovali sve jmeno (bude se objevovat na spodu obrazovky) a typ komprese (podporovana je bud zadna (Dummy) nebo Run-length-encoded (RLE)). Soucasti radky je i vystupni soubor, spousteci adresa (8110) a popis, odkud vzit zdrojova data (TAP soubor, lze i cisty binarni BIN) a kam je dat do pameti. Vysledny soubor nesmi byt delsi nez 48640 (BE00) bytu (Sharp by ho neumel nahrat), proto je v pripade Pyjamaramy nutne pouzit kompresi (v soucasnosti pouze RLE, casem muze byt i jina). 6) Vytvoreny py.mzf vyzkousime na Sharpu.