USB hub and autoconfigs

I have been having a lot of struggles recently attempting to configure my arcade cabinet controls with Retroarch v1.4.1b. I am using 4 Ultimarc UltraStik 360 joysticks plugged into a usb hub. All 4 joysticks show up in RA using port #1 which I understand is the port assigned to the usb hub. When I try to save either a new autoconfig or update changes to an existing autoconfig it ends up creating or updating the autoconfig profile for the wrong joystick even though the device name and product id is clearly different for each joystick.

For example, I load up RA, set input binds for user 2 which is set to joystick “Ultimarc Ultra-Stik Player 2” then save the autoconfig, it ends up creating a autoconfig profile for the joystick “Ultimarc Ultra-Stik Player 3”.

In addition, I cant seem to keep the joysticks assigned to the user I want. Sometimes the third joystick gets assigned to user 2 instead of 3 and it seems to be due to the order in which the joysticks are loaded from the hub, as i cycle through the joysticks on port #1 i will see for example the player 1 joystick, then player 3, then player 2, then player 4.

I have tried both sdl2 and xinput drivers, both have the same behavior. I suspect that this all has something to do with the hub. The joysticks always have the same id and name in devices and printers and Xpadder is always able to identify the correct joystick and load correct profiles i have bound for each joystick. I am unable at the moment to do any debugging but i certainly can later if needed.

Couple of feature requests in addition, I can post these somewhere else as well if that would be better.

First, it might be useful to have the ability to manually set what user an autoconfig profile is bound to, obviously in my situation, the user device port binds from the RA config doesnt do much for me as i am using a usb hub. This could get hairy when you have multiple controllers with the same name but hey, throwing it out there.

Second, it would be nice to allow for multiple devices to be bound to the same user at once, for example, in my arcade cabinet, I have arcade joysticks, a flight stick and then two wireless xbox 360 controllers, ideally what i would like to do is assign one of the arcade sticks, the flight stick and one of the xbox 360 controllers to user 1, so while playing a game i could use any one of the 3 devices without having to go into the menu and changing the device for user 1. I know, a little nutty, the majority of RA users would probably have no use for this, again, throwing it out there.

Sorry for the long post.

The way the autoconfigs are supposed to work, you don’t need one for each stick. Just connect one stick and create the autoconfig profile in the P1 spot. Exit, re-launch and see if it’s autodetected properly. If so, connect a second stick and it should be autoconfigured and hop straight into the P2 slot, rinse and repeat for each stick and/or pad, as long as each stick/pad model has an autoconfig profile already created.

As for making the correct ones show up in the correct order, RetroArch gets the numbering from the OS, which assigns them as it recognizes them, IIRC. I think @anon24419061 has some separate Windows program that will let you change the numbering…? He has expressed interest in making all platforms act like Android, where pads/sticks aren’t enumerated until you press a button on it but that’s still in the discussion stages right now.

Sorry hunterk, yes normally for two x360 controllers for example, you only need one autoconfig, but in my case, i wired the buttons for a couple of sticks a little different which is why i must have an autoconfig per joystick and on top of that i dont think i have a choice because each of the 4 sticks have a different name so when i save an autoconfig it creates a new conf with the name of that stick and as i said in my OP, it creates one for the wrong stick.

I will play around with this a little more, ill try your connect, create profile, restart and repeat method and see where it gets me.

At the end of the day i just dont want to use Xpadder anymore if I can avoid it, adds unneeded complexity and latency.

I figured this out. I had to plug one joystick in at a time, map the controls, save the autoconfig and then modify the autoconfig with the correct name and product id, rinse and repeat. BTW nothing to do with having a hub RA just isnt saving the autoconfig for the right joystick but i understand why it would do that. Normally there would be no need to have multiple profiles for the same device.

Would you mind posting your config file? I’m having issues getting two Ultrastik 360s to work with the IPAC Ultimate in Retroarch (Windows) in my arcade cabinet. My set up is:

Two Ultrastik 360s (Player 1, Player 2) plugged into USB IPAC Ultimate IO Keyboard Encoder for all of the arcade cabinet buttons

When I launch a RA emulator (e.g. NES), I get the yellow text at the bottom that says my Ultrastiks are not configured. The game recognizes the button pushes of the arcade buttons but the Ultrastiks do nothing.