Aloha!
Ostatnio nabyłem jak do tej pory najbardziej nietypową maszynę do grania/emulacji. ZX-UNO. Coś na bazie FPGA – Field-programmable gate array.
W czym rzecz, z czym to się je? Nie popełnię chyba gafy, jeżeli napiszę, że to emulator 'bare metal’, czyli emulacja bezpośrednio na rdzeniach FPGA, bez pośrednictwa innego systemu operacyjnego. Bo, czego by nie mówić, na przykład RetroPie jest instalowane na Raspberry Pi OS. Czyli gdzieś tam w tle jest pewien 'opóźniacz’, który pośredniczy w emulacji. W przypadku ZX-UNO nie ma o tym mowy. Ja akurat nie jestem purystą i na tyle, na ile gram na emulatorach – lag (czyli opóźnienie w reakcji na interakcję użytkownika) nie przeszkadza mi, albo go po prostu nie odczuwam.
Do ZX-UNO przekonało mnie na tę chwilę jednak co innego – ZX Spectrum i jego demoscena. Chciałem poza tym spróbować czegoś nowego. Uruchomienie go zajęło mi chwilę głównie z powodu mojego lenistwa oraz obaw przed spaleniem – nie wiedziałem dokładnie jaki nabyć zasilacz. Okazało się, że niepotrzebnie się martwiłem, ponieważ pasuje jakikolwiek, byle napięcie było około 5V i końcówka odpowiednia. Polaryzacją nie ma się co przejmować, płyta ZX-UNO V2 jest wyposażona w zabezpieczenie uniemożliwiające spalenie go w wypadku 'odwróconej’ wtyczki.
Sam sprzęt wygląda jak na zdjęciach poniżej, ja kupiłem go wraz z prostą obudową oraz kablem Audio-Video. Co ważne – klawiatura musi być w standardzie PS/2, obraz mamy po VGA, dźwięk po jack’u stereo. Joysticki w standardzie Kempston (czyli standardowy dla Atari i Commodore DE-9).
Oprogramowanie musi znaleźć się na karcie SD, ważne aby był tam ESXDOS – http://www.esxdos.org/index.html oraz pliki dla danej platformy.
Poniżej, na zakładce ROMs, wybieramy typ ZX Spectrum jaki ma się nam uruchomić – Pentagon 128? Proszę bardzo. ZX Spectrum +2? Bez problemu.
Przy starcie ESC Please select boot machine:
W przypadku ZX Spectrum (jak na mój stan wiedzy i jak to rozumiem) automatycznie emulowany jest najlepszy możliwie sprzęt, jeżeli jest włączony w parametrach (New G. modes włączyłem) – czyli ZX Spectrum 128K z interfejsem Turbosound oraz układem ULAPlus.
Po uruchomieniu wystarczy wybrać Ctrl+Alt+F5 i mamy możliwość przeglądania plików na karcie SD. Można się zabrać do spijania śmietanki!
Demo Mescaline synesthesia
Demo Aeon
Demo Ahh. The tape loading era!
Nie mówiąc już o ostatnich grach wydanych na ZX Spectrum:
Aby móc komunikować się z komputerem lub choćby uruchomić jakąkolwiek grę, potrzebny jest monitor i magnetofon oraz klawiatura czyli urządzenia peryferyjne. Obsługą tych urządzeń zajmuje się wspomniany wyżej ULA, który spełnia wszystkie podstawowe funkcje.
Emulacja bare metal i odtwarzanie starych systemów w FPGA to dwie zupełnie różne rzeczy. Z tym pierwszym mamy do czynienia wtedy, gdy ktoś napisze emulator w taki sposób, byt uruchamiał się bezpośrednio po starcie komputera – zamiast systemu operacyjnego. Wtedy wszystkie operacje są wykonywane bezpośrednio na sprzęcie, bez pośrednictwa jądra systemu, co pozwala na zmniejszenie opóźnień wprowadzanych przez jądro systemu i łatwiejsze spełnienie zależności czasowych.
FPGA to jednak coś innego. Taki układ jest programowalnym zbiorem SPRZĘTOWYCH bloków logicznych, które można konfigurować i łączyć ze sobą w różnych konfiguracjach, w oparciu o dostarczony kod. Dzięki temu w takim układzie można odtwarzać rozmaite układy logiczne – od prostych konstrukcji z kilku bramek na całych komputerach skończywszy. Mamy więc do czynieni z tworzoną tymczasowo reprezentacją hardware’u w krzemie, a nie w postaci programu komputerowego uruchomionego na procesorze. FPGA bliższa jest fizycznej replice komputera z układów scalonych i pozwala na uzyskanie znacznie większej kompatybilności.
Bardzo dziękuję za komentarz! Sprostuję to co napisałem, nie jestem w tym temacie specjalistą. Mam nadzieję, że JESZCZE nie jestem 😉