Solved Manette megadrive par DB9/GPIO
-
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 #
-
@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 -
@acris je dois tester et verifier le code
-
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 ?
-
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. -
@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 -
@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.
-
@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 doismount -o remount, rw /
avant d'editer le fichier -
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é.
-
@Yurek je n'ai pas reverifie ta version de pi,mais la correction est ok sur la brabche unstable. La maj est dispo syr pi3 et le sera sur pi2 d'ici 2h (donc vers 10h du matin en ce jour beni de changement d.heure)
Edit: tu es en pi3 donc c'est dispo. Donc tu changes le type d'update dans le recalbox.conf, tu fais la maj, et normalement ton db9 fonctionnera de suite. Tu peux me confirmer stp ?
Ensuite tu repasses sur stable, refais la maj, reedite ton fichier S26 et tout baigne. Et oui, fallait pas trouver un bug hahaha