Zrób to sam – retro konsola do gier Lakka

Opublikowane:

30.07.2021

Dystrybucja Lakka posiada wszystko, czego potrzebujemy do grania w retro gry. Umożliwia ich instalacje bezpośrednio z interfejsu użytkownika, a wszystko, czego potrzebujemy, to Raspberry Pi i, najlepiej, zwykły pad.

Dystrybucja Lakka posiada wszystko, czego potrzebujemy do grania w retro gry. Umożliwia ich instalacje bezpośrednio z interfejsu użytkownika, a wszystko, czego potrzebujemy, to Raspberry Pi i, najlepiej, zwykły pad.

Autor: Anzela Minosi

W czasie pandemii na popularności zyskały nie tylko seriale Netfliksa, ale też gry komputerowe. Jednak najnowsze konsole, Nintendo Switch czy PS5, są drogie, a to sprawia, że dystrybucje Linuksa takie jak Lakka [1] są tym bardziej interesujące. Lakka działa nawet na Raspberry Pi 3, które aktualnie można dostać za niecałe 200 zł. Innymi słowy, za retro konsolę, którą sami zbudujemy, zapłacimy tylko część tego, co musielibyśmy uzbierać przy najnowszych konsolach od Nintendo lub Sony.

 

 

 

 

Własnoręcznie wykonana konsola z grami retro nie wymaga zbyt wiele ręcznej pracy. Wystarczy umieścić Raspberry Pi w odpowiedniej obudowie i podłączyć do monitora lub TV. W przypadku Lakka nie potrzebujemy nawet klawiatury i myszki. Wejście może być obsługiwane przez pad, na przykład Logitech F310 [2]. Warto jednak, dla własnej wygody, zachować klawiaturę. Nie tylko ułatwia wprowadzanie tekstu, ale też możemy przypisać klawiszom dodatkowe funkcje.

Funkcje

Dystrybucja Lakka oparta jest na odtwarzaczu multimediów LibreELEC [3]. System operacyjny nie potrzebuje wiele miejsca na dysku twardym. Mamy tu do czynienia z kompaktowym obrazem ISO o rozmiarze 400 MB. Oparcie na LibreELEC sprawia też, że wszystkie pliki, wliczając w to jądro, po aktualizacji są w najnowszej wersji, dzięki czemu nie musimy instalować poszczególnych pakietów. RetroArch [4] odgrywa rolę interfejsu graficznego użytkownika, przez co otrzymujemy system, który sam się konfiguruje, dzięki funkcji autoconfig w RetroArch. Przykładowo z padów możemy korzystać zaraz po uruchomieniu.

Lakka współpracuje z różnymi komputerami [5], wliczając w to wiele rodzajów Raspberry Pi, od Pi Zero po aktualne Raspberry Pi 4. Zgodnie z dokumentacją Raspberry Pi 3 zachowuje dobrą kompatybilność z Lakka. Jednak bardziej wymagające gry, jak na przykład pochodzące z PlayStation, nie działają płynnie.

Instalacja

Asystent pobierania na stronie projektu pomoże nam wybrać właściwy obraz [6], który następnie rozpakowujemy, zanim zapiszemy go na karcie pamięci Raspberry Pi. Pracując jako użytkownik Linuksa, możemy wtedy przenieść system na kartę SD poleceniami:

$ gunzip Lakka.img.gz

# dd if=Lakka.img of=/dev/status=progress; sync

Odpowiedni identyfikator urządzenia docelowego napędu możemy określić za pomocą polecenia lsblk. Użytkownicy innych systemów operacyjnych mogą skorzystać z zewnętrznych narzędzi, takich jak Etcher [7].

Po zapisaniu karty microSD odnajdziemy na niej dwie partycje. Jeśli chcemy skonfigurować monitor i dźwięk, powinniśmy przejść do edycji pliku config.txt na partycji LAKKA. Jednak obraz zwykle sam się dostosowuje do wykorzystywanego monitora. Jak tylko uruchomimy Raspberry Pi z nowym obrazem, Lakka automatycznie powiększy partycje z danymi użytkownika i obrazami gier (LAKKA_DISK), więc nie musimy robić tego ręcznie.

