bocianu.atari.pl

Emulacja FujiNet w emulatorze Altirra

Data publikacji:15.10.2021


Kilka słów wstępu

Zakładam, że skoro tutaj trafiłeś to doskonale wiesz czym jest FujiNet, a jeżeli jeszcze nie wiesz, to koniecznie odwiedź stronę tego projektu i wracaj tutaj po więcej. Do niedawna aby korzystać z dobrodziejstw jakie daje nam to urządzenie trzeba było mieć fizyczny egzemplarz, ale dzięki wielu zaangażowanym w ten projekt osobom, udało się uruchomić emulację Fujineta w jednym z najlepszych emulatorów ośmiobitowego Atari: Alitirze.

Dla mnie - jako programisty - to super wygoda i ułatwienie podczas pisania programów korzystający z sieci, pomimo, że posiadam fizyczny egzemplarz. Ale i komuś niekoniecznie zainteresowanemu programowaniem, zabawa z FujiNetem może dać dużo radości i pozwoli wypróbować ten genialny wynalazek.

Czego potrzebujemy?

Instrukcja ta zakłada, że mamy system Windows 10. Wykorzystywać będziemy także "Windows Subsystem for Linux" który zaraz wspólnie zainstalujemy. Zakładam, że mamy tez zainstalowanego w systemie gita i pythona. No i oczywiście Altirrę.

Zróbmy sobie wirtualnego FujiNeta

Zacznijmy od emulacji samego urządzenia, a dopiero potem spróbujemy je sprzęgnąć z emulatorem. Do skompilowania kodu wirtualnego urządzenia, będziemy potrzebowali środowisko linuksa, które od niedawna jest łatwo dostępne z poziomu windowsów. Wystarczy doinstalować sobie podsystem WSL i uzyskamy w pełni funkcjonalną linuksową konsole, wraz z wszystkimi potrzebnymi narzędziami.

Zacznijmy od wydania w konsoli windows następującego polecenia:

wsl --install

Polecenie to ustawi naszą domyślną dystrybucję jako ubuntu, pobierze i zainstaluje odpowiednie komponenty i przy okazji każe nam zrestartować komputer. Po instalacji, przy pierwszym uruchomieniu w oknie konsoli zostaniemy zapytani o nazwę użytkownika i hasło. Po ich podaniu mamy gotowy do pracy podsystem linux.


UWAGA! Poniższa instrukcja kompilacji może ulec zmianie wraz z rozwojem aplikacji. Dziś zadziała, jutro może być już nieaktualna, więć zawsze warto postępować w/g aktualnej instrukcji ze strony autora: README.md


Najpierw zainstalujemy sobie wszystkie biblioteki i narzędzia, niezbędne do skompilowania emulatora:

sudo apt update
sudo apt install libbsd-dev libexpat-dev libssl-dev cmake g++

następnie pobieramy najnowsze źródła:

git clone https://github.com/a8jan/fujinet-pc.git

i kompilujemy:

cd fujinet-pc/build
cmake .. -DCMAKE_BUILD_TYPE:STRING=Debug
cmake --build .
cmake --build . --target dist

Wszystkie pliki potrzebne do uruchomienia edytora znajdują się w katalogu dest. W katalogu tym znajduję się także katalog SD. Pliki umieszczone w tym katalogu będą widoczne w naszym #FujiNecie jako zawartość wirtualnej karty SD.

Pozostało nam tylko uruchomić emulator:

cd dist
./run-fujinet

Powinniśmy zobaczyć komunikaty o starcie urządzenia. Zostawiamy to okienko otwarte, będziemy mieli w nim podgląd na komunikaty systemowe, informacje o połączeniach, transferach i ewentualnych błędach. Aby zatrzymać urządzenie naciskamy Ctrl+C.

Aby skonfigurować teraz nasz wirtualny egzemplarz urządzenia, otwieramy przeglądarkę i wpisujemy:

http://localhost:8000/

Wyświetli nam się strona konfiguracyjna urządzenia. Nie będę tutaj opisywał wszystkich funkcji i ustawień, bo nie o tym jest ten poradnik. Skupimy się tylko na tych istotnych dla podpięcia urządzenia do Altirry. Zjeżdżamy sobie zatem na sam dół, aż do sekcji EMULATOR SETTINGS i włączamy transmisję SIO po sieci. Jako adres ustawmy nasz lokalny komputer (127.0.0.1).

emulator settings

Naciskamy SAVE i gotowe. Nasz emulator już nasłuchuje komunikatów SIO w sieci lokalnej. Teraz pozostało nam tylko nauczyć Altirrę jak te komunikaty wysyłać i odebrać i jesteśmy w domu.

Uczymy Altirre jak rozmawiać z FujiNetem

Aby Altirra wiedziała jak komunikować się z naszym wirtualnym urządzeniem, potrzebujemy dwóch rzeczy:

  • emulatora samego urządzenia SIO jako wtyczka do Altirry,
  • mostka sieciowego, który zepnie nam komunikację SIO pomiędzy wirtualnym FujiNetem a wtyczką

Obydwa narzędzia znajdują się w jednym repozytorium i pobieramy je sobie stąd:

fujinet-emulator-bridge

Instrukcja instalacji jest w pliku README.md, ale znajdziesz ją tez poniżej. Gdyby coś jednak poszło nie tak, sprawdź plik README, bo może coś się zmieniło od czasu pisania tego poradnika.

Pierwsze nasze zadanie to skopiować dwa pliki z repozytorium do odpowiednich podkatalogów w katalogu gdzie mamy zainstalowany emulator Altirra. Najpierw plik netsio.atdevice kopiujemy do /extras/sampledevices, a następnie netsio-hub.py do /extras/deviceserver.

W pierwszej kolejności wystartujmy nasz mostek sieciowy, który nam zepnie urządzenia. Wchodzimy do katalogu /extras/deviceserver i wydajemy polecenie:

python netsio-hub.py

W okienku zobaczymy komunikat o starcie mostka. A przynajmniej powinniśmy o ile mamy zainstalowanego pythona w wersji 3 lub wyższej.

Następnie uruchamiamy Altirrę, wchodzimy do ustawień (Alt-S), wybieramy Peripherials->Devices. Kilkamy Add, przewijamy liste na sam dół, wybieramy Custom Device.

emulator settings

Naciskamy OK i wskazujemy w ścieżce plik netsio.atdevice z katalogu /extras/sampledevices

Następnie wchodzimy w ustawienia Computer->Acceleration i odznaczamy opcję Fast Boot:

emulator settings

Dla pewności warto sprawdzić czy nie mamy nic zamontowanego w emulatorze jako napęd D1 i możemy restarować Altirrę. Jeżeli wszystko zrobiliśmy dobrze, Altirra powinna wystartować i załadować obraz konfiguratora FujiNet z wirtualnego urządzenia:

emulator settings

Wybieramy "wirtualną sieć" Dummy Caffe, podajemy puste hasło i to wszystko. Jesteśmy w sieci!

Teraz wystarczy dodać pierwszego hosta do naszej listy serwerów.

Nacisnij E i wprowadź wybrany adres. Może to być na przykład fujinet.pl. Następnie wybierz i zamontuj sobie wybrany obraz i ciesz się siecią w emulowanym Atari :)

emulator settings

Miłej zabawy!