Emulátory (1) - Sinclair ZX-Spectrum

V prvním díle našeho krátkého seriálku se podíváme na emulátory platformy Sinclair ZX-Spectrum, která byla v Českých a Slovenských luzích a hájích pravděpodobně nejoblíbenější a nejrozšířenější.

21.11.2005 06:00 | MaReK Olšavský | přečteno 24468×

Většina z uživatelů, kteří přišli k počítačům od počátku 80. let občas s láskou vzpomene na hry, které tenkrát hrávali. Mnozí si je s láskou zahrají dodnes, buď v některém z pozdějších remaků (bohužel většinou pro platformu MS Windows), nebo v některém z emulátorů. Hry i programy byly v té době maximálně optimalizovány vzhledem k malým systémovým prostředkům, většinou byly velmi promyšlené a daly se hrát celé dny, bohužel dnes je tomu téměř naopak. Pro řadu dnešních her je třeba počítače, který bude pro většinu lidí dostupný cca za půl roku, nehledě k tomu, že řada titulů, které oslní grafikou, efekty a zvukem je dohratelná za několik hodin a dále již nemá hráči co nabídnout.

Pravděpodobně nejpopulárnější 8 bitovou počítačovou platformou v našich končinách byl Sinclair ZX-Spectrum a jeho následovníci a klony. Počítač byl stavěn kolem mikroprocesoru Zilog Z80 (tuto firmu také založili lidé, kteří odešli od Intelu, pododně jako AMD), taktovaném na dnes směšných 3.50 MHz a zákaznického chipu ULA. Nejprve byl tento počítač vybaven 16KB RAM, později 48 KB (paměť ROM byla v obou verzích 16KB) a nakonec 128 KB. Jeden z klonů (slovenský Didaktik Gama) měl trochu nestandardně ovládaných 80 KB. Zvuk obstarával jednobitový pípák. Počítač stvořila firma Sinclair, sira Cliva Sinclaira, v roce 1982 jako následovníka počítače ZX-81 a pro jeho klávesnici se pro něj vžilo označení "gumák". V roce 1984 byla na trh uvedena verze Plus, která se lišila především mnohem lepší klávesnicí a v roce 1986 přišla verze +128K, kde většina změn byla uvnitř. Mezi jinými změnami přibyl zvuk ve vydání chipu Yamaha AY-3-8910, 128 KB RAM, 32 KB ROM v módu 128K s podstatně lepším BASICem, RS-232 a Midi. V roce 1986 byla také společnost zakoupena firmou Amstrad, ale další inovace již byly minimalistické - vestavění magnetofonu a 3" disketové mechaniky (ano opravdu nestandardní tři palce). V roce 1989 vznikl "pokračovatel" legendy - SAM Coupé (jeho možnosti byly zajímavé, ale přišel příliž pozdě, v době, kdy jsme již kupovali PC, Commodore Amiga a Atari ST), který ale již nebyl úspěšný,  byť uměl být v jednom módu kompatibilní s legendou. Podobnému osudu neunikl Sinclair QL, u kterého byl neúspěch dán především zpožděním proti plánovanému a očekávanému uvedení.

Počítače Sinclair jsou pravděpodobně nejvíce klonovanou a emulovanou platformou v historii, proto není možné obsáhnout v jednom článku všechny možné emulátory. Existují pro platformy Windows, DOS, Linux, MacOS, Java, ... Vzhledem k zaměření tohoto serveru budou popsány jen některé emulátory pro platformu Linux, přičemž se pokusím vybrat ty nejlepší. Existují i emulátory Sinclair QL a SAM Coupé, ale pro tyto platformy bude pravděpodobně velmi obtížné najít software.

Technické parametry Sinclair ZX-Spectrum :-)

Mikroprocesor: Zilog Z80, frekvence 3.50 MHz

Paměť: zpočátku 16KB, později 48KB a v modelech od roku 1986 je 128KB

grafika: 256×192 bodů v 15 barvách, které jsou v rastru 32×24 "prvků" (pozice znaků na displayi)

zvuk: 1bitový beeper, později 3 (zvukové) + 1 (šumový) kanálový chip Yamaha AY-3-8910

Obliba: Veliká spojená s velikou konkurencí mezi příznivci 8 bitových platforem Sinclair, Atari a Commodore 64

Spectemu

