Pierwsze kroki z Raspberry Pi: RPi jako emulator komputera ZX Spectrum i konsoli Neo Geo
W poprzednich częściach cyklu artykułów poświęconych komputerowi jednopłytkowemu Raspberry Pi przedstawiliśmy zasady kompilacji i uruchomienia kilku natywnych gier, które na trwałe wpisały się w historię multimedialnej rozrywki, tj. Quake III, Quake II czy Return to Castle Wolfenstein. Na przykładzie tych pozycji przekonaliśmy się, że dzięki dużej mocy obliczeniowej i wydajnemu układowi GPU, zestaw Raspberry Pi można zastosować nie tylko w typowych aplikacjach kontrolno-pomiarowych, ale również do wymagających zadań multimedialnych. W tej części cyklu będziemy kontynuować tematykę zastosowań multimedialnych i gier komputerowych. Tym razem jednak cofniemy się w historii elektronicznej rozrywki o kilkanaście lat wstecz. Wykorzystując emulatory takich komputerów/konsol jak ZX Spectrum, Atari 2600, NeoGeo czy PSX, zamienimy nasze Raspberry Pi w centrum multimedialnej rozrywki, dzięki któremu odżyją niejedne wspomnienia. Nasz przegląd dostępnych dla platformy Raspberry Pi emulatorów przeprowadzimy w porządku chronologicznym – zaczniemy od konsol, które swoją rynkową premierę miały w drugiej połowie lat 70., jak np. Atari 2600, a skończymy na konsoli PSX, którą jeszcze niedawno można było znaleźć w domach wielu miłośników elektronicznej rozrywki.
ZX Spectrum
Naszym kolejnym przystankiem na drodze historii gier komputerowych będzie ZX Spectrum (fotografia 1). Komputer ten, który swoją światową premierę odnotował w roku 1982, należy do grupy tzw. domowych mikrokomputerów. Jego sercem był mikroprocesor Zilog Z80A o częstotliwości taktowania 3,54 MHz. Komputer posiadał 16 lub 48 kB pamięci RAM oraz 16 kB pamięci ROM. Sama historia i proces sprzedaży komputera przypomina sytuację, gdy na rynku pojawił się zestaw Raspberry Pi – popyt na produkt znacznie przerósł możliwości produkcyjne, stąd od momentu złożenia zamówienie go jego realizacji, na wczesnym etapie sprzedaży, okres oczekiwania wynosił od 12 do 16 tygodni.
Fot. 1. Wygląd komputera ZX Spectrum
Dzięki bardzo dużej liczbie programów użytkowych oraz gier ZX Spectrum na stałe zapisał się w historii komputerów, również i w Polsce (np. komputer ZX spectrum został wykorzystany do montażu efektów specjalnych w filmie „Seksmisja” oraz do przeprowadzenia słynnej akcji sabotażowej nazywanej potocznie „Telewizją Solidarności”). Aby mieć możliwość poznania chociaż namiastki magii ZX Spectrum, na zestawie Raspberry Pi przekompilujemy i zainstalujemy emulator Fuse.
Emulator Fuse (Fuse Unix Spectrum Emulator), jak sama nazwa wskazuje, w pierwotnej wersji został zaprojektowany dla systemów Unixowych. Obecnie program ten jest przeportowany na wiele innych systemów (Windows, Mac OS X) i urządzeń (Wii, PSP, Xbox). Fuse został wydany na licencji GNU GPL, stąd też mamy pełny dostęp do źródeł, które posłużą nam do zbudowania wersji binarnej. Zaczynamy…
Pierwszym krokiem jest pobranie ze strony projektu Fuse (http://fuse-emulator.sourceforge.net) archiwów zawierających kod źródłowy emulatora (archiwum fuse-1.0.0.1a.tar.gz) oraz niezbędnej do jego kompilacji i uruchomienia biblioteki libspectrum (archiwum libspectrum-1.0.0.tar.gz). Po pobraniu kompletu plików przystępujemy do ich rozpakowania:
tar xvzf libspectrum-1.0.0.tar.gz tar xvzf fuse-1.0.0.1a.tar.gz
Proces kompilacji rozpoczynamy od biblioteki libspectrum:
cd libspectrum-1.0.0 ./configure && make sudo make install
W kolejnym kroku kompilujemy i instalujemy Fuse:
cd fuse-1.0.0.1a ./configure && make sudo make install
Po kilkunastu minutach kompilacji możemy już uruchomić nasz emulator poleceniem:
fuse
lub w przypadku problemów z dźwiękiem:
fuse -no-sound
Interfejs użytkownika emulatora Fuse prezentuje się następująco:
Rys. 2. Interfejs użytkownika emulatora Fuse
Pliki z grą (ROM-y) obsługiwane przez emulator posiadają rozszerzenie *.tzx. Załadowanie pliku z grą jest możliwe po wybraniu z górnego paska menu opcji Media -> Tape -> Open lub poprzez wybór klawisza F7. Jeżeli gra nie została uruchomiona automatycznie, wówczas wybieramy kolejno klawisz J a następnie kombinację CTRL+PP. Pracę z emulatorem możemy zakończyć wybierając przycisk F10.
Emulator Fuse jest również dostępny w repozytoriach dystrybucji Debian, dzięki czemu możemy również i w tym przypadku w prosty sposób pominąć etap kompilacji kodu źródłowego:
sudo apt-get install fuse-emulator-common sudo apt-get install spectrum-roms fuse-emulator-utils
Nie pozostało nam już nic innego jak cieszyć rozgrywką i zarazem frustrować wysokim poziomem trudności takich gier jak Manic Miner, Fairlight, Saboteur i wielu innych.
Rys. 3. Manic Miner na emulatorze Fuse
Rys. 4. Saboteur na emulatorze Fuse