Automat do gier z Raspberry Pi

Automat do gier z Raspberry Pi
Pobierz PDF Download icon
Miniaturowe komputery mają obecnie moce obliczeniowe znacznie przewyższające możliwości pełnowymiarowych komputerów z przed kilku-kilkunastu lat. Dotyczy to także specjalizowanych komputerów do gier wideo. Z całą pewnością wielu starszych czytelników EP miło wspomina czas spędzony w salonach gier, gdy królowały Pacman i Galaxians. Takie zamiłowanie do starych gier sprawiło, że na świecie opracowano bardzo wiele projektów, w których Raspberry PI zostało przystosowane do pracy, jako konsola lub nawet automat do gier wideo.

Na automat do gier składa się kilka elementów, które trzeba wybrać i przygotować. Dobór będzie zależał od rodzaju gier, w jakie chce się pograć, pożądanego wyglądu konsoli oraz sposobu sterowania nią i wyświetlania obrazu.

Naszym zdaniem, najbardziej atrakcyjnym pomysłem, którego realizacja wcale nie jest trudna, będzie zrobienie uniwersalnego automatu do gier, obsługującego wiele starych platform komputerowych i przypominającego wyglądem prawdziwy automat.

Fotografia 1. Gotowy automat zrobiony przez Retro Build Games

Fotografia 2. RetroPie uruchomione na Raspberry Pi podłączonym do telewizora

Całość bazujemy na Raspberry PI, którego wydajność jest zdecydowanie wystarczająca by uruchomić większość starych gier z automatów. Nie jest zbyt istotne, która wersja Raspberry PI zostanie użyta, przy czym preferowany jest model 3 B.

Platforma programowa

Pomysł grania w różne stare gry na jednym, niedrogim i specjalnie przystosowanym do tego komputerze przyszedł do głowy wielu osobom. Część z nich połączyła swoje siły i powstały gotowe platformy programowe - programy i całe dystrybucje systemów operacyjnych, przystosowane właśnie do tworzenia konsol do gier.

Naszym zdaniem bardzo godna uwagi jest platforma RetroPie. Jest ona dostępna zarówno w postaci niezależnego programu, jak i całej dystrybucji systemu operacyjnego, bazującego na Raspbianie. Wykorzystano w niej kilka pakietów oprogramowania, które współpracuje ze sobą.

Wykorzystano m.in. takie moduły, jak EmulationStation i RetroArch, które pozwalają z jednej strony uruchamiać programy przeznaczone dla innych architektur sprzętowych, a z drugiej służą jako atrakcyjny interfejs użytkownika.

RetroPie współpracuje też z szeregiem kontrolerów. Po domyślnej instalacji, przy pierwszym uruchomieniu, na wyświetlaczu podłączonym do Raspberry PI z RetroPie pojawia się okno z konfiguracją kontrolera. Można np. podłączyć przez USB gamepad taki, jak do XBoxa i kolejno przypisać wszystkie przyciski.

Fotografia 3. Podzespoły elektryczne i elektroniczne, potrzebne do wykonania automatu

Fotografia 4. Dla porównania: płyta bazowa starego automatu do gier, w którym cały program zajmował niecałe 8 MB i to głównie ze względu na dużą liczbę danych graficznych, zapisanych w pamięci

Teoretycznie sprzęt powinien działać także z innymi gamepadami (nawet z kontrolerami od Nintendo Wii U!), ale w naszym przypadku, na Raspberry PI 1 B, komputer w ogóle nie wykrywał uniwersalnego pada Logitecha.

Łącznie RetroPie jest w stanie emulować działanie ponad 50 różnych konsol i komputerów. Zostały one zabrane w tabeli 1. Ponadto, na RetroPie przeniesiono (sportowano) szereg gier i kilka programów multimedialnych, tak by działały one bez potrzeby korzystania z jakichkolwiek dodatkowych emulatorów.