První emulátor, který jsem nainstaloval byl Spectemu, který je emulátorem původního ZX-Spectrum 48K. Na domovské stránce projektu jsou dostupné zdrojové kódy, takže instalace se sestává z "magické trojice" ./configure && make && make install, ale i připravené binární balíky pro PC platformu. Na stránkách nejsou uvedeny žádné zvláštní požadavky pro instalaci, pouze X11 server a případně svgalib.

Emulátor se spouští příkazem xspect (máte-li spuštěno grafické prostředí XWindow), respektive v konzoli pomocí vgaspect (ke spuštění této verze budete potřebovat svgalib). Rychlost programu je velice uspokojivá a dle slov autora mu běžel v plné rychlosti i na 80486, já jsem jej provozoval jak na Athlon XP 2000+, tak na PowerPC G3/366MHz naprosto spokojen s výsledky. Za dobu používání jsem nenarazil na program (samozřejmě, že s omezením na programy na modely před +128K), který by se mi nepodařilo spustit.

Program má některá menší omezení, například trochu horší uživatelské rozhraní, než program FUSE, protože k práci s programem je zapotřebí i terminál, neumí spolupracovat s PC joysticky a především se jedná o emulátor pouze ZX-Spectrum, ne již 128K. Program pracuje se soubory *.sna a *.z80, které jsou snapshoty paměti, ale i *.tzx a *.tap, které jsou obrazy pásku a natažení programu/hry z nich je stejné, jako bylo jejich původní nahrávání z pásku, tj. včetně stejných efektů, jak zvukových, tak v borderu.

Spectemu Nahrávání programu

Stav Spectemu po startu, zde v pozadí s terminálem a rozložením klávesnice *** Věrná emulace - takto vypadalo nahrávání z pásků na Sinclairu

FUSE

FUSE je zkratka od Free Unix Spectrum Emulator (pozor fuse je i rozhraní souborového systému, takže se nespleťte při instalaci), jedná se o podstatně lepší emulátor Sinclaira, než je výše popsané Spectemu. Na jeho domovských stránkách jsou odkazy na zdrojové kódy, sestavené binární instalace pro rozšířenější distribuce Linuxu (nejen pro něj, i pro MacOS a *BSD) a potřebné knihovny (libspectrum). Například pro v ČR/SR velmi rozšířenou distribuci Mandriva je k dispozici v plf. Na desktopu jsem tento emulátor instaloval (díky tomu, že mám Mandrivu) z plf, na iBook/Linux jsem zvolil instalaci ze zdrojových kódů. Před instalací ze zdrojových kódů bych si dovolil varovat začátečníky, nejedná se o kompilaci a instalaci pouze FUSE, ale je třeba předem nainstalovat i vyžadované knihovny. Emulátor neobsahuje obrazy ROM pamětí originálního Sinclaira a proto je potřeba je postahovat z Internetu. Na stránkách http://www.srcf.ucam.org/~pak21/spectrum/roms.pl jsou k dispozici legálně se svolením majitelů autorských práv, kterým je firma Amstrad.

Program vyžaduje XWindow, libSDL a svgalib, v případě, že budete mít nainstalované GTK+ knihovny, budete mít k dispozici velmi příjemné ovládání. Instalace je bezproblematická, stejně jako funkčnost, byť na menší problémy lze narazit. V GUI programu lze v menu Options -> Select ROMs nastavit soubory s jednotlivými obrazy pevných pamětí (ROM images) počítače ZX-Spectrum, či jejich klony (Pentagon, Timex, ...). Bohužel už není možné emulátor z GUI přepnout do "jiné verze" a je potřebné toto udělat z příkazové řádky pomocí parametru, například fuse --machine 128. Výhodou je, že při příštím prostém spuštění fuse je automaticky nastavena poslední emulovaná verze. Spolupráce s PC joystickem je bezproblémová, stejně tak program nabízí emulaci mnoha dalších zařízení. Zvuk funguje přes OSS.

Pro práci s uloženými programy poskytuje potřebná knihovna libspectrum spolupráci s formáty *.sna, *z80, *.sxz, *.tzx, *.tap, *.rzx, několik dalších jen pro čtení - *.zxs, *.sp.*, *.snp, (Warajevo verze) *.tap a nakonec čte soubory *.dck, které přísluší k Timexovým cartridgím. Pro čtení souborů můžete použít obrazy uložené i v gzipu, nebo bzipu. Pokud budete chtít uložit nějaké obrázky z her, program pro to nabízí funkce přímo. V Options->Filter... si můžete zvolit zobrazení podobným způsobem, jako na TV (je vidět rastrování, případně porůznu lehce rozmazaný obraz).

