Driver Adaptateur Retrolink Snes
-
Bonjour, tout d'abord, merci pour ce super boulot. J'ai découvert raspberry + recalbox en une 1/2 journée et je suis impressionné de voir que ça a marché plutôt facilement sans mettre les mains dans le cambouis comme on dit ! Comme les messieurs plus haut, j'ai branché 1 adapteur USB retrolink avec 1 manette SNES + 1 multitap SNES (x4 manettes) et une seule manette est détectée... enfin pas tout à fait d'ailleurs, car 2 manettes sur les 5 sont éligibles à la détection : celle dans son slot solo + la 1ère du multitap. Mais au final, le système n'en garde qu'une. Le lien vers l'issue, c'est bien celui-ci : https://github.com/recalbox/recalbox-os/issues/217 ?
-
Après quelques recherches (je découvre petit à petit tout l'univers autour de recalbox...), si l'on teste l'adapteur 2 slots/2 manettes SNES avec jstest, on a 4 axes, 16 boutons de reconnus (les 8 premiers pour la 1ère manette, et les 8 derniers pour la 2nde manette) qui répondent bien... le patch de l'issue semble donc correct (si j'ai bien compris le problème à l'origine...) Le tout c'est que quelque part entre emulation station / retroarch / autre, cet adapteur soit interprétable comme 2 manettes distinctes.
-
J'ai trouvé une solution pour distinguer l'adaptateur USB SNES comme 2 manettes distinctes ! La marche à suivre : 1. Obtenir les informations de périphérique :
cat /proc/bus/input/devices
Pour ma part, j'obtiens quelque chose du style :
I: Bus=0003 Vendor=1292 Product=5346 Version=0100 N: Name="INNEX SNES Controller USB" P: Phys=usb-bcm2708_usb-1.3/input0 S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/0003:1292:5346.0001/input/input0 U: Uniq= H: Handlers=js0 event0 B: PROP=0 B: EV=1b B: KEY=ff0000 0 0 0 0 0 0 0 0 0 B: ABS=3 B: MSC=10
Ce sont les valeurs des clefs "Vendor" et "Product" qu'il faut noter. Ici : "1292" et "5346" respectivement. 2. Dans le fichier situé sous :
/boot/cmdline.txt
Il faut éditer le fichier et ajouter l'argument ci-dessous à la ligne déjà présente avec les valeurs notées précédemment : "usbhid.quirks=0xvendor:0xproduct:0x040"
usbhid.quirks=0x1292:0x5346:0x040
note : je ne sais pas à quoi correspond la dernière valeur 040... j'ai testé, ça a marché. A creuser en cas de problème ! 3. Reboot de recalbox 4. Normalement, c'est bon, vous avez désormais 2 manettes de détectées !
-
Merci beaucoup. J'y ai vraiment cru cette-fois ci ... mais en vain !
NO GAMEPADS DETECTED
Avec la ligne d'arguments:
dwc_otg.fiq_fix_enable=1 sdhci-bcm2708.sync_after_dma=0 dwc_otg.lpm_enable=0 console=tty3 loglevel=3 elevator=deadline vt.global_cursor_default=0 logo.nologo root=/dev/mmcblk0p6 rootwait usbhid.quirks=0x1292:0x5366:0x040
Une autre idée?
-
Je suis étonné. J'ai la même configuration que toi (recalbox 3.3.0 beta 17), le même adaptateur retrolink indiqué par Juzz. Un raspberry pi 2. On devrait avoir le même comportement... Déjà dans un premier temps, sans la modification (usbhid.quirks), ta manette n'est pas détectée? Ce qui pour ma part n'était pas mon cas... elle avait été détectée de suite. On va donc commencer par résoudre ce premier problème. Tu as indiqué : usbhid.quirks=0x1292:0x5366:0x040. Comment as-tu eu cette valeur? Peux-tu indiquer le contenu de la commande :
cat /proc/bus/input/devices
Peux-tu vérifier également si tu as quelque chose avec la commande :
jstest /dev/input/js0
-
Un grand merci pour le temps que tu consacres à mon problème Je possède effectivement bien le "Retrolink - Dual controller port adpater" dont le lien est dans le premier post. Les manettes n'ont jamais été détectées (aucune touche ne répond), sauf sur Windows 7. Ce n'est donc pas un problème hardware. J'ai eu la ligne "usbhid.quirks=0x1292:0x5366:0x040" en suivant tes recommandations avec la commande "cat /proc/bus/input/devices". Voici le résultat:
[root@RECALBOX ~]# cat /proc/bus/input/devices I: Bus=0003 Vendor=1292 Product=5366 Version=0100 N: Name="INNEX SNES Controller USB" P: Phys=usb-bcm2708_usb-1.2/input0 S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:1292:5366.0001/input/input0 U: Uniq= H: Handlers=js0 event0 B: PROP=0 B: EV=1b B: KEY=fff0000 0 0 0 0 0 0 0 0 0 B: ABS=30000 B: MSC=10 I: Bus=0003 Vendor=1292 Product=5366 Version=0100 N: Name="INNEX SNES Controller USB" P: Phys=usb-bcm2708_usb-1.2/input1 S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:1292:5366.0002/input/input1 U: Uniq= H: Handlers=js1 event1 B: PROP=0 B: EV=1b B: KEY=fff 0 0 0 0 0 0 0 0 0 B: ABS=30000 B: MSC=10 I: Bus=0003 Vendor=1997 Product=2433 Version=0101 N: Name=" Mini Keyboard" P: Phys=usb-bcm2708_usb-1.5/input0 S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.0/0003:1997:2433.0003/input/input2 U: Uniq= H: Handlers=sysrq kbd event2 B: PROP=0 B: EV=120013 B: KEY=10000 7 ff800000 7ff febeffdf ffefffff ffffffff fffffffe B: MSC=10 B: LED=1f I: Bus=0003 Vendor=1997 Product=2433 Version=0101 N: Name=" Mini Keyboard" P: Phys=usb-bcm2708_usb-1.5/input1 S: Sysfs=/devices/platform/bcm2708_usb/usb1/1-1/1-1.5/1-1.5:1.1/0003:1997:2433.0004/input/input3 U: Uniq= H: Handlers=kbd mouse0 event3 B: PROP=0 B: EV=1f B: KEY=3007f 0 0 0 0 483ffff 17aff32d bf544446 0 0 1f0001 130c13 b17c000 267bfa d941dfed 9e1680 4400 0 10000002 B: REL=143 B: ABS=1 0 B: MSC=10
Et voici le résultat du jstest
[root@RECALBOX ~]# jstest /dev/input/js0 Driver version is 2.1.0. Joystick (INNEX SNES Controller USB) has 2 axes (Hat0X, Hat0Y) and 12 buttons (BtnX, BtnY, BtnZ, BtnTL, BtnTR, BtnTL2, BtnTR2, BtnSelect, BtnStart, BtnMode, BtnThumbL, BtnThumbR). Testing ... (interrupt to exit) Axes: 0: 0 1: 0 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off 6:off 7:off 8:off 9:off 10:off 11:off
En espérant que tout ceci t'inspire
-
Bonjour essaie en ajoutant un regle udev aussi via un terminal ou putty copie colle cette ligne
echo 'SUBSYSTEM=="input", ATTRS{name}=="INNEX SNES Controller USB", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"' > /etc/udev/rules.d/99-retrobit.rules
chmod 775 /etc/udev/rules.d/99-retrobit.rules
puis reboot
-
Alors ça m'inspire oui et non... La bonne nouvelle, c'est que côté OS, tu as a priori tes 2 manettes de détectées : (input0 et input1) grâce au usbhid.quirks je suppose. Je ne sais pas si tu connais jstest (je connaissais pas avant 2 jours!), mais si tu testes un input et que tu appuies sur des boutons de ta manette correspondante, le bouton en question passe à on à l'écran au lieu du off ci-dessous (1, -1 pour un axe).
Axes: 0: 0 1: 0 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off 6:off 7:off 8:off 9:off 10:off 11:off
Ce qui te permet de te confirmer que ta manette est bien reconnue. D'ailleurs j'en déduis que tu n'as pas une manette standard SNES, non? il me semblait n'avoir que 8 boutons sur ma manette. Mais qu'importe, il reste à comprendre pourquoi côté EmulationStation, celles-ci ne sont pas détectées... et là c'est autre chose ! Si j'ai bien compris EmulationStation utilise la librairie "SDL" s'occupant de l'interfaçage avec les joysticks. Peux-tu c/c le fichier de logs d'EmulationStation ? (on va commencer par là...) Essaie à tout hasard de supprimer le fichier es_input.cfg (après en avoir fait une sauvegarde) et de reboot. EDIT : Je me suis fait griller en parallèle par Acris le temps de chercher... bon on a pas le même niveau de connaissances, il en impose plus !
-
Un grand merci à vous j'ai enfin réussi à avoir les deux manettes qui fonctionnent grâce à l'adaptateur =D. Yanick essaye la méthode d'Acris ça a fonctionné direct pour moi, alors que j'ai longtemps bidouillé pour au final arriver à rien.
-
Je confirme qu'elles fonctionnent très bien pour moi aussi. Merci beaucoup à vous tous, sans oublier les développeurs / intégrateurs qui travaillent dur pour cette belle distribution