Xbox One (S) / Xbox 360 controller issues
-
Pi Model or other hardware: 3B and 3B+
Power Supply used: Both original
RetroPie Version Used: 4.4
Built From: Premade beta upgraded to 4.4
USB Devices connected: Mentioned controllers
Controller used: Xbox One (S) / Xbox 360 controller
Error messages received: None, so far
Log found in /dev/shm/runcommand.log (if relevant): -
Guide used: -
File: -
Emulator: All
Attachment of config files: -
How to replicate the problem: Just connect a Xbox controller and start using it.As mentioned before here and here, the (wired) Xbox controllers run into some issues. When booting the system with a Xbox controller connected everything seems fine, ES works as it should, but as soon you start an libretro based core the controller stops working. None of the buttons seems to respond correctly.
I tested this on two seperate systems my own 3B (Xbox 360) and a friends 3B+ (Xbox One S, two different controllers), all gave the EXACT same behavior. In both cases this started when updating the beta images from the forums to the official 4.4.
First thing i tried to do is remove all the controller configs and add them back again. Everything goes without a problem until you need to set the trigger buttons. The left trigger is detected (within ES and jstest) as Axis 2 and the right trigger is detected as Axis 5. As shown in the unclear video (at the bottom of this post) of jstest, Axis 2 and 5 both got a negative value of -32k. As you come to the step for configuring the left trigger, you press the left trigger, the value increases so Axis 2- is set for left trigger and within a blink Axis 2+ is set for the right trigger. All the other buttons seem to work fine.
I hope it is clear that the trigger buttons don't suppose to be seen as an Axis (edit: in fact they are). Im also quite sure this wasn't the case before updating to the official 4.4.
-
I found a sd-card that had 4.3.11 on it. This shows left trigger is button 6 and right trigger as button 7.
Edit: Also tested 4.3.16 (this one is Strech for sure), also no problems here.
Edit2: Updated the 4.3.16 to 4.4 without installing updates to OS and kernel and the buttons still work. So it's not directly RetroPie causing this. -
Managed to "fix" this. The xpad driver needs to be updated. With newest OS/kernel patches, some, if not all Xbox controllers need triggers to be mapped to the buttons.
Example: https://github.com/ShadowRon/xpad/commit/f2814bf96db2b1f7f829e80dc334c88735adee98
-
Edit: Don't use this!!
If you are really i need for this fix (and don't know how to apply it) for your controller, here is quick how to. This only fixes Xbox 360, One and One S controllers as i can't test the other controllers like Elitepad. Everything you do is at your own risk!!
Go
/home/pi/RetroPie-Setup/scriptmodules/supplementary/
Editxpad.sh
Go to line 28
Replace this
gitPullOrClone "$md_inst" https://github.com/paroj/xpad.git
With this
[removed for now]
Open "RetroPie Setup" in ES
Go to "manage packages" -> "driver" -> "xpad" -> "update from source"
Wait until complete
Go back to ES
Enter "Configure input"
You know the drill from here.Now your controller will register the triggers correctly and also will work with all libretro cores again.
If you don't want to do above steps, you will need to wait until paroj fixes this or when i figure out to make a decent PR on Github.
-
@Shadowron will core controller remaps need to be manually patched after updating this driver?
-
@cian Well to be honest, don't apply this patch. Yesterday i booted up the pi again and the controls were all messed up again. Couldn't use select or start, tried te reconfigure and again got the problem with Axis 2 and 5. Two days ago everything was fine, even played serveral games with the same controller. Even tested with jstest and all buttons were mapped fine.
Tried to fix this, but it's starting to freaking me out as i really don't know why it worked and a reboot later it doesn't.
-
@shadowron ah no bother, thanks.
-
im having the same issues, retropie 4.4 installed, 360 controllers working perfectly, then update and bam, broken. all advice says: don't update. so ill roll back to new, and wont update, not updating bothers me a bit, that feeling that newer is always better is hard to break sometimes
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.