EMULATORY ZX SPECTRUM Jakiô czas temu pisaîem na îamach naszego Magazynu o doôê dobrym emulatorze ZX Spectrum o niezbyt oryginalnej nazwie ZX Spectrum Emulator v1.7. Od chwili ukazania sië tego programu minëîo juû jednak trochë czasu, pokazaîy sië teû nowe emulatory tego doskonaîego komputera. Warto wiëc chyba przyjrzeê sië im nieco dokîadniej. Jarosîaw Horodecki Pierwszy z omawianych emulatorów przeznaczony jest jedynie dla Amig wyposaûonych w koôci AGA. Niezupeînie rozumiem powód takiego ograniczenia, poniewaû liczba kolorów dostëpnych w starych Amigach jest w zupeînoôci wystarczajâca na potrzeby ZX Spectrum. Emulator potrzebuje teû procesora MC68020 lub szybszego oraz systemu w wersji 3.0. Wymagane jest równieû okoîo 1 MB wolnej pamiëci. Sam emulator pod wzglëdem zgodnoôci z komputerem ZX Spectrum plasuje sië na wysokiej pozycji. Jak zapewnia autor, jest to ciâgle jeszcze wersja beta programu, z pewnoôciâ wiëc wersja koïcowa bëdzie jeszcze staranniej dopracowana. Autor zapewnia równieû, iû w sposób nieco bardziej przyjazny dla systemu zostanâ zaprogramowane odwoîania emulatora do ekranu Amigi. Byê moûe wiëc nowsza wersja bëdzie dziaîaîa takûe na starszych Amigach, nie wyposaûonych w koôci AGA. W obecnej ta czëôê procedur zakodowana jest na poziomie hardware'u i emulator zupeînie nie radzi sobie z koôêmi graficznymi ECS czy OCS, stosowanymi w starszych modelach. Jednoczeônie takie rozwiâzanie powoduje, iû program po przejôciu do trybu emulacji nie daje moûliwoôci równoczesnego korzystania z innych aplikacji uruchomionych w systemie. Jest to chyba jedna z jego najwiëkszych wad. Po uruchomieniu samego programu najpierw jednak wyôwietlane jest na ekranie Workbencha okno, w którym znajduje sië kilka opcji regulujâcych wspóîpracë emulatora z systemem Amigi. Przede wszystkim sâ to opcje umoûliwiajâce wczytywanie oraz nagrywanie programów na dysk. Istotnâ zaletâ jest tutaj moûliwoôê wczytywania plików, z programami dla ZX Spectrum, zapisanych w róûnych formatach, z których korzystajâ inne napisane dotychczas emulatory. W omawianej wersji skorzystaê moûna wprawdzie tylko z dwóch formatów (omawianego juû na naszych îamach emulatora ZX Spectrum v1.7 oraz jednego z emulatorów napisanych dla komputerów PC), autor zapowiada jednak w przyszîoôci umoûliwienie wczytywania takûe innych stosowanych na róûnych komputerach formatów. Dodatkowâ zaletâ programu jest moûliwoôê nagrywania pamiëci ZX Spectrum w jednym z dostëpnych formatów, ZXAM moûe wiëc z powodzeniem sîuûyê jako, na razie doôê prosty, konwerter. W omawianym okienku znajdujâ sië dodatkowo dwie opcje sîuûâce do przechodzenia w tryb emulacji. Pierwsza z nich uruchamia zatrzymany program lub teû przechodzi do wykonywania wîaônie wczytanego pliku. Druga natomiast przed przejôciem w tryb emulacji resetuje dodatkowo komputer. Moûna dziëki temu rozpoczâê pracë w BASICU ZX Spectrum. Sama emulacja jest doôê dobra. Na Amidze 1200 z pamiëciâ Fast szybkoôê dziaîania poszczególnych programów wyglâdaîa na identycznâ z oryginaîem, a jeûeli ktoô bëdzie w stanie wychwyciê jakiekolwiek spowolnienia, to z pewnoôciâ nie bëdâ one znaczne. Emulacja grafiki jest zupeînie zadowalajâca, kolory sâ dobrze dobrane, grafika przedstawiana jest w zasadzie bez zarzutu, nie widaê ûadnych przekîamaï. Pewne zastrzeûenia moûna mieê jedynie do jakoôci dúwiëku generowanego przez emulator. Na przykîad w grze >Jet Set Willy< muzyka z czoîówki nie jest dobrze odtwarzana. Muzyce podczas gry nie moûna jednak niczego zarzuciê. Podobnie w innych grach, raz muzyka jest odtwarzana zupeînie dobrze, innym razem wydobywajâce sië z gîoônika dúwiëki majâ niewiele wspólnego z oryginalnâ ôcieûkâ dúwiëkowâ programu. Mimo wszystko trzeba jednak przyznaê, ûe jakoôê caîej emulacji jest nieco lepsza niû w omawianym przez nas emulatorze ZX Spectrum v1.7. Tak wyglâda obraz programu ZXAM w oczach przeciëtnego uûytkownika, który skoncentruje sië na przypominaniu sobie dawnych szlagierów. Warto jednak wspomnieê o kilku cechach emulatora, które mogâ zainteresowaê osoby o nieco wiëkszych ambicjach. Emulacja kodu maszynowego procesora Z80 jest zrobiona bardzo dobrze. Oprócz wszystkich rejestrów danych procesora Z80 emulowany jest teû rejestr R oraz rejestr znaczników F (bez dwóch nie uûywanych bitów). Emulowany jest takûe tryb arytmetyki BCD (Binary Code Decimal) opartej na binarnym zapisie liczb dziesiâtkowych. Nie spotykanâ w innych emulatorach ZX Spectrum na Amidze cechâ jest takûe umiejëtnoôê rozpoznawania nie publikowanych rozkazów procesora Z80. Jest to doôê cenna wîasnoôê, gdyû stosunkowo duûa grupa programów napisanych dla tego komputera, zwîaszcza tych nowszych, korzysta z tych rozkazów. Nie sâ emulowane natomiast przerwania NMI (nie ma to zbyt wielkiego sensu), nie do koïca dziaîa teû emulacja zmiany koloru ramki. Nie jest moûliwe uzyskanie jakichkolwiek dodatkowych efektów zwiazanych z moûliwoôciâ szybkiego zmieniania tego koloru. Niezbyt dobrze jest teû emulowana synchronizacja ekranu z wykonywanym programem. Niektóre obiekty w grach mogâ wiëc niekiedy migaê. Duûe kîopoty natomiast wystâpiâ z pewnoôciâ przy próbie uruchamiania bardziej zaawansowanych programów demonstracyjnych. Emulator ZXAM jest wiëc, mimo kilku nieznacznych uproszczeï, stosunkowo wiernâ kopiâ ZX Spectrum, niemalûe w peîni oddajâcâ dziaîanie swego pierwowzroru. Przyjrzymy sië jeszcze drugiemu programowi, który speînia të funkcjë. Nie bëdë go juû szczegóîowo opisywaî, postaram sië jedynie przedstawiê jego najbardziej istotne wady i zalety. Otóû ZX Spectrum Emulator podobnie jak ZXAM nie daje moûliwoôci korzystania z innych programów podczas jego dziaîania. Najprawdopodobniej równieû tutaj powodem sâ bezpoôrednie odwoîania do rejestrów ukîadów graficznych. Niemniej jednak moûliwe jest uruchomienie emulatora zarówno na Amidze 500, jak i Amidze 1200, jednak z wykorzystaniem trybu ECS. Szybkoôê dziaîania emulatora sprawdzaîem na dwóch maszynach: zwykîej Amidze 1200 z pamiëciâ Fast oraz Amidze 500 z procesroem MC68030/40MHz. W pierwszym wypadku emulacja byîa zauwaûalnie wolna, jednakûe na szybszej Amidze emulator dziaîaî juû nieco za szybko. Trudno jest mi natomiast cokolwiek powiedzieê o sprawnoôci dziaîania poszczególnych programów. Emulator ten korzysta, niestety, z doôê nietypowego sposobu zapisu programów. Naleûy po prostu zgraê na dysk pliki z prawdziwego ZX Spectrum, a emulator bëdzie je odpowiednio dotyczytywaî. Niestety, udaîo mi sië znaleúê tylko trzy programy zapisane w tej formie: >Knight Lore, Alien 8< oraz >Underwurlde<. Wszystkie one dziaîaîy bez zarzutu. Jedynie na ich podstawie nie mogë jednak oceniê zgodnoôci tego emulatora z oryginaîem. Moûliwe jest wprawdzie wczytywanie programów poprzez sampler, niemniej jest ono doôê kîopotliwe, gdyû najprawdopodobniej procedury odczytu z taômy nie sâ do koïca dopracowane. Wbrew informacjom autora o ich doskonaîym dziaîaniu, nie udaîo mi sië wgraê ûadnego programu. Powody jednak mogâ byê takûe inne: zîe ustawienie gîowicy w magnetofonie, sîaba jakoôê nagrania lub niezbyt wysokiej jakoôci sampler. Liczba przeprowadzonych testów wskazuje jednak na wadë programu. Doôê ciekawym rozwiâzaniem jest natomiast stworzenie czterech wersji emulatora. Dwie z nich udajâ zwykîe ZX Spectrum, kolejne dwie natomiast ZX Spectrum z podîâczonym rozszerzeniem Interface I. Aby skorzystaê z tego drugiego programu, naleûy jednak mieê oprócz pliku THEROM.Z80 (zawierajâcego wizerunek pamiëci ROM ZX Spectrum), plik SHADOW.Z80 z ROM-em wspomnianej przystawki. Do ciekawszych funkcji naleûy teû zaimplementowanie przerwania NMI, moûna je wykorzystaê przy pisaniu wîasnych programów w kodzie maszynowym. Nie przypuszczam jednak, aby ktokolwiek sië o to pokusiî. Z dodatkowych funkcji warto wymieniê jeszcze moûliwoôê wydrukowania ekranu na drukarce, a takûe zgrania caîej zawartoôci pamiëci emulatora na dysk, z moûliwoôciâ póúniejszego jej wgrania. Niestety, format danych w ten sposób zrzuconych nie jest zgodny z formatem wykorzystywanym przez jakikolwiek inny emulator. Mogë spokojnie stwierdziê, ûe chyba ûaden z tych dwóch emulatorów nie przewyûsza omawianego przeze mnie programu ZX Spectrum Emulator v1.7. Kaûdy z nich ma oczywiôcie swoje niekwestionowane zalety, w obu tych programach zastosowano równieû wiele ciekawych rozwiâzaï. Ogólnie jednak ustëpujâ one, moim zdaniem, najstarszemu z nich, którego teû do dzisiaj uûywam. Tytuî: ZXAM Spectrum Emulator AGA Wersja: 1.3 Autor: Antonio J. Pomar Rosselo Rodzaj: freeware Îatwoôê obsîugi: 8/10 Jakoôê emulacji: 7/10 Szybkoôê dziaîania: 8/10 Ogólnie: 8/10 Tytuî: ZX Spectrum Emulator Wersja: 4.7pb Autor: Jeroen Kwast Rodzaj: shareware Îatwoôê obsîugi: 4/10 Jakoôê emulacji: 7/10 Szybkoôê dziaîania: 7/10 Ogólnie: 6/10