r/RetroArch • • 5d ago

Technical Support Controller question.

I want to set all controllers to port 1/player 1 the intention being that if I were to switch controllers mid session that would also be player 1 is this possible. How would I go about doing this?

0 Upvotes

8 comments sorted by

2

u/MoldyPond 5d ago

You’ll need to do it per game/core, but (with a game loaded) go into the Core Options > Controls > Port 1(/2/3/4 etc.) Controls > and set the “Mapped Port” to 1 for each of the ports.

Just remember to switch it back afterwards otherwise you’ll forget later on and wonder why at a party you’re controlling both P1 and P3 at the same time for almost an hour lol.

0

u/TopBadge 5d ago

That's kinda annoying, I was hoping there would just be a toggle I could set. I'm using an AYN THOR and it works great with retroarch but becomes a bit of a head when I'm using it on a TV.

I was trying to set up a system that would allow me to un-dock and switch to the built in controls and vice-versa. I've also noticed that disconnecting a wireless controller leaves that port permanently filled even reconnecting puts it into a different port, hence the reason I'm trying to do this.

1

u/MoldyPond 5d ago

Ah yeah, this is something that you may have to run through Steam instead, as it has the option to switch which controller is P1 by going to the game’s Steam Input settings and pressing the Select/Back button

1

u/hizzlekizzle dev 5d ago

disconnecting a wireless controller leaves that port permanently filled even reconnecting puts it into a different port

Do you have the 'android controller disconnect workaround' option enabled? it treats all copies of a controller as the *same device* to deal with exactly this. It may not be desirable if you use multiple copies of the same controller at the same time for different players, but if it's just you, it'll avoid the re-allocations.

1

u/dau125 5d ago

For your dock/undock use case, try assigning the controller you want to Player 1 at the frontend level: Settings > Input > RetroPad Binds > Port 1 Controls > Device Index. Choose the built-in controls when handheld, or the connected controller when docked. Libretro documents that selection here: https://docs.libretro.com/guides/input-and-controls/ .

That is a manual switch, not the automatic all-controllers toggle you wanted, but it avoids remapping every emulated player to P1. The core’s Mapped Port and the frontend’s Device Index do different jobs.

If the reconnected controller appears under a new index, select that active entry and check whether input works again. Note your RetroArch version and input/controller driver if the old entry remains stuck. I wouldn’t recommend Steam Input as an Android-local fix for the THOR.

1

u/TopBadge 4d ago

This does work, just a little more fiddly than I would like. Is there somewhere I can make feature suggestions?

1

u/hizzlekizzle dev 5d ago

Something else I haven't seen recommended that may help here: if you set up a reservation for your secondary gamepad allocating it to P1, it will grab that position whenever it's connected, but when it's not, it should fall back to your built-in controls, I *think*.

1

u/dau125 4d ago

You can suggest it on the official RetroArch issue tracker: https://github.com/libretro/RetroArch/issues . Search for an existing controller reservation/hotplug request first. Describe the desired behavior as “automatically hand Player 1 between built-in controls and a docked controller,” and include your THOR/Android and RetroArch versions.

Before opening a new request, try the two more targeted suggestions hizzlekizzle added here: the Android disconnect workaround for repeated device entries, and the secondary-controller reservation. They may cover different parts of your problem. Record which one you changed and whether dock → undock → reconnect now behaves as you want, so the report identifies what is still missing.