FUSE se Speccy klávesnicí FUSE - General Options Nastaveni joysticku

Prázdné FUSE, jen s nápovědou o rozložení klávesnice *** Obecná nastavení FUSE *** Nastavení joysticku

XZX-Pro

V některých testech se jedná pravděpodobně o nejlépe hodnocený emulátor Sinclaira, je distribuován ve dvou verzích, jednak lze stáhnout jeho binární soubory (případně zdrojové kódy) volně šířené verze a provést instalaci, druhá cesta je zaplacení autorovi, kdy získáte vlastnosti, potlačené ve volné verzi - funkční Centronics, BetaDisk se 4 mechanikami, vylepšené rozhraní, ... takže je otázkou, zda-li bude ochoten někdo za tato vylepšení zaplatit, pokud nebude motivací pro platbu podpoření projektu... Na domovských stránkách projektu jsou ke stažení obě verze programu a najdete zde i cenu za plnou verzi (25,-€).

Program ke své instalaci vyžaduje Motif (stačí OpenMotif - http://www.openmotif.org/ ), dle dokumentace s lesstifem nefunguje. Po instalaci OpenMotif je možné přistoupit ke kompilaci a instalaci xzx-pro, opět jsem volil instalaci ze zdrojových kódů a po chvíli byl emulátor připraven k práci, tedy spíše ke hraní. Při prvním startu z terminálu (abychom viděli případné hlášky) pravděpodovně uvidíte větší množství chybových hlášek, nicméně program funguje. Jedná se většinou o chybějící ROM obrazy zařízení. Opět je standardem práce se všemi podstatnými formáty, ve kterých programy pro Speccy emulátor můžete najít.

XZX-Pro Advanced Tactical Fighter v XZX-Pro

ZXZ-Pro s několika monitorovacími panely *** Arkádové letadélko ATF v XZX-Fro

Další emulátory a zhodnocení

Do hrubého popisu, který je výše jsem se pokusil vybrat alespoň ty nejlepší emulátory (vzato subjektivně z mého pohledu). Na mnohé další se místo již nenajde, ale alespoň se pokusme jmenovat ty známější - FBZX (FrameBuffer ZX-Spectrum - Španělský emulátor, umí i Speccy 128K), X128 (Emulátor, který mohou znát někteří fandové již z DOSu), Glukalka a mohl bych zde jmenovat několik dalších, které jsou multiplatformní, protože jsou napsány na Java platformě a uživatelé dalších platforem (mimo Linuxu) najdou pro svůj systém emulátor také.

Ze zde testovaných emulátorů se mi nejvíce líbí FUSE, Spectemu je jednoduchý emulátor původního 16KB, nebo 48KB ZX-Spectra, který svůj úkol splní na 100%. XZX-Pro má (významné) mínus, protože většina uživatelů LINUXu nemá nainstalován OpenMotif (dokonce jsem jej neměl ani v archívech pro Mandrivu a musel jsem instalovat ze zdrojových kódů). Fuse má rozumnou instalaci, byť v základu chybí ROM soubory, ale poté funguje k 100% spokojenosti.

Alespoň několik obrázků z her

ATF Batman R-Type

Advanced Tactical Fighter *** Batman - temný rytíř v Sinclairu *** R-Type - i na Speccy byly pěkné hry

Závěr

Původním plánem bylo popsat několik emulátorů mé kdysi oblíbené platformy a poté pokračovat některými dalšími platformami, které tu byly - Atari, Commodore, Amiga (exemplář mám ještě stále doma), Atari ST, ale koukneme se na zoubek i emulátorům takových "raritek", jako byl SAM Coupé, Sharp MZ a MSX, kde slůvkem raritky myslím jejich nízkou penetraci, kterou měli v našich končinách.

Zajímavé odkazy

http://dmoz.org/Computers/Emulators/Sinclair/ZX_Spectrum/ - Pravděpodobně nejúplnější přehled Open Source emulátorů Sinclaira.

http://www.srcf.ucam.org/~pak21/spectrum/roms.pl - Obrazy ROM pamětí, které budete občas potřebovat, protože většinou nejsou v emulátoru obsaženy.

http://www.worldofspectrum.org/ - Zajímavé místo na Internetu, najdete tu nejen emulátory, ale i archív her a programů pro Speccy emulátory, nebo například seznam her, které byly ze Spectra přeportovány.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1027