r   e   k   l   a   m   a
r   e   k   l   a   m   a

Retro dla Raspberry Pi. Emulujemy PlayStation, Nintendo 64 i inne klasyki

Strona główna AktualnościOPROGRAMOWANIE

Uruchamianie amigowych gier na Raspberry Pi może dać wiele satysfakcji – młodsi dowiedzą się, jak to było kiedyś, starsi przypomną sobie złote czasy rozrywki. O ile jednak Amiga 500 była u nas popularnym sprzętem, to z konsolami do gier (nie licząc słynnego Pegasusa, pod którą to nazwą sprzedawano rozmaite klony Nintendo Entertainment System) już za ciekawie nie było. Mnóstwo dostępnych tylko na lepsze konsole gier nigdy do nas nie dotarło, a dziś poznać je możemy przede wszystkim dzięki emulacji. I właśnie w kolejnej części naszego cyklu poświęconego Malinie przyjrzymy się emulacji konsol. Tu dopiero Raspberry Pi 2 pokaże swoje możliwości, gdyż odpowiednio skonfigurowana uruchomi nie tylko tytuły dla pierwszych czterech generacji konsol (a więc włącznie z Super Nintendo), ale też pozwoli na „odpalenie” wielu znakomitych gier dla pierwszego PlayStation czy Nintendo 64, maszyn znacznie wydajniejszych przecież od pierwszych modeli Amigi.

Emulacja dla wygodnych

Ogromna popularność Raspberry Pi doprowadziła do powstania gotowych linuksowych dystrybucji, które dostarczają prekonfigurowane emulatory konsol (i nie tylko konsol), owiniętych w wygodny interfejs użytkownika – EmulationStation. Interfejs ten powstawał od początku z myślą o Malinie, i co ciekawe, na Malinie. Jego twórca, programista znany jako Aloshi, chciał uzyskać wieloplatformowe środowisko do zarządzania emulatorami, kontrolerami i obrazami ROM-ów, dzięki któremu pozostałoby jedynie uruchomić komputerek, skonfigurować wszystko co trzeba w kilku krokach – i grać w swoje ulubione gry. Udało mu się to nieźle, a efekty jego pracy najłatwiej poznać poprzez dwa projekty, które tu przedstawimy: recalboxOS oraz RetroPie.

Recalbox: zagraj w to jeszcze raz

Łącznie ponad trzydzieści emulowanych systemów (i kilkanaście stworzonych przez niezależnych programistów retro-gier dla nich na dzień dobry) – tym pochwalić się może rozwijany przez grupę francuskich deweloperów Recalbox. Dostępny w wersjach zarówno dla pierwszej jak i drugiej generacji Malin, w założeniu służyć ma więcej, niż tylko software'owej emulacji.

r   e   k   l   a   m   a

Autorzy zachęcają do zrobienia na bazie Raspberry Pi z Recalboxem swoich retro-maszynek – automatów do gier. Kwestie takiego majsterkowania pozostawiamy póki co Waszemu uznaniu, pokażemy za to, jak z Recalboxa skorzystać w postaci czysto software'owej.

Potrzebna będzie czysta karta microSD (jak zwykle najlepiej Class 10), o pojemności przynajmniej 8 GB. Aktualną wersję Recalboxa znajdziemy na GitHubie. W momencie pisania tego tekstu ostatnie stabilne wydanie z marca 2015 nosiło numer 3.2.11, ale śmiało możemy sięgnąć po nową wersję beta z serii 3.3 – stabilności jej nie brakuje, kolejne bety przynoszą poprawki i ulepszenia. Pobrane archiwum ZIP należy rozpakować do oddzielnego katalogu, a następnie całą jego zawartość skopiować dowolnym menedżerem plików do głównego katalogu karty microSD. Jak widać, nie ma tu żadnego wypalania obrazów, jak to było np. w wypadku Raspbiana. Po pierwszym uruchomieniu z karty zawierającej pliki recalboxa uruchomiony zostanie instalator, który dokona podziału na partycje i zainstaluje właściwą dla naszego sprzętu wersję oprogramowania (przygotowano oddzielne kompilacje dla Raspberry Pi 1 oraz 2). 3-4 minuty wystarczą, by powitał nas interfejs Emulation Station z klasyczną melodyjką Zeldy.

