Interface GP-WIZ 40



  • Bonjour à tous,   J'ai un control panel arcade depuis quelques temps déjà (avant le raspberry pi) avec une interface USB : la GP-WIZ 40 ( http://groovygamegear.com/webstore/index.php?main_page=product_info&products_id=235 ). L'interface HID est reconnue par linux : http://pastebin.com/XUJthaWD Les sticks sont reconnus aussi comme étant pour chacun 2 axes analogiques : http://pastebin.com/NDDm7R8T.   Problème : une fois dans ES, les boutons sont bien détectés mais pas les sticks.   Une idée du pourquoi et de la solution à adopter ? =)   Merci !



  • Trouvé ça qui semble avoir résolu partiellement le problème sur un autre système mais moi y'en a pas tout compris... http://forum.arcadecontrols.com/index.php?topic=115684.0


  • Moderator
    Team

    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 !


  • Moderator
    Team

    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'écran mount -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).


  • Moderator
    Team

    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 :/


  • Moderator
    Team

    @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 !


  • Moderator
    Team

    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).


Log in to reply
 

Want to support us ?

Join us on :

210
Online

28804
Users

14640
Topics

110675
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.