Nalezą do nich takie tytuły, jak Baldur’s Gate, Cave Stroy, Commander Keen, Descent, DOOM, Duke Nukem 3D, Giana’s Return, Minecraft PI Edition, Open Transport Tycoon Deluxe, Quake, Rick Dangerous, Prince of Persia, Super Mario War, Warcraft/Starcraft, Wolfenstein 3D i Zelda Engine. Niektóre z nich dostarczane są wraz ze standardową dystrybucją RetroPie, więc można w nie grać już w krótką chwilę po pierwszym uruchomieniu komputera i konfi guracji kontrolera.

Gry

Pewnym kłopotem może być dostępność gier. Potrzebne są pliki ROM, a więc zawierające obraz gry, który będzie wczytywany przez emulator i uruchamiany. Rzecz w tym, że część gier jest jednocześnie ofi cjalnie niedostępna i zarazem chroniona prawami autorskimi.

Z tego względu, aby nie narażać się na konsekwencje prawne, twórcy RetroPie sami nie oferują żadnych takich ROMów, ani nawet nie wskazują adresów stron internetowych, z których można je pobrać. Niemniej, można je łatwo samodzielnie znaleźć w Internecie i osobiście ocenić, czy pobranie ich będzie zgodne z przepisami obowiązującymi w danym kraju.

Pobrane pliki ROM można załadować do RetroPie na kilka sposobów. Pierwszy obejmuje wykorzystanie pendrive’a. Należy go sformatować do systemu FAT32, stworzyć w jego katalogu głównym podkatalog retropie, po czym podłączyć go do Raspberry PI z uruchomionym RetroPie.

System automatycznie wykryje odpowiedni nośnik i wykona kilka operacji, m.in. tworząc dodatkowe podkatalogi, po czym odmontuje pendrive. W praktyce moment ten da się rozpoznać po zatrzymaniu się migania diody sygnalizującej pracę pendrive’a.

W dalszej kolejności pendrive należy ponownie podłączyć do komputera i wgrać pliki ROM do odpowiednich podkatalogów w katalogu retropie/roms. Po zakończeniu operacji, nośnik można ponownie podłączyć do Raspberry PI z RetroPie - zostanie on automatycznie rozpoznany, a znalezione gry zostaną załadowane do modułu EmulationStation.

Odświeżenie zawartości EmulationStation wymaga wciśnięcia klawisza F4 lub zrestartowania programu. W przypadku, gdy wyłączyło się EmulationStation, można je ponownie uruchomić wpisując w linii poleceń komendę emulationstation.

Rysunek 5. Przekrój obudowy automatu, zgodnie z bezpłatnie dostępnym projektem, opracowanym przez Retro Build Games

Fotografia 6. Automat wykonany w oparciu o bezpłatnie udostępnione projekty Retro Build Games

Jeśli nie mamy akurat pod ręką nośnika Pendrive, można skorzystać z połączenia sieciowego do wgrania gier. RetroPie automatycznie uruchamia serwer SFTP (Simple FTP) na porcie 22 z loginem "pi" i hasłem "raspberry". Korzystając z tej metody należy wgrać pliki ROM klientem FTP do podkatalogu odpowiadającemu danej konsoli w katalogu ~/RetroPie/roms/.

RetroPie jest także widoczne w otoczeniu sieciowym pod adresem smb://retropie (w Windows będzie to: \RETROPIE. Dostępny jest tam m.in. katalog roms, w którym znajdują się podkatalogi dla poszczególnych konsol. Tam również można wgrać pliki ROM.

W końcu można też ręcznie wgrać pliki z dowolnego podłączonego do RetroPie nośnika, logując się (zdalnie przez SSH lub bezpośrednio) w konsoli Raspberry PI i przenosząc ROMy do odpowiednich podkatalogów w katalogu ~/RetroPie/roms.

Warto również wspomnieć o ściąganiu okładek i opisów gier z Internetu, co sprawia że korzystanie z RetroPie staje się znacznie przyjemniejsze. Zamiast widzieć tylko listę tytułów dla danej platformy, interfejs wyświetla szczegółowe dane na temat gry.

Domyślnie są one pobierane z serwisu themagesdb. net, za pomocą wbudowanego w RetroPie mechanizmu. Można też samodzielnie wybrać inny mechanizm lub serwis oraz określić, dla których platform i jakie dane mają być pobierane.

