Kategoriarkiv: Raspberry Pi

Test af game control via GPIO

Adafruits Retrogame software er nu konfigureret til 9 knapper og et joystick. Det kører ganske udemærket.

Vi har købt de billigste knapper hos arkadeshoppen.dk og et billigt Mr. Joystick. Godt nok er kvaliteten af joystick og knapper høj og vi er tæt på spillehal kvalitet.. men der mangler lige lidt til, får det føles helt lækkert. Kunne godt tænkte mig at teste det med Sanwa joystick og knapper, som bliver ros i forskellige fora.

IMG_20140101_212829

Første eksperiment med at få MAME til at acceptere input fra GPIO

IMG_1230

Max har lavet et brædt til at sætte knapper og joysticks fast på

Vi endte med at købe en lille stereoforstærker og et par 5w højtalere også. Den fungere fint til MAME-spillene.

Raspberry, forstærker og højtalere blev alt sammen monteret fast på undersiden af brædtet.

Kilde

GPIO vs I-PAC

Joystick og knapper skal tilsluttes til Raspberry Pi for at kunne virke i MAME. Den nemme løsning er at købe et I-PAC kort, som emulerer tasterne på et keyboard (læs mere her).

Men et I-PAC kort koster næster det samme som hele Raspberry Pi’en og Pi’en har jo sine egne input/output porte (GPIO General Purpose Input/Output) i forvejen. Så hvorfor ikke spare I-PAC og bruge GPIO’erne?

GPIOs

The layout of the Raspberry Pi P1 pin-header seen from the top, containing pins useable for general purpose I/O

Raspberry Pi er født med 17 porte, som kan bruges. Ganske vist er nogle porte som standard reserveret til særlige formål, f.eks. seriel kommunikation, men det kan ændres programmeringsmæssigt.

Et joystick kræver 4 porte og hvis vi skal have 4 knapper til hver spiller og to spillere, så er vi allerede oppe på 16 porte. Og så mangler vi stadig Coin-, 1-player/2-player, reset (til skift af spil). Dermed er vi allerede mindst 3 porte bagud.

Det findes der råd for. Hvis man ikke bruger kameraporten på Pi, så er der 4 porte mere at hente der, hvis man kan komme til stikkene. Der er også 4 porte mere på undersiden af Pi, men der skal loddes pinde på først, før de kan forbindes. Så teknisk set er der porte nok til en fuld MAME konfiguration med 2-player.

Næste udfordring er så, at MAME er programmeret til at reagere på keyboardtaster, ikke GPIO’er. Der findes forskellige, som har skrevet joystick drivere til MAME mod GPIO, f.eks. Adafruit (se kilde nedenfor). De benytter kun et joystick og kan dermed holde sig inden for alm GPIO på Pi’en. Om vi kan udvide dette til to joysticks, ved jeg ikke, men det er da en udfordring. Under alle omstændigheder vil det være en usikkerhed for projektet, indtil det efterforsket og afprøvet.

Men hvad der bekymrer mig mere, er at jeg mere end ét sted har læst, at brugen af GPIO påvirker performancen på Pi’en. En skriver at han oplever lack i joysticket, en anden skriver at Pi’en har rigeligt at se til i forvejen, så hvis man softwaremæssigt skal polle GPIO’erne, så vil det påvirke performance af spillet.

Det er selvfølgelig påstande, som skal testes, hvis vi ønsker at gå den vej. Personligt, vil jeg være mere tryg ved at overlade styring af knapper/joystick til et separat board. Det giver også de fleksibiliteter,  at man uden videre kan opgradere til nyere MAME version uden omprogrammering, eller man kan udskifte Pi’en med et andet board eller PC, hvis man ønsker, og samtidig bibeholde I-Pac og knapper uden ændringer.

Kilder

Raspberry Pi model B?

PiMAME kan sagtens nøjes med en Raspberry Pi model A.

Ville det være en idé at vælge en model B alligevel? Forskellen i pris er kr 60. For det for man 512 mb mod 256 mb RAM, en ethernet port samt 2 USB mod 1 USB.

Ethernetporten betyder at man kan lægge nye ROM’er på SDkortet uden at tage kortet ud.

Kilde

Shea Silverman (PiMAME udvikler) bekræfter at PiMAME kører på Model A http://pimame.org/forum/discussion/24/pimame-works-on-the-model-a/p1.