Different physical controllers per core

Is it possible to have RA automatically switch to using different physical controllers based on which core is in use?

By way of example: Arcade Core - Joystick + Arcade buttons (via USB keyboard emu chipset) N64 Core - USB N64 Controller SNES Core - USB SNES Controller NES Core - USB NES Controller

I understand that a single controller can have the buttons mapped differently per core.

What I’m looking for is a way to let each core know that it should be accepting input from a particular controller.

I’m not sure if this can be done with the controller ports, or some other way. There’s a few more recent posts on the forum that get kind of close to talking about this issue, but not really. A few older ones (4-5 years) discussed the topic, with no resolution that I could see.

I’d really rather not have to duck into menus from RA and change controllers etc each time I or my houses guests switch between a system.

There’s no automatic solution for it, no. You can change the device index and potentially add the correct index to an override (I don’t think it’ll get included from the ‘save core override’ option, but you should be able to copy/paste it in manually). However, if you’re using Windows, it can reorder your pads unpredictably on each boot.

There is a utility that can help with that called “devreorder” but it only works with dinput, so you’d have to switch to that gamepad driver in settings > driver first.

Ok, thanks very much @hunterk.

I guess the next question, then, what is the preferred method among the Retroarch community for dealing with such an issue?

If I leave the joystick + buttons as a permanent fixture, and then plug in the appropriate controllers prior to launching a game (prior to launching RA?) - will RA remember the profiles for those controllers? I’m guessing this would basically just be the same as setting different inputs per core with overrides.

Basically I’m wondering if I could simply expose a couple of usb ports on the cabinet and swap controllers as necessary. Or use a USB switch if such a thing exists.

unplugging/replugging pads is indeed the easiest way to handle it. Just get them all mapped with appropriate autoconfig profiles and then you can use core remaps (made from quick menu > controls) to move stuff around as needed without breaking everything else.

There are indeed USB hubs with individual toggles that you could plug them all into and then just hit the button for the one you want to use.

1 Like

Thanks very much. That helps quite a bit.

Im doing the very same thing. I have purchased 2 sets of the “Vilros” retro game pads.

https://www.amazon.com/Vilros-Controller-Nintendo-Playstation-Raspberry/dp/B07GRCDG8J

My intention is to leave the joystick setup on the base for the MAME, and then i have 2 ports ive extended to the side of my cabinet.

https://www.amazon.com/ICESPRING-Female-Extension-Motorcycle-Dashboard/dp/B01NAMU8KY/ref=sr_1_4?dchild=1&keywords=usb+extension+car&qid=1612997753&s=electronics&sr=1-4

Ive tried to set up the autoconfig, but i think I’m doing something wrong. It recognizes the different controllers but they are not mapped properly. The NES controller the B button in the player one port never works. Its fine in player 2 port. I can switch the controllers and they are fine, so its a mapping issue. Same similar thing with the SNES controller Player one port has issues with the Y button. Player 2 is fine. Switch controllers and player 2 is still fine. Its always the player one port. If i remove the GP-Wiz for the sticks and just the ports change, still player one is wonky. Im running BigBox with retroarch as my main emulator…any help would be greatly appreciated. -Thanks John

OK, after some trouble shooting i solved my issue. I was using the front USB ports on my PC. I decided to use rear ports and all the controllers work fine. Hope anyone who comes across the same issue see this and it helps.

1 Like

jeeez, that’s a really weird solution, but I’m glad you found it!

1 Like

My guess is that the front ports share info, as its is nothing more than a multi port extension from the motherboard. :man_shrugging:

1 Like

Did you get your issue solved? Id be interested if the solution i came up with works also for you.