Konference: Počítač SHARP MZ-800 a emulátory
Od: | Roman Dolejsi |
Datum: | 29.3.2010 02:12 |
Předmět: | Re: Emulator ZX Spectra pro Sharpa |
K tomuhle tematu patri jeste jedno..
O dost pozdeji me to inspirovalo k napsani ZX2MZ - programku, ktery za pomoci vybraneho PC emulatoru ZX a dat z nej vytazenych (charakteristika behu hry) umi udelat cistou konverzi ZX hry na MZ hru. Jeden z vysledku prikladam jako ukazku, vcetne XML deskriptoru pro predelani ;-)
Tu technologii by slo dotahnout, jen mi nekde generuje chyby - neni zcela uspesna - a jeste stale jsem nemel cas to plne odladit - a uz je to stare 10 let ;-)..
Prikladam readme.txt, ktere jsem od toho nekde vyhrabal + ukazkove hry + jiz predeslanou ukazku XML s popisem, co hra dela - podle te konvertor pracuje..
btw. na prechodu mezi mistnostmi v Pyjamarame muzete videt, jak narocne je zkonvertovat/prepsat jeden byte barevne na Sharpa oproti jednoducheho zapisu do VRAM Spectra.. Napr. emulaci instrukce, ktera blika vsemi atributy obrazovky u Olli&Lisa jsem radsi vypnul (viz XML), jinak by se clovek dalsiho obrazu na Sharpu nedockal vubec ;-)
Na Puzznicovi zase vidite, jak maji emulacni rutiny jeste chybky a zpusobuji nehratelnost cele hry. AY hudba je ale fajn ;-)
Uzivejte ve zdravi ;-)
Roman
2010/3/29 Roman Dolejsi <rdolejsi tu byla ta zakroucena vec gmail.com>
Zdravim,
emulator ZX Spectra jsem opravdu na Sharpa napsal ja a fungoval v principu jak prave popsal Velesoft..
ROMka Spectra byla na svych nevyuzitych mistech napechovana mymi emulacnimi rutinami, ktere byly volany z nativniho kodu pomoci RST odskoku. Samozrejme slo vyuzit pouze omezene mnozstvi RST, aby ZX basic jako takovy zustal zachovany. Pri emulaci delsich instrukci jsem mel za RST odskokem jeste poradovy kod instrukce, atp. V momente, kdy se pres prepsane rutiny nahravani z kazetaku dohral blok, tento blok jsem projel, vyhledal spravne instrukce a nahradil je. Timto zpusobem byla vyresena klavesnice, joystick, emulace ZX IM2 (prace s I registrem, atd), zvuk 48 i AY emulace..
Prepis obrazovky fungoval pod prerusenim a nebyl vubec jednoduchy udelat. Obrazovka Sharpa ma nezvykle otocenou reprezentaci osmi bodu v byte. Kdyz tedy dochazi k vykreslovani cehokoli, vetsina programu musela standardne ulozene informace pred zapisem zrcadlove otacet. Sharp navic samozrejme nema atributy. Lze zapisovat danych osm bodu v urcitem modu zapisu do ruznych rovin (or, and, xor, ..), cimz je mozne nastavit jakoukoli barvu z palety 16 barev.. Tahle manipulace ma ale i sve nevyhody - kompletni obsluha takove obrazovky neni vubec rychlou zalezitosti..
Proto mel emulator moznost prepinat zobrazeni mezi barevnym a cernobilym (ktere bylo samozrejme o dost pomalejsi).
Celkove jsem tehdy mel velke problemy s dostupnym mistem v pameti. Kdyz emulator spustite, muzete si vsimnout, ze kusy kodu a konverznich tabulek jsou dokonce ulozeny ve VRAM Sharpa ;-))
Mnozstvi programu, ktere bezely, hodne zaviselo na nahode. Emulace jako takova problemy nemela. Opravdove problemy byly jen dva:
- pokud v miste odskoku na emulaci byl SP registr hrou zrovna pouzit jako ukazatel na data (tj. zasobnik neexistoval).. U grafickych rutin her tomu tak obcas bylo :-((
- pokud hra/aplikace prepisovala svuj vlastni kod na mistech emulace
- pokud ma prohledavaci rutina nasla a prepsala misto instrukci nejaka zivotne dulezita data :-)
Celkem vzato technologie fungovala, hry behaly (i kdyz pomalu), jen to melo sve mouchy :-)) Emulator prikladam, muzete posoudit, zda vubec neco zvladl ;-)))
HTH,
Roman
Zdravim,
emulator ZX Spectra jsem opravdu na Sharpa napsal ja a fungoval v principu jak prave popsal Velesoft..
ROMka Spectra byla na svych nevyuzitych mistech napechovana mymi emulacnimi rutinami, ktere byly volany z nativniho kodu pomoci RST odskoku. Samozrejme slo vyuzit pouze omezene mnozstvi RST, aby ZX basic jako takovy zustal zachovany. Pri emulaci delsich instrukci jsem mel za RST odskokem jeste poradovy kod instrukce, atp. V momente, kdy se pres prepsane rutiny nahravani z kazetaku dohral blok, tento blok jsem projel, vyhledal spravne instrukce a nahradil je. Timto zpusobem byla vyresena klavesnice, joystick, emulace ZX IM2 (prace s I registrem, atd), zvuk 48 i AY emulace..
Prepis obrazovky fungoval pod prerusenim a nebyl vubec jednoduchy udelat. Obrazovka Sharpa ma nezvykle otocenou reprezentaci osmi bodu v byte. Kdyz tedy dochazi k vykreslovani cehokoli, vetsina programu musela standardne ulozene informace pred zapisem zrcadlove otacet. Sharp navic samozrejme nema atributy. Lze zapisovat danych osm bodu v urcitem modu zapisu do ruznych rovin (or, and, xor, ..), cimz je mozne nastavit jakoukoli barvu z palety 16 barev.. Tahle manipulace ma ale i sve nevyhody - kompletni obsluha takove obrazovky neni vubec rychlou zalezitosti..
Proto mel emulator moznost prepinat zobrazeni mezi barevnym a cernobilym (ktere bylo samozrejme o dost pomalejsi).
Celkove jsem tehdy mel velke problemy s dostupnym mistem v pameti. Kdyz emulator spustite, muzete si vsimnout, ze kusy kodu a konverznich tabulek jsou dokonce ulozeny ve VRAM Sharpa ;-))
Mnozstvi programu, ktere bezely, hodne zaviselo na nahode. Emulace jako takova problemy nemela. Opravdove problemy byly jen dva:
- pokud v miste odskoku na emulaci byl SP registr hrou zrovna pouzit jako ukazatel na data (tj. zasobnik neexistoval).. U grafickych rutin her tomu tak obcas bylo :-((
- pokud hra/aplikace prepisovala svuj vlastni kod na mistech emulace
- pokud ma prohledavaci rutina nasla a prepsala misto instrukci nejaka zivotne dulezita data :-)
Celkem vzato technologie fungovala, hry behaly (i kdyz pomalu), jen to melo sve mouchy :-)) Emulator prikladam, muzete posoudit, zda vubec neco zvladl ;-)))
HTH,
Roman
2010/3/28 VELESOFT (SPRINTER) (sharpemu tu byla ta zakroucena vec pandora.cz) <velesoft tu byla ta zakroucena vec seznam.cz>
----- Original Message -----
From: "Jakub Ladman" <sharpemu tu byla ta zakroucena vec pandora.czladmanj tu byla ta zakroucena vec volny.cz>
pro dokonalou emulaci ZX Spectra. Akorat nevim jak hodne slozita by byla prace s
klavesnici.
VELESOFT
---
----- Original Message -----
From: "Jakub Ladman" <sharpemu tu byla ta zakroucena vec pandora.czladmanj tu byla ta zakroucena vec volny.cz>
To: "Konference Počítač SHARP MZ-800 a emulátory" <sharpemu tu byla ta zakroucena vec pandora.cz>
Sent: Sunday, March 28, 2010 10:02 PM
Subject: Re: Emulator ZX Spectra pro Sharpa
>
Sent: Sunday, March 28, 2010 10:02 PM
Subject: Re: Emulator ZX Spectra pro Sharpa
>
> Ahoj
> Ted nevim kde je, ale taky nekde ten emulator mam a opravdu funguje, ale dost
> pomalu.
> Podle mne to funguje tak, ze se emulovana videoram pod nejakym prerusenim
> prepisuje do realne videoram, s prislusnymi zmenami.
> Stejne tak nacitani klavesnice a pod.
No a ja si troufam tvrdit, ze by sel udelat pro SHARPa nejaky modul/interface> Ted nevim kde je, ale taky nekde ten emulator mam a opravdu funguje, ale dost
> pomalu.
> Podle mne to funguje tak, ze se emulovana videoram pod nejakym prerusenim
> prepisuje do realne videoram, s prislusnymi zmenami.
> Stejne tak nacitani klavesnice a pod.
pro dokonalou emulaci ZX Spectra. Akorat nevim jak hodne slozita by byla prace s
klavesnici.
VELESOFT
---
Ostatní příspěvky vlákna:
[2010/1 (51)] [2010/2 (48)] [2010/3 (23)] [2010/4 (40)] [2010/5 (50)] [2010/6 (23)] [2010/7 (13)] [2010/8 (54)] [2010/9 (47)] [2010/10 (243)] [2010/11 (92)] [2010/12 (98)]
[1999 (1)]
[2000 (168)]
[2001 (733)]
[2002 (459)]
[2003 (654)]
[2004 (224)]
[2005 (105)]
[2006 (182)]
[2007 (201)]
[2008 (294)]
[2009 (363)]
[2010 (782)]
[2011 (522)]
[2012 (642)]
[2013 (442)]