b01-lakka-hauptmenu

Rysunek 1: Po menu Lakka możemy poruszać się za pomocą pada. Korzystając z klawiatury, nawigujemy klawiszami kursora, Enterem i Backspace’em.

Konfiguracja

Dzięki automatycznej konfiguracji zmiany w systemie są przeważnie niepotrzebne. Warto jednak dostosować niektóre ustawienia. Po menu poruszamy się za pomocą klawiszy kursora na klawiaturze lub krzyżaka na kontrolerze. Wciśnięcie Enter przenosi nad do podmenu lub aktywuje/wyłącza ustawienia.

W przypadku pada wciśnięcie Azatwierdza wybór, a B cofa nas o jeden krok. Kiedy wprowadzamy tekst (na przykład nazwę użytkownika) z klawiatury ekranowej, kończmy wpisywanie, wciskając Start. Twórcy Lakka umieścili też na stronie projektu diagram pada [8], z którego możemy skorzystać w roli wzorca do skonfigurowania swojego kontrolera.

Jeśli chodzi o konfigurację, to najpierw włączamy opcję Settings | User Interface | Show Advanced Settings. Nie każdy polubi niebieski kolor, który jest domyślny w systemie (Rysunek 1). Możemy go zmienić w menu Settings | Menu | Menu Color Theme. Możliwych ustawień jest tak wiele, że warto zapisać konfigurację do pliku. Aby to zrobić, korzystamy z opcji Configuration | Save Current Configuration.

Aktualizacja

W nieregularnych odstępach czasu pojawiają się nowe wersje Lakka. Aktualizację możemy uruchomić z interfejsu graficznego. W głównym menu przechodzimy do Online Updater | Update Lakka i wybieramy odpowiedni obraz. Jeśli system nie pokazuje nowych wersji, chociaż twórcy opublikowali nowe wydanie, klikamy na odnośniki w Settings | Network | Online Updates [9].

Najbezpieczniejszym sposobem na pełną aktualizację jest reinstalacja. Gdy tylko pojawi się nowe wydanie, pobieramy obraz i przechodzimy proces opisany powyżej w sekcji „Instalacja”. Pamiętajmy o wykonaniu kopii danych, wliczając w to zrzuty ekranu, obrazy gier oraz zapisy postępów i pliki gier. W razie potrzeby weryfikujemy lokalizacje na partycji LAKKA_DISK i odpowiednie katalogi z Settings | Directories.

Jeśli wolimy aktualizować system z konsoli, możemy się do niej dostać jedynie przez SSH. Powinniśmy włączyć wcześniej tę usługę w Settings | Services | SSH Enable. Potrzebujemy też adresu IP naszej konsoli Lakka. System podaje ten adres w menu Information | Network Information. Mając wszystkie te dane, piszemy

$ ssh root@

$ lakka-update

w konsoli maszyny linuksowej, aby rozpocząć aktualizację. W domyślnej konfiguracji hasło użytkownika root to root.

Ustawienia

W grach sieciowych ważne jest, aby inni gracze mogli nas zidentyfikować. Lakka skorzysta z nazwy, jaką zdefiniowaliśmy w Settings | User | Username. Więcej ustawień do gry w sieci znajdziemy w menu Settings | Network | Netplay. Znajdziemy tu między innymi miejsce do wpisania adresu IP serwera i jego portu.


