2x different 360 Wireless controllers not mapping correct at same time
-
Pi Model or other hardware: RP4 8gb
Power Supply used: CanaKit 3.5A USB-C Raspberry Pi 4 Power Supply with Noise Filter
RetroPie Version Used: 4.7.1
Built From: Pre made SD Image on RetroPie website (retropie-buster-4.7.1-rpi4_400.img), imaged via Mac ApplePiBaker program, on known-working Samsung EVO or Sandisk Ultra SD cards.
USB Devices connected: Wireless Rii 2.4g Keyboard (USB receiver dongle), Xbox360 wireless receiver
Controller used: 1x Xbox360 wireless controller, 3x Hori Tekken 6 Fightstick Xbox 360 Wireless fightsticks
Error messages received: none
Emulator: lr-fbneo, lr-mame2003, anything really
Attachment of config files: If you need these please tell me how to get them, pastebin of USB readout in body below
How to replicate the problem:I use a Microsoft Xbox 360 Wireless Adapter via USB (using Xpad I believe as Xboxdrv hasn't worked for me in years). Connected to the adapter, wirelessly, are three IDENTICAL Hori Tekken 6 Arcade wireless Fightsticks + an official Xbox 360 wireless Controller. I can NOT map the Xbox 360 Controller AND the Fightsticks to be mapped correctly at the same time.
I setup everything like a SNES controller with ABXY for the face buttons, and left and right shoulder buttons. This perfectly gives the Xbox 360 controller the same setup SNES used for Street Fighter II, which most retro gamers are used to, where Y/X/Left shoulder is weak/medium/fierce punch, and B/A/Right Shoulder is weak/medium/fierce kick. On the fightsticks it's setup exactly like a real arcade cabinet is setup for SFII and it's perfect:
Y X L (weak to fierce punches)
B A R (weak to fierce kicks)...BUT I can only get either-or setup correctly (the fightsticks or the Xbox 360 controller). If I setup the Xbox 360 controller so it's correct, the 3x Fightsticks are then messed-up. After that, If I re-map the fightsticks so they're correct, only ONE fightstick will be correct (the one I just programmed), but I did notice if I restart EmulationStation ALL 3x fightsticks will then be correct (but the Xbox 360 controller is then messed-up).
I've had this same issue on different cheap USB controllers which use the same chip but had the buttons internally wired differently - when their USB "idVendor" and "idProduct" codes came up as the same, the Raspberry Pi couldn't tell them apart so you could never have "A" or "B" or whatever button in the same place on both controllers. Does the Xbox 360 Wireless Adapter act this same way? No ID's are transmitted back to the Pi ("dmesg" readout seems to say this, but they do have 1.0, 1.2, etc. listed at the end of otherwise identical lines)? These are a FAR cry from a cheap $4 controller... If this is true then anything, from any manufacturer (which there's a LOT of 360 wireless devices), ALL come back as being the same exact device?
Any workaround for this? Booting them in a certain order every time or something?
What's going to happen when I get my Xbox 360 WIRED fightsticks out of storage and try to mix those in as well? Those use the same driver I believe.
On a related note: is the USB controller device order no longer implemented in RetroPie anymore? Seems like the Xbox wireless adapter is superseding anything physically plugged in on a lower USB port number, or maybe I have to reboot and test that again? (i.e. not hot swappable? - I forget if it ever was TBH).
-
@dochartaigh said in 2x different 360 Wireless controllers not mapping correct at same time:
I use a Microsoft Xbox 360 Wireless Adapter via USB (using Xpad I believe as Xboxdrv hasn't worked for me in years).
xboxdrv
is not a gamepad driver, it's a special driver that emulates an Xbox 360 gamepad.Connected to the adapter, wirelessly, are three IDENTICAL Hori Tekken 6 Arcade wireless Fightsticks + an official Xbox 360 wireless Controller. I can NOT map the Xbox 360 Controller AND the Fightsticks to be mapped correctly at the same time.
If they all identify with the same name ('Xbox 360 Controller Pad' or similar), they will share the same configuration.
I've had this same issue on different cheap USB controllers which use the same chip but had the buttons internally wired differently - when their USB "idVendor" and "idProduct" codes came up as the same
It most likely the same situation - if name is identical, then they'll share the same configuration.
Post the output of
cat /proc/bus/input/devices
with all the controllers connected. -
@mitu said in 2x different 360 Wireless controllers not mapping correct at same time:
cat /proc/bus/input/devices
Here you go, if the "key" is their unique identifier they are indeed all recognized as the same exact device:
So if that is true, anything else I can do? It'll be a pain but I was going to re-wire the fightsticks so when I map the Xbox 360 controller the Fightsticks have the correct mapping as well – that's the only thing I can think to do. Want to bring my other WIRED fightsticks into the mix though to make sure those don't mess it up.
-
@dochartaigh said in 2x different 360 Wireless controllers not mapping correct at same time:
Here you go, if the "key" is their unique identifier they are indeed all recognized as the same exact device:
You have 4 instances of:
I: Bus=0003 Vendor=045e Product=02a1 Version=0100 N: Name="Xbox 360 Wireless Receiver"
so, yes, as far as the input system is concerned, they're the same type of device.
So if that is true, anything else I can do?
Depends on how do you intend to use them - you might be able to use them separately during gaming, but not at the same time. There's nothing out-of-the-box that will account for this type of situation, so you'll have to either use one type of controller to navigate EmulationStation and add some scripts to
runcommand
to switch configuration for certain games/systems and use the other controller(s). -
@mitu said in 2x different 360 Wireless controllers not mapping correct at same time:
so, yes, as far as the input system is concerned, they're the same type of device.
Think I'm going to rewire them - not too hard, the wiring harness has pins I can just pull out and shove into another spot - will just have to figure out what goes where and remember the original layout if I ever want to put it back lol. Thanks for the help though.
@dochartaigh said in 2x different 360 Wireless controllers not mapping correct at same time:
On a related note: is the USB controller device order no longer implemented in RetroPie anymore? Seems like the Xbox wireless adapter is superseding anything physically plugged in on a lower USB port number, or maybe I have to reboot and test that again? (i.e. not hot swappable? - I forget if it ever was TBH).
And yes, I'm quoting myself and looking for confirmation on this. Seems like on the RP3 when all 4x USB's were 2.0, the order was something like left bottom 0, top 1, right side bottom 2, top 3.
On the RP4, I think (NOT positive, would like confirmation if possible), they run separately for the USB 2.0 side and the USB 3.0 side. I had my WIRED fightstick plugged into the left side #1, which should have superceeded the 3x WIRELESS fightsticks which were plugged into #2, but I think because the wireless was on the 3.0 side that superceeded the 2.0 side in controller order. Right now I have the wired fightstick plugged into the right side top, and the wireless 360 dongle on right side bottom and the wired one is player #1, and the wireless are #2/3/4. can anybody confirm this is how it works now on a RP4?
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.