Le pilote est conçu pour être utilisé avec les manettes de jeux rétro connectés aux GPIO du Raspberry Pi.
Jusqu'à 4 manettes peuvent être utilisés en même temps s'ils sont du type suivant :
Le pilote est basé sur celui de Gamecon, mais il utilise des paramètres et des sorties (pinout) différents. Il n'y a donc aucune garantie que cela fonctionne et vous le faites à vos risques et périls !
Ce tutoriel ne convient pas au Raspberry Pi 5.
Les PINS P1-01 et P1-06 sont utilisés pour l'alimentation en 3.3V et la masse. Elles sont communes à l'ensemble des manettes connectées sur GPIO. Même si les manettes SNES / NES fonctionnent en 5V de manière nominale, elles devraient fonctionner en 3.3V. Il n'y a donc PAS besoin d'utiliser un convertisseur sur les PINS de données.
L'intensité maximale (50mA) du Raspberry devrait être suffisante pour alimenter 4 manettes sur GPIO.
Cependant, vous devez utiliser une alimentation pour Raspberry performante (type 2.1A) pour éviter toute chute de tension non voulue.
Les PINS de données P1-03, 05, 07, 26 (GPIO0, GPIO1, GPIO4 et GPIO7) sont indépendantes les unes des autres et chaque manette en utilise une unique PIN.
- Les PINS P1-03 & P1-05 correspondent à GPIO2 & GPIO3 sur les cartes rev.2. Cela doit être pris en compte pendant le chargement du module comme expliqué dans la section 3.
- Les PINS P1-19 & P1-23 (GPIO10 & 11) sont les PINS de signal communes à toutes les manettes NES / SNES.
- Les PINS P1-08, P1-10 & P1-12 (GPIO14, 15 & 18) sont les PINS de signal communes à toutes les manettes PSX / PS2.
PIN RASPBERRY | PIN manette SNES | PIN manette NES |
---|---|---|
P1-01 (3.3V) | 1 (power - 5V) | 1 (power - 5V) |
GPIO10 | 2 (clock) | 5 (clock) |
GPIO11 | 3 (latch) | 6 (latch) |
GPIOXX | 4 (data) | 7 (data) |
P1-06 (GND) | 7 (ground) | 4 (ground) |
Les GPIOXX sont les PIN de données indépendante. Voir la section de configuration du pilote pour sélectionner le bon GPIO à utiliser.
PIN RASPBERRY | PIN manette GAMECUBE |
---|---|
P1-01 (3.3V) | 6 (power/3.43V) |
GPIOXX | 3 (data) |
P1-06 (GND) | 2&5 (gnd) |
Les GPIOXX sont les PIN de données indépendantes. Voir la section de configuration du pilote pour sélectionner le bon GPIO à utiliser.
PIN RASPBERRY | PIN manette PSX / PS2 |
---|---|
P1-01 (3.3V) | 5 (VCC) |
GPIO14 | 2 (Command) |
GPIO15 | 6 (ATT) |
GPIO18 | 7 (CLK) |
GPIOXX | 1 (Data) |
P1-06 (GND) | 4 (ground) |
Les GPIOXX sont les PIN de données indépendantes. Voir la section de configuration du pilote pour sélectionner le bon GPIO à utiliser.
controllers.gamecon.enabled=
et le mettre à 1 : controllers.gamecon.enabled=1
.controllers.gamecon.args
: map=<pad1/GPIO0>,<pad2/GPIO1>,<pad3/GPIO4>,<pad4/GPIO7>,<pad5/GPIO2>,<pad6/GPIO3>
Où <pad...> est le numéro définissant le type de manette :
Par exemple, si une manette SNES est connectée au GPIO4 et une manette N64 sur le GPIO7, le mappage sera map=0,0,1,6
.
- pad1 & pad2 sont uniquement utilisés avec une carte rev.1
- pad5 & pad6 sont uniquement utilisés avec une carte rev.2
- les manettes PSX/PS2 nécessitent une résistance pullup. Les pad5 (GPIO2) et pad6 (GPIO3) ont cette résistance intégrée.
Donc si vous avez une carte rev.2, pad1 & pad2 doivent être paramétrés à 0.
L'index final des manettes (utilisé par les programmes) est assigné séquentiellement pour les manettes connectées en démarrant par 0. Donc, dans l'exemple précédent, la manette SNES aurait un index égal à 0 et la manette N64 un index égal à 1.
tail /var/log/kern.log
Pour chaque manette N64, exécutez la commande suivante :
jscal -s 4,1,0,0,0,6972137,6972137,1,0,0,0,6547006,6468127,1,0,0,0,536854528,536854528,1,0,0,0,536854528,536854528 /dev/input/jsX
Le temps de réponse pour les manettes PSX est de 10µs ce qui minimise le retard induit par le pilote. Cependant dans quelques rares cas, cela n'est pas suffisant pour avoir une entrée stable. Si vous avez des problèmes lors de l'utilisation des manettes PSX, augmentez le délai en suivant le paramètre "extra modbprobe" : "psx_delay=" , où "delay" est la valeur en µs comprise entre 1 et 50.
Pilote de gamepad multi-console pour GPIO (anglais).
Merci à marqs pour le pilote et pour nous permettre d'utiliser son "README" dans la documentation de Recalbox.