Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

Interchanging Controllers



  • Hi all, I am pretty new to RetroPie and I am looking for help on using different controllers interchangeably, sort of like a RetroArch auto controller config/detect & update. Everytime I switch out a controller, (they have different button layouts/ids - Two are my SNES controller to USB adapters using OEM SNES controllers, and the others are either an iBuffalo SNES gamepad, or a PS3 controller) they either have the buttons incorrect, or they don't work at all. I can't even open the RetroArch GUI with the controller. I have set up each controller in ES, and if I have my main controller in (OEM SNES), RetroArch GUI can see them and it even auto configures all the controllers properly I want to be able to use any controller I want. But as I said, if I switch them out, they usually just don't work and I can't even access RGUI. I want to achieve a literal plug n play portable retropie box so I can take it to friends/family's house without having to drag along a keyboard for emergency RGUI config. Any advice? Thanks in advance!

    Can anyone also recommend a more in depth guide to RetroArch/RGUI for global configuration with system-specific configs taking priority if set?

    Setup:
    Pi Model: 2B
    RetroPie Version Used: 4.1
    Built From: Scratch (4.1 installer)
    USB Devices connected: 1 SNES to USB adapter (2 SNES ports) 8 button 2 axis iBuffalo USB gamepad
    Controller used: OEM SNES, PS3, iBuffalo SNES
    Guide used: Wiki, Floob's USB controller videos
    Emulator: Any



  • @callitkarma67 I was reading a bit and maybe this can help you: https://libretro.com/forums/showthread.php?t=5659

    Basically they map one joystick and for the other use something like xpadder, antimicro or joy to key to map the other joystick to keys and that way they can use both at same time for the same player.

    Antimicro is opensurce and linux compatible so it should work with Rpi.
    Regards.



  • @Nismo said in Interchanging Controllers:

    @callitkarma67 I was reading a bit and maybe this can help you: https://libretro.com/forums/showthread.php?t=5659

    Basically they map one joystick and for the other use something like xpadder, antimicro or joy to key to map the other joystick to keys and that way they can use both at same time for the same player.

    Antimicro is opensurce and linux compatible so it may work with Rpi.
    Regards.

    That would work out great, but xpadder/joy to key are Windows applications right? This is for a Raspberry Pi. I have never heard of Antimicro though, I will do a bit of research on that.



  • @callitkarma67 Read my last post again.





  • @Nismo I am so sorry, I somehow completely overlooked the last part. I will look into using AntiMicro with RetroPie as it definitely is Linux compatible. Any idea why sometimes the retroarch config will completely stop working - sometimes randomly and a reboot fixes itself, and sometimes when I disconnect the keyboard.



  • @callitkarma67 I don't know sorry, another alternative for antimicro could be qjoypad.

    Keep in mind that some of these programs can be very resource intensive for Rpi, you can test and see the results.



  • I'd rather not use any external programs. There has to be a way to seamlessly switch controllers and RetroArch just figure out which one is in and switch it's device index accordingly and automatically.





  • I actually just stumbled on that article.. that may work the way I want it. I will be trying that and reporting back. Thanks!



  • Did you get this sorted? i have the same problem but i think if i could just have the controller setup run on every restart it would solve the problem for me. could anybody help me do this?



  • @callitkarma67 did you hardcoded some input config on your global retroarch.cfg?



  • @meleu no I'm looking into doing that hard coding now. I tried to use joystick selection but it doesn't work if Roms are on a network share :( and that's how my main RetroPie is set up. I do have a portable pi and joystick selection did a little bit but sometimes the RetroArch device index is still wrong, even when set in selection tool global config. Question on hard coding though, you have to set the device index, how would I know that for a controller that is new to the pie or one that isn't plugged in at the time? Sorry I'm real new to this, and this should seriously be an out of the box automatic feature honestly.

    @csweeper not yet sadly. But once I do I will be sure to mention you when I mark solved.



  • @callitkarma67 said in Interchanging Controllers:

    @meleu no I'm looking into doing that hard coding now.

    I think it wouldn't solve your problem and probably will make it worse! Don't do it! :-)

    I tried to use joystick selection but it doesn't work if Roms are on a network share

    I can't see a relation between them.

    I do have a portable pi and joystick selection did a little bit but sometimes the RetroArch device index is still wrong, even when set in selection tool global config.

    That's why I implemented the "joystick selection by name method".

    Sorry I'm real new to this, and this should seriously be an out of the box automatic feature honestly.

    My personal opinion is: RetroPie is contraindicated for those who want to get things working out-of-the-box. Maybe you would like to know the recalbox project...



  • @meleu I will try the by name method out tonight! I'm not going to do the hard code. I started to look at recalbox, but I've already dove in to RetroPie and RetroArch, so I stopped.



  • @meleu OK so the joystick selection by name seems to work out pretty well on my portable pie. However, I would really like to see your tool allow install and use on network share ROMs. Especially cause that's advertised as a ROM method on the wiki. Quick question too about the tool, is it possible to have a completely separate controller other than the global 4 that is system specific? I.E. 4 controllers setup in Global we'll say 2 SNES, 2 PS3, and then have a 5th (N64 controller) technically dedicated ONLY to like N64.



  • @callitkarma67 said in Interchanging Controllers:

    I would really like to see your tool allow install and use on network share ROMs. Especially cause that's advertised as a ROM method on the wiki.

    Sorry dude. I'm not understanding what you mean. What the tool does is just some editing on retroarch.cfg files. I'm not getting what it has to do with this network share ROMs stuff...

    is it possible to have a completely separate controller other than the global 4 that is system specific?

    Yes. But you need to be aware that if a player has its controller as UNSET, it gets the default. The default for player1 is the first controller detected by the OS; for player2 is the second controller; and so on. Then if your N64 is the 2nd controller detected by the OS and the player2 controller is UNSET, RetroArch will set the N64 controller for player2. To avoid it you need to explicitly set another controller for player2.



  • @meleu when I try to install joystick selection tool on my pie with the network share, during the install it gives an error saying "Error: it seems that you installed RetroPie in some unusual directories. Currently this joystick-selection tool only works for RetroPie with default paths." And then the installer exits. It also shows this error as an echo in the code on your GitHub in the install.sh file.

    As for the n64 controller for system specific, I understand that and will make sure I don't have anything unset. So thanks for that.



  • @callitkarma67 can you tell what guide you've followed to make your network share ROMs setup?



  • @meleu the guide on the official wiki



Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.