Wer anstatt eines Microcontrollers lieber auf die platzsparende Methode via GPIO zurückgreifen möchte, muss eine jeweils an die Distribution angepasste Verkabelung und Konfiguration vornehmen. Hier werden alle wichtigen Infos behandelt, die es zu beachten gibt.
recalboxOS liefert von haus aus einen Treiber mit, genannt mk_arcade_joystick_gpio,welcher bis zu zwei Controller mit jeweils Joysticks mit 4 Richtungen und 9 Buttons steuern kann.
Folgende GPIO Pins müssen zusammen mit Masse (GRND) angeschlossen werden
Damit der Treiber auch geladen wird, muss nur noch die recalbox.conf editiert werden
Entweder via WEB-Interface auf http://recalbox/
oder via geteilten Netzwerkordner „system“
oder via root auf /recalbox/share/system/recalbox.conf
Dort muss die Option
controllers.gpio.enabled=1
gesetzt und gespeichert werden – fertig!
Hier das PIN-Layout von Retropie
Der GPIO Treiber in Retropie nennt sich „gamecon_gpio_rpi“ und wird in der Shell via Retropie-Setup wie folgt aktiviert:
cd Retropie-Setup
sudo ./retropie_setup.sh
(Version unter 4.0) im folgenden Menü wählt man „SETUP“ und dann „Start SNESDev on boot“ wo man die Option mit „(polling pads and buttons)“ wählt.
Nach einem Neustart kann mit mit dem Befehl „service –status-all“ überprüfen, ob das Modul SNESdev auch wirklich geladen wurde (+ davor).
(Version 4.0+) macht zu aller erst ein Update von Retropie und den installierten Packages. Danach auf Manage Packages, Driver, gamecondriver
Optional, wenn es nicht das Setup selbst macht:
Treiber wird mit folgenden Befehl geladen(Für 1 Controller via GPIO)
sudo modprobe mk_arcade_joystick_rpi map=1
den automatischen Start des Treibers bewerkstelligt man mit
sudo nano /etc/modules
folgende Zeile hinzufügen:
mk_arcade_joystick_rpi
folgende Datei erstellen /etc/modprobe.d/mk_arcade_joystick.conf
:
sudo nano /etc/modprobe.d/mk_arcade_joystick.conf
und folgende Modul-Config laden :
options mk_arcade_joystick_rpi map=1,2
Zu guter letzt kann man mit dem Befehl
jstest /dev/input/js0
überprüfen, ob die Buttons auch funktionieren – beendet wird es wieder mit STRG+C.
Alternative – retrogame by adafruit
als oft genutzte und sehr bewährte Alternative, hat sich das retrogame-script von Adafruit bewährt. Es bietet eine Vielzahl an Anpassungsmöglichkeiten, und ist dank automatischen Setup-Script viel einfacher zu installieren als in der Vergangenheit.
cd
curl -O https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/retrogame.sh
sudo bash retrogame.sh
Das wars!
Danach wird die config /boot/retrogame.cfg erstellt und beim start geladen. Das Standardlayout von PGRRL 2 und dessen GPIO verkabelung sieht dann in der config wie folgt aus (FUNKTION GPIO-BROADCOM PIN # Beschreibung)
LEFT 4 # Joypad left
RIGHT 19 # Joypad right
UP 16 # Joypad up
DOWN 26 # Joypad down
LEFTCTRL 14 # ‚A‘ button
LEFTALT 15 # ‚B‘ button
Z 20 # ‚X‘ button
X 18 # ‚Y‘ button
SPACE 5 # ‚Select‘ button
ENTER 6 # ‚Start‘ button
A 12 # Left shoulder button
S 13 # Right shoulder button
ESC 17 # Exit ROM; PiTFT Button 1
1 22 # PiTFT Button 2
2 23 # PiTFT Button 3
3 27 # PiTFT Button 4
Eine Ausführliche alte Beschreibung findet ihr hier
sowie auf der offiziellen Retrogame Seite von Adafruit