Jak zbudować własną konsolę Arcade

Nie zapomnij do nas zajrzeć – > Facebook Logo Instagram Logo

Już od lat chodził za mną pomysł zbudowania własnego sprzętu do grania. Marzyła mi się wolnostojąca maszyna Arcade z wbudowanym monitorem i głośnikami niczym w dawnych salonach gier. Jednak trzeba sporo miejsca by gdzieś to trzymać, a poskładanie tak dużego urządzenia wymagałoby zarówno sporo czasu, nowych narzędzi (co akurat mimo wszystko jest dobrym argumentem żeby się tym zająć) oraz gotówki. Z tych powodów zapewne długo bym jeszcze z tym nic nie robił gdyby w moje ręce nie wpadł minikomputer Raspberry Pi Zero 2W pieszczotliwie zwany malinką. Powinien się zmieścić do obudowy od Arcade Sticka prawda?

Mały ale wariat

Jak najbardziej, mówimy przecież o sprzęcie wielkości biletu MPK, chociaż nie obyło się bez problemów. Ta mała płytka dysponuje 4 rdzeniowym procesorem 1GHz, 512MB RAM, do tego posiada wbudowane moduły Bluetooth oraz WiFi. Na tym nie kończą się jej możliwości jednak dodatkowe funkcje, nieistotne dla tego projektu, przemilczę. Niby niewiele, zwłaszcza porównując do telefonów, które nosimy codziennie przy sobie. Jednak dodajmy do tego niski pobór prądu, a co za tym idzie ilość wydzielanego ciepła, osiągając w porywach 1,5W oraz cenę poniżej 80zł. Emulacja starych konsol nie powinna stanowić problemu.

Wybór systemu operacyjnego

Nie jest to moja pierwsza styczność z tym sprzętem dlatego miałem pewne pojęcie o jego wydajności. Przyszła zatem pora by znaleźć dla niego odpowiednie oprogramowanie. Mój wybór padł na RetroPie z kilku powodów. Pierwszy to gotowy obraz ISO pod ten konkretny komputer. Dostajemy kompletną paczkę, oczywiście bez BIOS-ów. Co za tym idzie przygotowany obraz nie wymaga od nas żmudnej i ręcznej konfiguracji. Jasne, można postawić z palca gołego Debian-a by następnie zaciągnąć wszystkie potrzebne binarki i grzebać w ustawieniach ale skoro ktoś już zrobił to za nas nie ma sensu wyważać otwartych drzwi. Odpada także zabawa z optymalizacją. Ponadto ów dystrybucja jest ciągle prężnie rozwijana i posiada oddaną społeczność, która prawdopodobnie rozwiązała już każdy problem, na jaki moglibyśmy się natknąć. Otrzymujemy także aktualizowaną na bierząco dokumentację projektu. Małą barierą może się okazać wymagana znajomość języka angielskiego. Jednak Google Translate od lat potrafi tłumaczyć całe strony internetowe, wystarczy, że wkleimy url do dokumentacji i w zamian dostajemy przetłumaczony tekst.

Komponenty

Mając zatem wybrany sprzęt oraz system operacyjny, pora na resztę niezbędnych komponentów. Do tego projektu wykorzystałem gotową obudowę do kontrolera Arcade. Zależało mi by wszystkie peryferia zmieściły się w środku. Obudowa przyszła od razu z wyciętymi otworami na przyciski i gałkę analogową. Gdyby nie to, musiałbym prawdopodobnie bawić się z plexi i otwornicą.

Następny element układanki to układ sterowania. Wybór padł na zestaw z podświetleniem (koszt ~200zł). Nie była to jednak dobra decyzja. Do jakości wykonania nie mam zarzutów, nie przemyślałem jednak większego zapotrzebowania LED-ów na prąd. Malinka jest w stanie dostarczyć po USB na tyle mało energii, że wystarczyło jedynie na podłączenie szeregowo 2 diód. Przycisków jest jednak 8, więc porzuciłem pomysł i oświetlenie zbiera jedynie kurz. Decydując się na o połowę tańszy zestaw zaoszczędziłbym także sporo miejsca. Zmieszczenie wszystkich kabli w środku było niemałym wyzwaniem, a należało upchać jeszcze komputer wraz z podłączoną po USB płytką sterującą kontrolera.