W widoku biblioteki gier prezentowane są ich oceny, daty wypuszczenia na rynek, producent i wydawca, kategoria gry, obsługiwana liczba graczy, opis gry i zdjęcie okładki oraz informacje na temat tego, ile razy i kiedy ostatnio dana gra była uruchamiana.

Budowa automatu

Samo RetroPie pozwala na błyskawiczne przygotowanie uniwersalnej konsoli do gier. Budowa automatu do gier wymaga nieco dodatkowych kroków. Podjął je Ryan Bates, który założył fi rmę Retro Built Games LLC, w której ramach oferuje automaty do gier, bazujące na Raspberry PI. Dostarcza on w pełni gotowe urządzenia, ale także udostępnia szereg materiałów, które mogą posłużyć do samodzielnego przygotowania automatu.

Do budowy automatu, oprócz komputera Raspberry PI oraz oprogramowania potrzebne są jeszcze: kontroler, wyświetlacz, głośniki i obudowa oraz przewody niezbędne do podłączenia wszystkiego. Naturalnie konieczne są też zasilanie i karta pamięci.

Należy zwrócić uwagę na to, że typowy kontroler do konsoli jest zupełnie inny niż w automatach do gier. W tym drugim przypadku zestaw dostępnych przycisków zależy od wgranej do automatu gry. Automat można wykonać z uniwersalnym zestawem klawiszy, ale tak czy inaczej trzeba je jakoś podłączyć do komputera.

Wykorzystanie gniazda USB raczej nie wchodzi w grę, gdyż wymagałoby przygotowania odpowiedniego sterownika. Znacznie łatwiej jest podłączyć przyciski do linii GPIO Raspberry PI. Ich liczba już w pierwszej wersji minikomputera jest wystarczająca by przygotować automat dla jednego gracza.

W nowszych Raspberry PI - tych z rozszerzonym zestawem GPIO, liczba wejść i wyjść wystarcza do przygotowania automatu dla dwóch graczy, i to bez stosowania jakiegokolwiek multipleksowania sygnałów. Oczywiście wymaga to drobnego dostosowania oprogramowania.

Fotografia 7. Konsola w obudowie ze sklejki, przeznaczona do podłączenia do telewizora

Tabela 1. Lista platform i konsol, obsługiwana w ramach pakietu RetroPie oraz programy odpowiadające za emulację danego środowiska. Uwaga - w przypadku platform oznaczonych gwiazdką, obsługa jest obecnie realizowana w trybie eksperymentalnym

Na typową klawiaturę automatu składają się joystick i kilka przycisków. Do wielu gier wystarczy tylko jeden lub dwa przyciski, ale często potrzebne są także przyciski do wyboru trybu gry, jej wstrzymania i uruchomienia. Opracowana przez Retro Built Games dystrybucja Raspberry PI nosi miano Porta Pi Arcade i w wersji dla starego Raspberry PI jest w stanie obsłużyć 14 przycisków, w tym 4 odpowiadające za joystick (tabela 2).

W nowych Raspberry PI z większą liczbą wyprowadzeń można podłączyć nawet 23 przyciski, które standardowo predefiniowane są do obsługi przez dwóch graczy (tabela 3). W praktyce, w Porta PI Arcade, znaczenie klawiszy podpiętych do poszczególnych linii GPIO jest zdefiniowane w pliku retrogame.c, który znajduje się w podkatalogu Retrogame, w katalogu domowym użytkownika pi.

Plik ten zawiera oddzielone przyciskami numery wejść GPIO oraz przypisane im nazwy klawiszy klawiatury. Te natomiast są zdefiniowane w ramach RetroPie, na którym bazuje Porta PI Arcade, tak by na konsoli z Raspberry PI można było grać za pomocą zwykłej klawiatury, także we dwie osoby. Inaczej mówiąc, program którego kod znajduje się w retrogame.c zamienia sygnały z wejść GPIO na zdarzenia klawiatury, które natomiast RetroPie zamienia na konkretne klawisze potrzebne w grach.