Pierwszą rzeczą, którą powinniśmy zrobić po uruchomieniu interfejsu jest konfiguracja. Wiele osób doceni, że nie będzie musiała w tym celu dłubać w konsoli. Jest to możliwe, Recalbox udostępnia nam zarówno terminal, do którego wejdziemy naciskając F4, a następnie Alt-F2 (login: root, password: recalboxroot), jak i połączenie przez SSH. Najważniejsze ustawienia zmienimy jednak także w graficznym w menu, które wywołać można naciskając Enter. Nawigujemy po nim albo za pomocą pada (jeśli zadziałał nam przy starcie, albo klawiatury – obsługiwane są klawisze kursora, S zatwierdza wybór, A pozwala wrócić.

Znajdziemy w tym głównym menu ustawienia systemowe, gdzie m.in. można włączyć overclocking, wybrać język interfejsu (nie ma tu póki co polskiego), zaktualizować oprogramowanie, oraz ustawienia gier, gdzie m.in. można włączyć format obrazu (4:3 i 16:9), wygładzanie pikseli, mechanizm rewind (pozwalający na cofnięcie czasu w grach, gdy powinie się nam noga), oraz ustawić shadery, dzięki którym stare gry będą znacznie lepiej wyglądały na współczesnych wyświetlaczach – dostępne są obecnie dwa tryby, scanlines oraz retro.

Pod względem obsługi kontrolerów wciąż jest jeszcze sporo do zrobienia. Najlepiej oczywiście działają te standardowe kontrolery SNES-a, można też podłączyć DualShocka 3 (z PlayStation), ale nie działa on po kabelku, lecz tylko przez Bluetooth, co gorsze wiele adapterów Bluetooth normalnie działających z Raspberry Pi też odmawia współpracy. Poprawnie za to działa pad Xboksa, o ile posiadamy dla niego specjalny moduł radiowy. Na pociechę można powiedzieć, że jako kontroler można skonfigurować klawiaturę, wbudowano też w Recalboksa obsługę do czterech wirtualnych gamepadów na ekranie smartfona z Androidem. Należy w tym celu w przeglądarce Chrome/Chromium po prostu wpisać adres IP naszej Maliny w sieci lokalnej. Bardzo użyteczne, gdy odwiedzą nas koledzy.

Recalbox pozwala też na modyfikację interfejsu użytkownika (dostępnych jest kilka skórek dla EmulationStation, sporo innych można znaleźć w Sieci, ustawienie wyjścia audio (HDMI/minijack), modyfikację zachowania wygaszacza ekranu i temu podobnych drobiazgów. Dostajemy też scraper, pobierający z Internetu opisy zainstalowanych gier, oraz co chyba najbardziej przydatne, odtwarzacz mediów Kodi, działający jako niezależna aplikacja, skompilowany ze wsparciem dla akceleracji sprzętowej GPU w Raspberry Pi.

Jeśli potrzebujecie bardziej złożonych modyfikacji konfiguracji sprzętowej Maliny, trzeba będzie jednak wyjść do konsoli i zajrzeć do pliku /boot/config.txt, tak jak to opisaliśmy w części poświęconej emulacji Amigi. W szczególności lepiej tam ustawić overclocking, gdyż ustawienia z graficznego interfejsu na niewiele nam pozwalają, w szczególności nie można włączyć tak trybu Turbo.

Warto też zapoznać się z plikiem /recalbox/share/system/recalbox.conf. W nim możemy zmienić ustawienia sterowników padów, sieci czy dźwięku, ale co najważniejsze, można zdefiniować tu szczegółowe ustawienia poszczególnych emulatorów – wykorzystywany tryb wideo, shadery, proporcje, pliki konfiguracyjne itp. Dokładny opis poszczególnych opcji znajdziecie tutaj.

Gry nie spadną z nieba

Sporym atutem Recalboksa jest dostarczenie w zestawie kilkunastu darmowych, otwartych gier na retro-platformy. Większości graczy to jednak nie wystarczy, będą pewnie też zdziwieni, że na ekranie startowym z obiecywanych dziesiątek platform znajdą tylko kilka. Wyjaśnienie tego stanu rzeczy jest proste. EmulationStation wyświetla jedynie te emulatory, dla których znalezione zostały ROM-y – obrazy gier.

O statusie prawnym abandonware już wspominaliśmy, sami deweloperzy Recalboksa niespecjalnie się jednak tą kwestią przejmują, nawet otwarcie odsyłają do francuskich stron-katalogów, hostujących obrazy klasycznych gier. Zakładając, że posiadacie gry te na oryginalnych nośnikach, instalując je na Malinie nie naruszacie prawa. Jak jednak wgrać taki obraz do Recalboksa? Jest to bardzo proste. Wystarczy po uruchomieniu i podłączeniu Maliny do domowej sieci, w swoim pececie poszukać udostępnionych zasobów – w grupie WORKGROUP serwera Recalbox. Wykorzystując zwykły protokół CIFS (Samba) wystarczy przegrać do katalogu Recalbox\roms obrazy gier. W razie potrzeby, do katalogu Recalbox\Bios przegrywamy zaś obrazy systemowego firmware emulowanych konsol (ponownie – zakładając, że posiadamy gdzieś tam taki sprzęt). Po restarcie, EmulationStation przedstawi nam wszystkie konsole, dla których obrazy gier wgraliśmy.

W razie problemów z Sambą w sieci lokalnej, można wykorzystać wbudowany w Recalboksa serwer WWW – po podaniu przeglądarce adresu IP naszej Maliny zobaczymy webowy panel sterowania, przez który można zrobić z systemem praktycznie wszystko, w tym także wgrywać ROM-y i konsolowe firmware metodą przeciągnij-i-upuść.

By to wszystko uruchomić, Recalbox wykorzystuje liczne opensource'owe emulatory sprzętu z projektu libretro, wśród nich NES (fceu-next), Super Nintento (snes9x-next oraz pocketsnes-libretro), MAME (imame4all-libretro), Sega Megadrive (picodrive) oraz co chyba dla wielu będzie najciekawsze, PlayStation (pcsx_rearmed). Eksperymentalnie dostajemy też emulację Nintendo 64 (mupen64plus). W wielu wypadkach bez firmware z oryginalnej konsoli nic nie zrobimy, ale są emulatory, które poradzą sobie bez tego – na przykład emulator PlayStation ma własny BIOS HLE, który pozwala na uruchomienie setek tytułów bez żadnych problemów.

Warto tu jeszcze wspomnieć o atrakcjach dla oszustów – wersja 3.3.0 Recalboxa wprowadziła obsługę bazy danych cht z projektu libretro – dość powiedzieć, że chodzi o NIESKOŃCZONE ŻYCIA (i inne ułatwiacze). Jeśli nie byliście w stanie kiedyś przejść danej gry na konsoli, wystarczy wgrać do katalogu /recalbox/share/cheats pożądane poprawki z bazy, a następnie podczas gry wywołać menu retroarcha, w nim wybrać core Cheat options > Cheat file load i potwierdzić załadowanie.

Nintendo64: twardy orzech do zgryzienia

Największym jak dotąd wyzwaniem dla emulacji konsol na Malinie pozostaje Nintendo 64. Uruchamianie gier pisanych dla tego największego rywala PlayStation odbywa się za pomocą zoptymalizowanego na architekturę ARM emulatora Mupen64Plus, który nie został jeszcze w pełni połączony z Recalboxem. Nie dostaniemy więc specjalnych komend wywoływanych przyciskiem ustawionym jako Hotkey, ręcznie też trzeba będzie przygotować jego ustawienia. Sama kompatybilność też pozostawia trochę do życzenia. Są gry działające świetnie, są takie, które renderowane są z widocznymi błędami, są też takie, których nie idzie w ogóle uruchomić. Domyślnie wykorzystywana jest wtyczka gliden64, ale w wielu wypadkach pomóc może zmiana opcji n64.core na rice lub n64. Wgrywanie obrazów gier odbywa się jednak tak samo – kopiujemy plik do katalogu n64.

RetroPie: alternatywa nie tylko konsolowa

Choć Recalbox jest naprawdę świetnym projektem, nie jest jedynym. Wydaje się, że bardziej nawet znany od niego jest RetroPie (a przynajmniej o RetroPie częściej piszą media zza oceanu). Dystrybucja ta w wielu kwestiach jest do Recalboksa podobna, w wielu się od niego różni. To też jest „opakowanie” na EmulationStation, też do dyspozycji dostajemy dziesiątki emulatorów libretro, też kopiujemy obrazy ROM-ów przez sieć lokalną. Kluczową różnicą jest jednak lista zastosowanych emulatorów – oprócz konsol dostajemy też komputery domowe, w tym ZX Spectrum, Atari 800 XL, Commodore 64 i Amigę, lepiej sprawuje się wykrywanie padów, można wgrywać obrazy gier także przez pendrive.

Czemu zatem nie zaczęliśmy od RetroPie? Ten zbudowany niemal w całości na bazie Raspbiana system jest znacznie bardziej czasochłonny w konfiguracji – w zasadzie skazani jesteśmy albo na dłubanie w plikach konfiguracyjnych, albo używanie skryptu raspi-config, który uruchomimy dopiero po wyjściu z EmulationStation (F4, a następnie dowolny klawisz). Brakuje także polepszających jakość obrazu shaderów, wsparcia dla trybu oszustw czy wirtualnych gamepadów.

Warto jednak RetroPie wypróbować – a nuż będzie Wam odpowiadał bardziej, niż Recalbox. Na oficjalnym blogu projektu znajdziecie obrazy kart SD (rozprowadzane jako coffeeware, autorzy proszą, by postawić im kawę), w wersjach dla Raspberry Pi 1 i Zero, oraz Raspberry Pi 2. Na Windowsach obraz taki zgramy na kartę za pomocą aplikacji Win32 Disk Imager, na Linuksie i Maku wystarczy systemowe dd (jak to zrobić opisane zostało w części poświęconej emulacji Amigi). Możemy też, dysponując działającym Raspbianem (w wersji Wheezy, z nowym Jessie jest trochę problemów) pobrać skrypt RetroPie, który w systemie zainstaluje niezbędne dla tego agregatora emulatorów pliki.

Po uruchomieniu RetroPie, możemy skonfigurować system za pomocą obsługiwanego z konsoli narzędzia sudo raspi-config. Należy zacząć od rozszerzenia systemu plików – w tym celu wybieramy pierwszą opcję z menu, Expand Filesystem. Po komunikacie Partition will be resized on your next reboot należy nacisnąć Enter, wyjść z menu i zrestartować Pi.

Jeśli chcecie podkręcić Malinę w RetroPie, czeka Was niespodzianka. Katalog /boot jest pusty – a pusty jest, bo nie zamontowany. Najprościej dostać się do niego za pomocą peceta. Po włożeniu karty microSD do czytnika, zobaczymy dwie partycje, retropie i boot. Otwieramy tę drugą, tam znajduje się odchudzony plik config.txt. Po szczegółowe informacje o konfiguracji odsyłamy do poprzedniego odcinka, tutaj trzeba jedynie wspomnieć, by zmienić domyślne ustawienia ilości RAM udostępnionej układowi graficznemu Videocore. Stawiamy w tym celu znak kratki (#) przed liniami zaczynającymi się od gpu_mem, a następnie dopisujemy własny wiersz: gpu_mem=512. 512 MB przyda się szczególnie przy emulacji wymagających gier z PlayStation.

Koniec grania, czas na naukę

To już wszystko na temat emulacji starych systemów na Raspberry Pi 2, mamy nadzieję, że poradniki te przydadzą się Wam na okres świąteczno-noworoczny. A gdy się on skończy, zajmiemy się czymś, do czego Malina została oficjalnie powołana – edukacją. Jak zapewne wiecie, na oficjalnych obrazach Raspbiana dostajecie dzięki umowie z firmą Wolfram Research jedno z najpotężniejszych narzędzi matematycznych, jakie stworzono – program Mathematica. Jest on równie potężny, co i kosztowny – podstawowa, domowa licencja to wydatek rzędu 200 euro, tymczasem z Maliną dostajemy specjalną wersję całkowicie za darmo. Szkoda, by takie narzędzie się marnowało, więc w następnym odcinku serii o Raspberry Pi pokażemy Wam, jak wykorzystać je w zmaganiach z szkolnymi zadaniami matematycznymi.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.