Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Solved Manette megadrive par DB9/GPIO

    Manettes/GPIO/Encodeurs
    megadrive gpio db9
    4
    23
    10079
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Yurek
      Yurek last edited by

      Aie effectivement ça part mal.
      C'est étrange cette impossibilité de bouton. J'ai pourtant consulté quelques sujets de conversions de nes/snes avec pads d'origine. Il y a une différence ?
      Ne pourrait-on pas utiliser le bouton mode du pad 6 boutons qui de toute façon est inutile 99% du temps ?

      Après je peux sacrifier le bouton reset de la console pour en faire un hotkey.
      Je veux bien tester cette méthode.

      1 Reply Last reply Reply Quote 1
      • Substring
        Substring last edited by

        Pour nes et snes, on uyilise select comme.hotkey (puisque hotkey ne parche qu'en combinaison la plupart du temps)

        Le bouton mode ... J'ai peur qu'il soit interne au pad, mais je ne peux etre affirmatif.

        @supernature2k tu peux aider pour le reset sur gpio pour quitter l'émulateur en cours ou c'est trop tôt ?

        Je regrderai la doc pour le driver db9

        Former dev - Please reply with @substring so that i am notified when you answer me
        Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

        1 Reply Last reply Reply Quote 0
        • supernature2k
          supernature2k last edited by

          @subs, oui le script est déjà fonctionnel

          Pi powered NES | Gameboy HD | RecalStation | RecalDrive
          Upvote messages if it has been useful ;)

          1 Reply Last reply Reply Quote 0
          • Substring
            Substring last edited by

            Pour la doc, étrangement celle de recalbox a l'air à l'ouest, mais sinon chez retropie :

            https://github.com/RetroPie/RetroPie-Setup/wiki/GPIO-Modules#db9_gpio_rpi

            Former dev - Please reply with @substring so that i am notified when you answer me
            Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

            1 Reply Last reply Reply Quote 0
            • Yurek
              Yurek last edited by Yurek

              Bonne nouvelle j'ai réussi à faire fonctionner une manette megadrive.
              Je l'ai câblée comme indiqué dans le lien de @subs .
              Pour activer sa détection j'ai envoyée cette commande (avec putty) :

              modprobe db9_gpio_rpi map=6,0
              

              6 étant le code pour une manette megadrive 6 boutons et 0 pas de deuxième manette.
              Par contre je dois rentrer la commande à chaque démarrage sinon la manette n'est pas détectée.
              Ça doit pas être bien compliqué de l'activer au démarrage mais je ne sais pas comment faire.

              Mon montage provisoire n'était pas extra mais j'ai quand même pu tester un peu et jouer.
              Pour l'instant le bouton mode n'a pas l'air de fonctionner.

              @supernature2k du coup ton script m’intéresse car effectivement ça manque le bouton hotkey !

              1 Reply Last reply Reply Quote 0
              • acris
                acris last edited by

                Bonjour
                as tu essayé de l'activer dans recalbox.conf ?

                ## DB9 Controllers
                ## Enable DB9 drivers for atari, megadrive, amiga controllers (0,1)
                controllers.db9.enabled=1
                ## db9 arguments
                controllers.db9.args=map=6,0
                
                Yurek 1 Reply Last reply Reply Quote 0
                • Yurek
                  Yurek @acris last edited by

                  Oui j'ai exactement ça dans mon recalbox.conf.
                  Mais la manette n'est pas détectée.

                  Substring 1 Reply Last reply Reply Quote 0
                  • acris
                    acris last edited by

                    Sans avoir lancé la commande manuellement.
                    Poste le résultat entier de cette commande : https://github.com/recalbox/recalbox-os/wiki/Lister-les-modules-chargés-(FR)

                    1 Reply Last reply Reply Quote 0
                    • Substring
                      Substring @Yurek last edited by

                      @Yurek meme après un reboot ?

                      Si c'est le cas, gros bug là

                      Former dev - Please reply with @substring so that i am notified when you answer me
                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                      1 Reply Last reply Reply Quote 0
                      • Yurek
                        Yurek last edited by

                        @acris Le voici :

                        # lsmod
                        Module                  Size  Used by    Tainted: G
                        ipv6                  325729 30 [permanent]
                        hidp                   12425  2
                        bnep                    9932  2
                        bluetooth             307447 12 hidp,bnep
                        uinput                  6897  0
                        snd_bcm2835            18527  2
                        snd_pcm                70976  2 snd_bcm2835
                        snd_timer              18137  1 snd_pcm
                        snd                    49082  6 snd_bcm2835,snd_pcm,snd_timer
                        evdev                   9707  3
                        joydev                  8821  0
                        brcmfmac              166680  0
                        brcmutil                5425  1 brcmfmac
                        cfg80211              396344  1 brcmfmac
                        rfkill                 14498  4 bluetooth,cfg80211
                        bcm2835_gpiomem         2759  0
                        bcm2835_rng             1666  0
                        uio_pdrv_genirq         2869  0
                        uio                     7487  1 uio_pdrv_genirq
                        #
                        

                        J'ai vérifié juste avant le recalbox.conf et redémarré.

                        1 Reply Last reply Reply Quote 0
                        • acris
                          acris last edited by

                          Bonjour @Yurek
                          refais la même chose mais en lançant la commande juste avant modprobe db9_gpio_rpi map=6,0

                          1 Reply Last reply Reply Quote 0
                          • Yurek
                            Yurek last edited by

                            Ok @acris :

                            # modprobe db9_gpio_rpi map=6,0
                            # lsmod
                            Module                  Size  Used by    Tainted: G
                            db9_gpio_rpi            6437  0
                            ipv6                  325729 30 [permanent]
                            hidp                   12425  2
                            bnep                    9932  2
                            bluetooth             307447 12 hidp,bnep
                            uinput                  6897  0
                            snd_bcm2835            18527  2
                            snd_pcm                70976  2 snd_bcm2835
                            snd_timer              18137  1 snd_pcm
                            snd                    49082  6 snd_bcm2835,snd_pcm,snd_timer
                            evdev                   9707  3
                            joydev                  8821  0
                            brcmfmac              166680  0
                            brcmutil                5425  1 brcmfmac
                            cfg80211              396344  1 brcmfmac
                            rfkill                 14498  4 bluetooth,cfg80211
                            bcm2835_gpiomem         2759  0
                            bcm2835_rng             1666  0
                            uio_pdrv_genirq         2869  0
                            uio                     7487  1 uio_pdrv_genirq
                            #
                            1 Reply Last reply Reply Quote 0
                            • acris
                              acris last edited by acris

                              @Yurek
                              tu me confirmes que dans ton recalbox.conf tu as bien activé le pilote db9 ?

                              ## DB9 Controllers
                              ## Enable DB9 drivers for atari, megadrive, amiga controllers (0,1)
                              controllers.db9.enabled=1
                              

                              parce que on voit clairement que le pilote n'est pas lancé.
                              @subs @digitaLumberjack

                              Substring 1 Reply Last reply Reply Quote 0
                              • Substring
                                Substring @acris last edited by

                                @acris je dois tester et verifier le code

                                Former dev - Please reply with @substring so that i am notified when you answer me
                                Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                1 Reply Last reply Reply Quote 0
                                • Yurek
                                  Yurek last edited by

                                  J'ai de nouveau testé et je confirme que je n'arrive pas à activer le pilote db9 par le recalbox.conf mais que je dois entrer la commande manuellement.

                                  Ceci dit, une fois lancé ça fonctionne bien.

                                  Chez vous quand vous modifiez le recalbox.conf le pilote apparaît dans la commande lsmod ?

                                  1 Reply Last reply Reply Quote 0
                                  • Yurek
                                    Yurek last edited by

                                    J'ai de nouveau fait des tests ce soir et je suis assez content du résultat.

                                    Finalement il est possible d'attribuer la touche mode et donc je l'ai mise à select et hotkey sans soucis.
                                    On a donc autant de boutons qu'une manette super nes.

                                    J'ai aussi testé une manette 3 boutons. Ça fonctionne bien avec "map=4". Normal c'est le code pour une manette megadrive 3 boutons.
                                    Mais ça fonctionne aussi avec un "map=6" (code pour manette megadrive 6 boutons) et donc on peut passer d'une manette à l'autre sans changer les réglages du pilote.
                                    Il faut tout de même refaire l'attribution des boutons dans emulationstation mais c'est déjà ça.

                                    Il reste juste ce bug de recalbox.conf. Vous avez des pistes @subs @acris ?
                                    Je peux être votre testeur si vous avez des trucs à essayer.

                                    1 Reply Last reply Reply Quote 0
                                    • Substring
                                      Substring last edited by Substring

                                      @Yurek Le code dit que controllers.gpio.enabled doit êtrà 0 pour que le db9 soit chargé. Par défaut, il me semble que ce n'est pas le cas. Comme je n'ai pas vu ton recalbox.conf en entier, je ne peux pas savoir

                                      Former dev - Please reply with @substring so that i am notified when you answer me
                                      Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                      1 Reply Last reply Reply Quote 0
                                      • Yurek
                                        Yurek last edited by

                                        @subs je viens de vérifier et c'est bien à 0.

                                        Voici la partie controllers de mon recalbox.conf :

                                        # -------------- D - Controllers ----------------- #
                                        # Enable support for standard bluetooth controllers
                                        controllers.bluetooth.enabled=1
                                        
                                        
                                        ## Please enable only one of these
                                        # -------------- D1 - PS3 Controllers ------------ #
                                        ##Enable PS3 controllers support
                                        controllers.ps3.enabled=0
                                        ## Choose an driver between official, shanwan and gasia if you have dualshock clones (official,shanwan,gasia)
                                        controllers.ps3.driver=official
                                        
                                        
                                        # ------------ D2 - XBOX Controllers ------------ #
                                        ## Xbox controllers are already supported, but xboxdrv can solve some compatibility issues 
                                        ## Enable xboxdrv driver, disable this if you enabled ps3 controllers (0,1)
                                        controllers.xboxdrv.enabled=0
                                        ## Set the amount of controllers to use with xboxdrv (0..4)
                                        controllers.xboxdrv.nbcontrols=2
                                        
                                        
                                        # ------------ D3 - GPIO Controllers ------------ #
                                        ## GPIO Controllers
                                        ## enable controllers on GPIO with mk_arcarde_joystick_rpi (0,1)
                                        controllers.gpio.enabled=0
                                        ## mk_gpio arguments, map=1 for one controller, map=1,2 for 2 (map=1,map=1,2)
                                        controllers.gpio.args=map=1,2
                                        
                                        
                                        ## DB9 Controllers
                                        ## Enable DB9 drivers for atari, megadrive, amiga controllers (0,1)
                                        controllers.db9.enabled=1
                                        ## db9 arguments
                                        controllers.db9.args=map=6,6
                                        
                                        ## Gamecon controllers
                                        ## Enable gamecon controllers, for nes, snes psx (0,1) 
                                        controllers.gamecon.enabled=0
                                        ## gamecon_args
                                        controllers.gamecon.args=map=1
                                        
                                        ## XGaming's XArcade Tankstik and other compatible devices
                                        controllers.xarcade.enabled=0
                                        

                                        Je n'ai toujours pas le pilote activé quand je fais un lsmod.

                                        Substring 1 Reply Last reply Reply Quote 0
                                        • Substring
                                          Substring @Yurek last edited by Substring

                                          @Yurek effectivement il y a un bug
                                          il faut editer /etc/init.d/S26recalboxsystem et bien avoir :

                                          rb_gpio_configure() {
                                              settings_gpio_mk="`$systemsetting -command load -key controllers.gpio.enabled`"
                                              if [ "$settings_gpio_mk" == "1" ];then
                                          	settings_gpio_map="`$systemsetting -command load -key controllers.gpio.args`"
                                          	[ "$settings_gpio_map" == "" ] && settings_gpio_map="map=1,2"
                                          	recallog "enabling mk_arcade_joystick_rpi"
                                                  eval $config_script "module" "load" mk_arcade_joystick_rpi "$settings_gpio_map" >> $log
                                              else
                                          	# mk disabled let's check for db9
                                          	settings_db9="`$systemsetting -command load -key controllers.db9.enabled`"
                                          	if [ "$settings_db9" == "1" ];then
                                                      settings_db9_map="`$systemsetting -command load -key controllers.db9.args`"
                                                      recallog "enabling db9"
                                                      eval $config_script "module" "load" db9_gpio_rpi "$settings_db9_map" >> $log
                                          	else 
                                          	    # db9 and mk disabled let's check for gamecon
                                                      settings_gamecon="`$systemsetting -command load -key controllers.gamecon.enabled`"
                                                      if [ "$settings_gamecon" == "1" ];then
                                                          settings_gamecon_map="`$systemsetting -command load -key controllers.gamecon.args`"
                                                          recallog "enabling gamecon"
                                                          eval $config_script "module" "load" gamecon_gpio_rpi "$settings_gamecon_map" >> $log
                                          	    fi
                                          	fi
                                              fi
                                          }
                                          
                                          

                                          la ligne

                                          settings_db9_map="`$systemsetting -command load -key db9_args`" 
                                          

                                          était fausse (voir ligne 10 dans mon bout de code). Je ferai la correction dans recalbox dans la semaine.
                                          Toi tu dois mount -o remount, rw / avant d'editer le fichier

                                          Former dev - Please reply with @substring so that i am notified when you answer me
                                          Ex dev - Merci de me répondre en utilisant @substring pour que je sois notifé

                                          1 Reply Last reply Reply Quote 0
                                          • Yurek
                                            Yurek last edited by

                                            Merci @subs ! Ça fonctionne.

                                            Je suis impressionné par ce forum et la communauté recalbox.
                                            Continuez comme ça.

                                            Je vous montrerais mon projet une fois terminé.

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Want to support us ?

                                            75
                                            Online

                                            99.6k
                                            Users

                                            28.1k
                                            Topics

                                            187.1k
                                            Posts

                                            Copyright © 2021 recalbox.com