Interface GP-WIZ 40
-
Bonjour si tu veux un minimum d aide il faut nous en dire plus surtout que le dernier lien c est un forum avec beaucoup de problèmes n inaccessibilité... ça serait bien de nous faire un résumé des choses que tu as fait ou pas pour résoudre ton probleme....
-
Euh, je n'ai peut-être pas été assez clair, désolé ! Sur le lien en question, quelqu'un annonce avoir trouvé la solution, moi je ne connais pas suffisamment la technique pour comprendre comment il a fait. J'ai testé jscal et jstest qui marchent tous les deux, c'est à peu près tout ce que j'ai réussi à faire jusqu'à présent !
-
Bonjour @Alexis (@krahoc), j'ai pas trop compris la solution que le type a trouvé Que se passe t il si tu échappes la configuration DPAD et que tu configures les sticks analogiques dans emulationstation ? Peux tu poster l archive demandé par la commande :
/recalbox/scripts/recalbox-support.sh
ainsi que ton/recalbox/share/system/.emulationstation/es_input.cfg
Réf :https://github.com/recalbox/recalbox-os/wiki/Recalbox-support--(FR) on va essayer de créer une régle udev et ajouter usbhid quircks 1. Configurer winscp en suivant le tuto entièrement https://github.com/recalbox/recalbox-os/wiki/acces-via-WinSCP-(FR) 2. Mettre la partition /boot en écriture voir capture d'écranmount -o remount,rw /boot
Ref : https://github.com/recalbox/recalbox-os/wiki/partition-en-ecriture-(FR) 3. Editer/boot/cmdline.txt
Ajout ceci en fin de ligne avec un espace avec l'information précédante :usbhid.quirks=0xfafa:0x0036:0x040
enregistre puis redémarre ton rpi. 3. Création règle udev Ouvre une session avec putty puis copie colle ces deux lignes dans l'interface :mount -o remount,rw / echo 'SUBSYSTEM=="input", ATTRS{name}=="GGG GP-Wiz40 Dev2", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"' > /etc/udev/rules.d/99-GPWIZ40.rules
redémarre ton raspberry et regarde si tu arrives à configurer tes manettes dans emulationstation. Attention de bien choisir D-PAD pour les joysticks. si ça fonctionne tjs pas, peux tu reposter aussi l'archive de recalbox-support.sh
-
Voilà les trois fichiers demandés : http://dl.free.fr/sDgN6QuV4 La solution via quirks n'a pas apporté de changement dans la détection des sticks, cependant avec jstest je détecte bien toutes les directions (et ce depuis le départ).
-
Bonjour @krahoc @subs tu peux jeter un oeil sur les logs , y a pas moyer de créer le es_inputs manuellement ?
-
j'ai deja jeté un oeil avec lui sur IRC vendredi soir. C'est à croire que SDL ne voit pas son axe. Il faudrait en parler avec susan33. Autre bizarrerie : le quirks a bien créé un 2e event, sauf que rien n'y est rattaché -> aucune direction, aucun nbouton, rien. Donc on a 2 problèmes : - SDL ne voit pas les axes - comme tout encodeur USB, 2 joueurs sur un seul port USB. Mais les quirks n'ont rien résolu à çà. Mais le syndrome habituel avant d'appliquer les quirks, c'est que seules 2 directions marchent. Et là, on n'est pas dans ce cas. Franchement je cale ... Ca voudrait dire aller potasser la doc du kernel sur les input et les quirks. Je crains que ce sujet ne soit jamais résolu
-
@krahoc passe sur le canal irc et essaie d'en discuter avec susan33, il est dev sur recalbox. as tu essayé une autre version de recalbox sur une autre microsd comme 3.2.11 et 3.3.0b17 ? c'est pour voir si ça fonctionne ou pas. subs on ne serait pas en sdl2 maintenant ?
-
Je n'ai pas testé avec une version précédente mais je vais tester. Désolé si mes questions sont à côté ou si elles sont naïves, mais il y a une chose que j'ai du mal à saisir : - si je détecte bien tous les contrôles avec jstest (directions analogiques + boutons on/off), comment ça peut venir d'un problème de kernel ? - si avec jstest je détecte bien les directions mais que le event handler ne détecte rien, est-ce qu'on ne peut pas modifier l'event handler pour "attraper" aussi ces events-là ? C'est étonnant que jstest détecte bien une manette avec 4 axes et 32 boutons (donc 2x4 directions, soit deux manettes), arrive à faire le diagnostic et affiche les valeurs analogiques, mais que emulstation ne détecte rien !
-
Salut @krahoc, peux tu essayer ceci en ajoutant à la suite du 1er usbhid. 1. Mettre la partition /boot en écriture voir capture d'écran
mount -o remount,rw /boot
Ref : https://github.com/recalbox/recalbox-os/wiki/partition-en-ecriture-(FR) 2. Editer/boot/cmdline.txt
Ajout ceci en fin de ligne avec un espace avec l'information précédante :usbhid.quirks=0xfafa:0x0036:0x020
enregistre puis redémarre ton rpi et regarde si c'est mieux si non efface ce que tu as ajouté -
Bon, j'ai réussi à corriger 50% du problème : Le problème de détection des sticks est en fait un problème de valeurs renvoyées par ceux-ci :
Event type 3 (EV_ABS) Event code 0 (ABS_X) Value 127 Min 0 Max 255 Flat 15
Comme on le voit, ils sont codés comme des sticks analogiques sur 8 bits avec 127 comme valeur pour la position centrale. Cela ne permettait pas de les détecter dans ES et faisait planter directement RetroArch quand on en bougeait un (erreur d'out of range). En passant par jscal pour remettre le codage des axes dans le bon sens (-32k;+32k centré sur 0) et en sauvegardant les corrections à appliquer :
mount -o remount,rw / jscal -p /dev/input/js0 > /etc/joystick.cal
Ensuite, appliquer ces corrections automatiquement au branchement de la manette :
mount -o remount,rw / echo 'SUBSYSTEM=="input", ATTRS{name}=="GGG GP-Wiz40 Dev2", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1", RUN+="/etc/joystick.cal"' > /etc/udev/rules.d/99-GPWIZ40.rules
Un reboot, et les axes sont détectés comme il faut ! Reste le problème du deuxième joueur à séparer de la manette 1, les quirks n'ayant pas eu l'effet escompté (hormis le fait que maintenant les axes sont détectés alors qu'avant, non).