Wprowadzanie wszelkich zmian w pliku retrogame.c wymaga ponownego skompilowania go (polecenie make) oraz może wymagać zmiany treści pliku konfiguracyjnego retroarch.cfg, znajdującego się w katalogu /opt/retropie/configs/all, tak by znaczenie poszczególnych klawiszy było zgodne z zamierzeniami. Po wprowadzeniu tych modyfikacji należy ponownie uruchomić Raspberry Pi.

Mechanika joysticka i klawiszy

Aby automat wyglądał w prawdziwie, warto pokusić się o wykorzystanie kontrolerów, przeznaczonych do tego typu zastosowań. Można je z łatwością dostać na rynku - nie tylko z firmy Retro Built Games, ale też od innych dystrybutorów.

Przyciski tego typu są bowiem powszechnie używane w różnorodnych nowoczesnych automatach do gier, a nieco podobne do nich elementy także w wykonaniach wandaloodpornych, do urządzeń takich jak np. bankomaty. W praktyce najtańsze może okazać się zamówienie całego zestawu joysticka z przyciskami.

Pojedynczy przycisk powinien kosztować w granicach 6-10 zł + koszt microswitcha, a joystick kilka razy tyle. Można też nabyć przemysłowej klasy joysticki, ale te kosztują kilkaset złotych i nie ma sensu stosować takich komponentów do automatu do gier.

W razie potrzeby joystick można też samodzielnie zbudować - w praktyce składa się on z drążka, podstawy i czterech przełączników krańcowych. Przechylenie drążka w wybraną stronę powoduje przełączenie odpowiedniej krańcówki. W przypadku przechylenia joysticka na ukos, zazwyczaj przełączane są dwie krańcówki jednocześnie, przy czym istnieją joysticki, w których taki ruch jest zablokowany.

Listing 1. Przypisanie sygnałom GPIO klawiaturowych odpowiedników 40-pinowego złącza Raspberry PI

Listing 2. Fragment pliku retroarch.cfg, z przypisaniem klawiszy do przycisków kontrolera automatowego pierwszego gracza

Joystick i przyciski należy podłączyć do odpowiednich wyprowadzeń GPIO Raspberry PI. W praktyce klawisz A jest w większości gier używany jako podstawowy klawisz akcji, a B, jako klawisz cofnięcia lub drugi klawisz akcji. Jeśli gra tego wymaga, jako przycisk startu podłączany jest klawisz przypisany w konfiguracji do klawiaturowego ENTERu, a jako przycisk wyboru - prawy shift.

Dodatkowe przyciski dla pojedynczego gracza, standardowo używane w niektórych grach służą wykonywaniu innych akcji i w RetroPie są przypisane do klawiszy X i Y oraz R, L, F1 i Escape. Drugiemu graczowi potrzebne mogą być przyciski sterowania kierunkami oraz podstawowy i drugorzędny przycisk akcji, a także przyciski odpowiadające akcjom X i Y (jak u pierwszego gracza) oraz przycisk startu, pozwalający na włączenie się drugiego gracza do gry. Standardowy sposób przypisania tych klawiszy w Raspberry PI został pokazany w tabeli 3.

Oryginalne klawisze i joystick można także zdobyć nabywając cały, stary automat do gier i modyfikując jego wnętrze. Wybierając to rozwiązanie, warto nabyć dodatkowe złącze firmy JAMMA, które ułatwia dokonywanie połączeń przy przebudowie automatu. Swoją drogą, zastępowanie wnętrzności starego automatu nowymi komponentami bardzo dobrze uświadamia, jak ewoluowała elektronika na przestrzeni minionych 20 lat (fot. 4).

Obudowa

Jeśli nie decydujemy się na odrestaurowanie starego automatu, konieczne staje się samodzielne przygotowanie obudowy. Tę można zaprojektować po swojemu, zamówić na stronie www.retrobuiltgames. com lub samodzielnie wyprodukować w oparciu o gotowe projekty.

Niestety Retro Built Games nie udostępnia projektów swoich atrakcyjnych obudów do samodzielnego wycięcia, ale za to pozwala bezpłatnie pobrać bardzo prosty projekt (http://goo.gl/d6DruL) - szablon, na którego podstawie można samodzielnie wyciąć i złożyć obudowę z dowolnego materiału.

Szablon można wyciąć z użyciem maszyny CNC, a ponieważ nie jest skomplikowany, da się go także ewentualnie wyciąć ręcznie. W końcu można też zaprojektować obudowę i jej fragmenty przygotować za pomocą drukarki 3D.

Tabela 2. Sposób przypisania przycisków automatu do sygnałów GPIO Raspberry z 26-pinowym złączem i odpowiadające im klawisze klawiatury

Tabela 3. Sposób przypisania przycisków automatu do sygnałów GPIO Raspberry z 40-pinowym złączem i odpowiadające im klawisze klawiatury

Audio i wideo

Całość uzupełnia dowolny wyświetlacz, przystosowany rozmiarami do obudowy oraz potrzebne głośniki. Wyświetlacz należy podłączyć do portu HDMI. Dźwięk może być przesyłany za pomocą wyjścia słuchawkowego, albo z użyciem HDMI - wyboru dokonuje się w trakcie konfiguracji RetroPie.

Wybierając wyświetlacz i głośniki należy zwrócić uwagę na prąd i napięcie, potrzebne do ich zasilania oraz dobrać odpowiedni do nich zasilacz. Optymalnym rozwiązaniem byłoby zastosowanie jednego zasilacza 5 V, który zasilałby zarówno Raspberry PI, jak i pozostałe elementy.

Podsumowanie i ocena projektu

Rysunek 8. Sposób podłączenia podzespołów w automacie Porta PI Arcade, opracowanym przez Retro Build Games. Wszystkie przyciski podłączane są do odpowiadających im wyprowadzeń GPIO i do masy.

Porta PI Arcade to najciekawszy naszym zdaniem projekt konsoli czy automatu do gier, oparty na Raspberry PI. Co więcej, fakt że można go kupić w postaci kompletnego zestawu, nabyć wybrane komponenty, albo zrealizować całkowicie od podstaw, bazując jedynie na udostępnionym bezpłatnie oprogramowaniu sprawia, że każdy zainteresowany będzie mógł wybrać optymalne dla siebie podejście.

Porta PI Arcade można też zrealizować częściowo, budując np. samą skrzynkę z komputerem i kontrolerem i pozostawiając wyjście HDMI do podłączenia wyświetlacza - wtedy zestaw staje się bardziej przenośny i można go, tak jak konsolę - podłączyć do dowolnego telewizora.

Można by się też zastanowić nad wprowadzeniem modyfikacji w postaci podświetlania przycisków, ale by te reagowały w jakikolwiek sposób na akcje użytkownika, konieczne byłoby użycie którychś z niewielu pozostałych wolnych linii GPIO. Po drugie, bardzo trudne byłoby sensowne wykorzystanie takiego podświetlenia w istniejących grach.

Naszym zdaniem, decydując się na budowę własnego automatu, warto sięgnąć po najnowsze Raspberry PI 3, zamiast ograniczać się do starszych wersji komputera. Po pierwsze jest ono zwyczajnie szybsze, co widać na etapie uruchamiania się systemu operacyjnego, a nawet podczas nawigowania po menu.

Do samego działania wszystkich gier, które sprawdzaliśmy, w pełni wystarcza nawet najsłabsze Raspberry PI w pierwotnej wersji, ale podczas konfiguracji i w trakcie pracy niewygodna jest ograniczona liczba portów USB. Użycie Raspberry PI 3 pozwala skorzystać z wbudowanego, bezprzewodowego interfejsu sieciowego (Wi-Fi) do połączenia się z Internetem i pobrania np. okładek gier, bez zajmowania jednego z portów USB.

Porty USB są tu bardzo cenne, gdyż to za ich pomocą można podłączyć do Raspberry PI klawiaturę, myszkę, czy dodatkowe game pady. A te - szczególnie w podstawowej wersji RetroPie są bardzo użyteczne.

Marcin Karbowniczek, EP

Artykuł ukazał się w
Elektronika Praktyczna
czerwiec 2016
DO POBRANIA
Pobierz PDF Download icon

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów