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

Skriv et svar