Jeśli Raspberry Pi nie wydaje żadnego dźwięku przy grze, upewnijmy się, że dźwięk został włączony. Aby to zrobić, usuwamy z urządzenia kartę pamięci i otwieramy na standardowym pececie plik config.txt na partycji LAKKA. Powinniśmy zakomentować znakiem krzyżyka (#) wpis dtparam=audio=on. W samym Lakka, w menu Settings | Audio musi być włączona opcja Audio Enable. Z podmenu Audio Device możemy wybrać różne sterowniki audio.

Pady możemy skonfigurować automatycznie, dzięki wcześniej wspomnianej konfiguracji kontrolera na stronie Lakka. Aby to zrobić, przełączamy opcję Settings | Input | Autoconfig Enable na On. Jeśli nie podoba nam się przypisanie przycisków na padzie, możemy zmienić je w Settings | Input | InputBinds.

Obrazy gier

Lakka umożliwia ładowanie gier z sieci. Wybieramy w tym celu, w głównym menu, pozycję Online Updater | Content Downloader. Po przejściu w to miejsce wybieram emulator i dostępne gry. Przykładowo, jeśli zdecydujemy się na grę Sheep It Up! Z emulatora Atari 2600 (Rysunek 2), Lakka automatycznie pobierze ją i zapisze na partycji LAKKA_DISK w katalogu roms/downloads/. Aby uruchomić grę, przechodzimy do Load Content | downloads w głównym menu i wybieramy odpowiedni obraz gry.

Alternatywą mogą być róże strony (jak Rom Hustler lub Vimm’s Lair) oferujące do pobrania obrazy gier z klasycznych konsol. Jednak przy pobieraniu zwróćcie uwagę na status prawny obrazów – jedynie kilka z nich dostępnych jest w wolnym obiegu. W niektórych przypadkach status gry nie jest jasny, ponieważ oryginalny deweloper już nie istnieje (abandonware), a to, co jest dostępne, to często nielicencjonowane kopie.

b02-sheepitup

Rysunek 2: Gra Sheep It Up! może być pobrana za pośrednictwem Lakka. Niech nas jednak nie zmyli styl retro: gra opracowana dla Game Boya pochodzi z 2018 roku.

b03-fight-zelda

Rysunek 3: Bohater Zeldy w The Adventure of Link jest ciągle atakowany.

b04-formula-1

Rysunek 4: Formula 1 to gra, w której piksele są dosyć wyraźne. Warto sprawdzić różne filtry, aby zoptymalizować jej wyświetlanie na monitorze.

Po pobraniu mamy w Lakka kilka różnych opcji załadowania obrazu gry. Jeśli włączyliśmy SSH na Lakka Raspberry Pi i korzystamy z maszyny linuksowej, menedżer plików będzie dobrym wyborem. Większość menedżerów plików pod Linuksem wspiera otwieranie zdalnych systemów plików. Na komputerach z pulpitem Gnome, takich jak Ubuntu, otwieramy pasek adresu menedżera plików, wciskając Ctrl+L, przechodzimy do systemu Lakka poleceniem:

ssh://root@

i kopiujemy obraz gry do /storage/roms/. Możemy go też przenieść bezpośrednio z terminala, za pomocą:

scp .zip root@:/storage/roms

W przypadku użytkowników Windowsa alternatywą jest Samba. Rozpoczynamy, włączając usługę w menu Settings | Services | Samba Enable. Następnie otwieramy Eksplorator plików i wpisujemy adres IP w pasku adresu, w formie \. Podobnie działa to pod Linuksem i macOS-em. Adres dostępowy do udziału Samby na konsoli Lakka to smb://. Podobnie jak wcześniej, w przeglądarce plików, przechodzimy do katalogu /storage/roms/ i wklejamy pobrane obrazy gier. Nie musimy wcześniej rozpakowywać archiwów.

Lakka może też ładować obrazy gier z dowolnego katalogu pamięci USB. Zaczynamy od podłączenia pamięci do konsoli, następnie przechodzimy do Load Content | Scan Directory i wybieramy z menu pamięć USB. Kiedy już otworzymy katalog z obrazami, zaznaczamy pozycję Scan this Directory. Jeśli obrazy przejdą pomyślnie weryfikację Lakka, system załaduje odpowiednie emulatory do menu. W ten sposób uzyskamy dostęp do gier.

Dodatki

Gry z wieloma poziomami czasami wydają się niemożliwe do ukończenia. Nasz bohater ciągle odchodzi do krainy wiecznych łowów. Problem ten ewidentnie przeszkadzał twórcom Lakka, którzy zaimplementowali kilka funkcji, dzięki którym gry pozostają przyjemne. Przypuśćmy, że zdecydowaliśmy się przejść przez kilka poziomów gry Zelda II – The Adventure of Link (Rysunek 3), ale nie udaje nam się zrobić żadnych postępów. Wciskamy więc F2, aby zapisać aktualny stan gry. Jeśli coś się stanie, możemy wybrać F4, aby wrócić do ostatnio zapisanego stanu gry, bez utraty życia.

Jeszcze ciekawsza jest funkcja Rewind (Cofnij) włączana w menu kontekstowym danej gry, eliminująca potrzebę zapisywania stanu. Możemy do niej przejść, wciskając przycisk RGUI na padzie, który zwykle znajduje się pomiędzy przyciskami Start i Select, a oznaczony jest logiem producenta. Przechodzimy wtedy do Rewind | Rewind Enable, aby włączyć tę funkcję. Jeśli nasz bohater zakończy swój żywot, kilkukrotnie wciskamy R na klawiaturze, dopóki postać nie znajdzie się w bezpiecznym miejscu.

Starsze gry, jak Formula 1 (Rysunek 4), Sonic the Hedgehog (Rysunek 5) lub The Legend of Zelda (Rysunek 6) mają bardzo wyraźne piksele, szczególnie na większych monitorach. Oryginalnie tworzone były z myślą o telewizorach. Możemy to naprawić, przechodząc w menu kontekstowym danej gry do Shader Options | Load Shader Preset i wybierając filtr. Przykładowo, xsoft/4xsoft wygładza piksele, a inne filtry sprawiają, że gry wyglądają wyraźniej.

b05-sonic-the-hedgehog

Rysunek 5: Jeśli w latach 90. XX w. byliście nastolatkami, znacie pewnie grę Sonic the Hedgehog. Dzięki Lakka możemy ją uruchomić na Raspberry Pi.

b06-legend-zelda

Rysunek 6: Pierwsza część Zeldy, The Legend of Zelda, ma dosyć niską rozdzielczość. Również w tym przypadku filtry pomagają udoskonalić obraz.

Wnioski

Lakka w dużej części może być kontrolowana za pomocą interfejsu graficznego, więc przynajmniej ta część jest intuicyjna. System jest też gotowy do użycia przy pierwszym rozruchu, co, jak widać w przypadku innych, własnoręcznie budowanych konsol, nie jest łatwe do osiągnięcia. Lakka wiele zyskuje na tym, że stan gier można zapisywać. Dodatkowo, funkcje filtrów graficznych sprawiają, że gry są przyjemniejsze. Szczególnie przy wykorzystaniu zaawansowanych ustawień, możemy uzyskać lepsze efekty, chociaż nie są one obowiązkowe. Podsumowując, dystrybucja ta to dobry wybór, jeśli chcemy szybko i bez zbędnych przestojów pograć w starsze gry.

Autor: Więcej przydatnych projektów Pete’a Metcalfe’a i jego córek można znaleźć pod adresem: https://funprojects.blog

Info

[1] Lakka: http://lakka.tv

[2] Logitech F310: https://www.logitechg.com/en-us/products/gamepads/f310-gamepad.940-000110.html

[3] LibreELEC: https://libreelec.tv

[4] RetroArch: https://www.retroarch.com

[5] Obsługiwany sprzęt: http://www.lakka.tv/doc/Hardware-support/

[6] Strona do pobrania Lakka: http://lakka.tv/get/

[7] Etcher: https://www.balena.io/etcher/

[8] Mapowanie przycisków pada: http://lakka.tv/doc/Input-settings/

[9] Obrazy Lakka: http://le.builds.lakka.tv/

Aktualnie przeglądasz

Sierpień 2021 - Nr 210
LM210_Aug-2021

Top 5 czytanych

Znajdź nas na Facebook'u

Opinie naszych czytelników

Nagrody i wyróżnienia