Do pełni szczęścia brakowało jeszcze kilku drobnych elementów: karta micro SD 64GB, kabel HDMI – długość 3 metry, adapter miniHDMI-HDMI, przewód microUSB B – A z włącznikiem, zestaw radiatorów (potrzebne po podkręceniu procesora), zestaw nylonowych śrubek i podkładek dystansowych oraz rurki termokurczliwe. Zasilacza nie wymieniam, w szufladzie miałem ich aż za dużo po starych telefonach. No i trytytki, trzeba je mieć zawsze w zapasie, mogą się przydać w najmniej oczywistym momencie.

Potrzebne narzędzia

Lista narzędzi potrzebnych do budowy konsoli nie jest długa. Potrzebowałem małego, porządnego śrubokrętu, najlepiej z magnetycznymi końcówkami, lutownicy oraz wkrętarki. Ze śrubokrętu tłumaczyć się chyba nie muszę. Lutownica przydała się do skrócenia kabla USB między płytką sterującą kontrolera, a malinką. Przewód miał około metra więc należało go odpowiednio uciąć i połączyć kabelki w środku. Do zaizolowania gołych wiązek przydały się rurki termokurczliwe, można zamiast nich użyć izolacji chociaż ta zapewne zajęłaby więcej miejsca. Wkrętarka przydała się do nawiercenia kilku dziur w obudowie dla lepszej wentylacji w pobliżu procesora oraz do kilku otworów dla podkładek dystansowych – trzeba jakoś przymocować komputer do obudowy i dać nieco przestrzeni dla lepszej cyrkulacji powietrza. Oczywiście potrzebny jeszcze laptop z czytnikiem kart microSD.

Podłączenie wszystkich kabli od przełączników nastręczyło mi problemów ze względu na ograniczoną przestrzeń. Odzyskałem jej nieco skracając przydługi kabel USB. Poza tym aby wszystko odpowiednio się pomieściło w coraz ciaśniejszej obudowie, przymocowałem malinkę „do góry nogami” tuż pod gałką analogową. Dla prestiżu na dzielni można dodać jeszcze kilka naklejek.

Konfiguracja

W celu instalacji systemu na kartę pamięci skorzystałem z Raspberry Pi Imager. Po odpaleniu narzędzia należy wybrać urządzenie docelowe: RaspberryPi Zero 2W. System operacyjny znajduje się w: Emulation and Game OS -> RetroPie, następnie wyszukujemy wersję dla wybranego wcześniej modelu malinki. Ostatnia opcja to wybór karty pamięci jako dysku dla naszego systemu.

RetroPie bazuje na Raspbianie, jest to dystrybucja Debiana odpowiednio przygotowana pod różne wersje RaspberryPi. W celu ułatwienia dalszej pracy z linuxem warto też skonfigurować połączenie po SSH. Konsole wcześniej należy podłączyć przez Wi-Fi do domowej sieci. Możemy tego dokonać z menu konsoli bądź poprzez plik /etc/wpa_supplicant/wpa_supplicant.conf – więcej o tej metodzie np. tutaj

SSH to protokół łączności zdalnej korzystający z pary kluczy do szyfrowania ruchu sieciowego. Potrzebujemy klucza prywatnego i publicznego. By je wygenerować na komputerze, z którego będziemy się łączyć odpalamy ssh-keygen (dla systemów Unix-owych) lub korzystamy z putty-gen (dla Windows-ów). Na malince klucz publiczny wrzucamy do pliku ~/.ssh/authorized_keys. Teraz znając IP malinki nawiązujemy połączenie z konsolą używając klucza prywatnego. Więcej o ssh tutaj.

Zdecydowałem się na lekkie podkręcenie procesora ze względu na pewne problemy z bardziej zaawansowanymi graficznie tytułami. W tym celu należy wyedytować plik /boot/config.txt. Bez zmiany napięć na procesorze sprzęt zachowywał się stabilnie przy taktowaniu 1,1GHz. Niby niewiele, ale pozwoliło uzyskać te kilka brakujących klatek animacji tam gdzie były potrzebne. W tym celu skorzystałem z instrukcji znajdującej się pod tym adresem.

Wady

Obecne rozwiązanie obarczone jest jednak sporą wadą. Aby wrzucić cokolwiek na kartę pamięci muszę rozbierać obudowę. Żeby to usprawnić próbowałem przesłać pliki zdalnie. Wpierw po SSH, za pomocą narzędzia scp. Dobre rozwiązanie gdy łączymy się z systemów Linuxowych. Na potrzeby łączności z Windowsów postawiłem także serwer samby. Więcej o SMB np. tutaj. Niestety wydajność zarówno serwera samba jak i scp były bardzo słabe. Albo transfer trwał wieki albo połączenie losowo się zrywało. Obstawiam, że winę ponosi przegrzewająca się lub zwyczajnie zbyt słaba karta sieciowa malinki. Także stanęło na niezawodnym śrubokręcie.

Nie zaszkodziłoby także wyprowadzenie przejściówek dla portów HDMI oraz USB (zasilanie) na jeden z boków obudowy. Teraz w celu wymiany jednego z kabli należy rozkręcić i zdjąć pokrywę. Tak samo jak ma to miejsca w przypadku karty micro SD.

RetroPie w akcji

Podczas pierwszego uruchomienia systemu, RetroPie powinien wykryć kontroler i poprosić o zmapowanie przycisków. Mając ich całe 8 do wyboru plus gałkę nie poszalejemy. Ale do emulacji starszych sprzętów w zupełności wystarczy. Dwa górne guziki mapujemy na start oraz select. Pozostałe to odpowiednio A, B, X, Y, L1, R1. Do pełni szczęścia zabrakło odpowiedników L2 oraz R2. Według mnie jest to kompromis w zupełności do przeżycia.

RetroPie działa responsywnie, interfejs jest bardzo czytelny i przyjemny dla oka. Warto jeszcze nauczyć się kilku przydatnych skrótów klawiszowych do wywoływania menu i wychodzenia z gier (start + select). System potrafi także sparsować wszystkie dostępne tytuły pod kątem metadanych. Zaciągnie dla nas zarówno okładki jak i dodatkowe informacje jak opis, rok produkcji, producenta, czasem nawet pobierze krótkie gify-y z rozgrywką. O zapisywaniu w dowolnym momencie nie wspomnę. Co prawda nie konfigurowałem dodania osiągnięć niczym we współczesnych konsolach. Możliwe, że ta funkcjonalność działa na bardziej zaawansowanych systemach. Tak czy inaczej to niebywałe co z tymi systemami osiągnęła do tej pory społeczność sceny retro. Dzięki nim wiele gier, które byłyby skazane na zapomnienie dostają drugie życie. Czapki z głów.

Co z grami?

Zatem jak sprzęt radzi sobie z grami? Fantastycznie, emulacja wszystkiego do PSX-a włącznie działa wręcz wyśmienicie. Istnieją gry, które jeśli chrupały na oryginalnym sprzęcie będą przycinać nadal, lepiej niestety nie będzie. Poza tym wszystko inne działa płynnie, bez większych problemów z obrazem czy dźwiękiem. Warto także  pobawić się filtrami graficznymi, więcej o nich tutaj: https://retropie.org.uk/docs/Shaders-and-Smoothing/, polecam ustawienie chociaż filtrowania trzyliniowego. Oczywiście musimy posiadać oryginalne nośniki tytułów przed ich odpaleniem. 

Nie ma co ukrywać, że sprzęt najlepiej sprawdzi się z pozycjami wprost z automatów w popularnych niegdyś salonach Arcade. Wszelkie SHMUP-y wręcz błyszczą. Chodzone bijatyki czy bijatyki 2D? Poproszę z dokładką. Dwuwymiarowe platformówki także nie stanowią wielkiego problemu zarówno jeśli chodzi o wydajność jak i zastosowane sterowanie. Gra się zwyczajnie świetnie.

Ale prawdziwą nagrodą było zobaczyć na twarzy córeczki uśmiech gdy próbowała swoich sił w grach, na których sam lata temu się wychowałem.

Podsumowanie

Całkowity koszt wyniósł niecałe 500zł. Według mnie dużo. Oczywiście nie licząc narzędzi, które już posiadałem. Używając tańszego kabla HDMI oraz innego zestawu przycisków spokojnie zamknąłbym się w okolicach 350zł. Nauczka na przyszłość.

Kiedyś może zdecyduję się na budowę Arcade 2.0 z kontrolerem dla dwóch graczy. Wtedy zapewne jako serce konsolki postawię na komputer z architekturą x86 zamiast ARM, więcej RAMu, zintegrowaną grafikę i dysk ssd. Możliwe, że coś opartego np. na procesorze Intel N100 – przy dobrych wiatrach do wyrwania za ~400zł. Albo użyję małego potworka wydajnościowego opartego na Ryzenie od AMD.

Morał z tego taki, że jeśli chodzi Ci po głowie jakiś pomysł, niezrealizowane marzenie, cokolwiek – po prostu weź się za to, nie ma lepszej receptury. Jeśli nie wiesz od czego zacząć rozbij wyzwanie na wiele drobnych problemów zamiast jednego dużego. Każdy z nich będzie o wiele łatwiejszy do zwizualizowania i realizacji. I nie będzie już tak przerażający. Tymczasem wracam do Metal Slug-a.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *