Input Scrambled After Retropie Update
-
@gabraham said in Input Scrambled After Retropie Update:
Starting to consider trying to roll back some drivers to see if that has an affect.
You shouldn't need any special drivers for the SN30pro. How is the controller detected - the 8Bitdo controllers have various modes of operating and they change their name & behavior depending on the start mode (XInput/DInput/Switch/Android) ? What's the name shown in EmulationStation when you map the controller ?
-
@mitu This is not a bluetooth controller. The USB version does not have multiple modes. When trying to register input with EmulationStation, it is recognized as an xbox 360 controller. This, again, worked fine recently.
-
@gabraham said in Input Scrambled After Retropie Update:
The USB version does not have multiple modes.
If is this model, then it does, even if wired. However, it should work regardless.
The only driver that could be involved is the
xpad
driver, which handles Xbox wired drivers - there's nothing else involved. Can you post the output of the following command ?cat /proc/bus/input/devices
-
@mitu said in Input Scrambled After Retropie Update:
If is this model, then it does, even if wired. However, it should work regardless.
https://download.8bitdo.com/Manual/Controller/SN30pro-USB/SN30-Pro-USB.pdf
That is the manual. If there are multiple modes, there is no way in the manual to toggle between them. It may be that the controller decides on connection whether or not it is in one of the two modes but if it does, I don't know how to manipulate that and I've already tried reseating the usb cable to see if it does anything different.@mitu said in Input Scrambled After Retropie Update:
The only driver that could be involved is the
xpad
driver, which handles Xbox wired drivers - there's nothing else involved. Can you post the output of the following command ?cat /proc/bus/input/devices
I: Bus=0003 Vendor=045e Product=028e Version=0114 N: Name="Microsoft X-Box 360 pad" P: Phys=usb-0000:01:00.0-1.1/input0 S: Sysfs=/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input0 U: Uniq= H: Handlers=event0 js0 B: PROP=0 B: EV=20000b B: KEY=7cdb0000 0 0 0 0 0 0 0 0 0 B: ABS=3003f B: FF=1 7030000 0 0
-
@gabraham said in Input Scrambled After Retropie Update:
That is the manual. If there are multiple modes, there is no way in the manual to toggle between them
I see, so it's one of the models that tries to be 'smart' and guess which host is connected to in order to masquerade as either a Xbox 360 controller or a Switch Pro controller.
Based on the Vendor/Product ID (Vendor=045e Product=028e) detected, the driver used for it is clearly
xpad
. I wonder if the gamepad detection makes the driver fail to load.You can test how your buttons/joystick are detected on the controller by using
jstest
from the command line and pressing each input separately to see how it appears on screen:jstest /dev/input/js0
You can interrupt the test at any time using
Ctrl+C
. Can you check if your triggers are detected as buttons or axis ? -
@mitu said in Input Scrambled After Retropie Update:
Can you check if your triggers are detected as buttons or axis ?
They are detected as axis. I've seen this happen before but I just have no idea why it's suddenly a problem or how to make the Pi recognize them as buttons. I suppose it's possible it was in Switch mode this whole time and suddenly it's in PC mode or something. The switch controller doesn't have analog triggers so this would seem to make sense. The question of course becomes how do I either make the Pi understand they are really buttons, or I guess figure out how to force the modes.
-
@mitu said in Input Scrambled After Retropie Update:
I see, so it's one of the models that tries to be 'smart' and guess which host is connected to in order to masquerade as either a Xbox 360 controller or a Switch Pro controller.
After you mentioned the multiple modes I decided to see if there was an undocumented way to force one mode over the other and there does appear to be. If I hold down the Y button, it will, much like the bluetooth version, be recognized as a Pro Controller on my PC. When I do this on the Pi however, it fails to detect any button presses whatsoever. If I do not press anything when I plug the controller in or press one of the other face buttons while doing so, it reacts exactly as it has been and the triggers are not recognized properly.
-
@gabraham said in Input Scrambled After Retropie Update:
.. it's possible it was in Switch mode this whole time and suddenly it's in PC mode or something.
That's unlikely, since the name of the gamepad would have been different and (i.e. not Microsoft X-Box 360 pad).
They are detected as axis.
This means the
xpad
driver is either not loaded for the controller or it's not installed properly. Thexpad
driver included in RetroPie is configured to detect those as buttons - the situation you're describing (triggers appearing as axis) is common when the driver is not installed.Can you re-install the driver and then post the installation log file from
$HOME/RetroPie-Setup/logs
? -
@mitu https://pastebin.com/M9qA6rMe
No change. I even confirmed that the xpad.conf file to make sure the triggers to buttons option was set to 1. When I uninstalled it I lost the ability to use my controller too, so I would think it would have to be loaded.
-
OK, so the
xpad
driver is installed correctly, no issue here.
Try to see if it's loaded/used for the controller. Boot the Pi without the controller plugged in, then run from the terminaldmesg -w
and plug in the controller. The driver should load if the controller is properly detected. Post the messages shown by
dmesg
when plugging in the controller. -
@mitu said in Input Scrambled After Retropie Update:
Post the messages shown by
dmesg
when plugging in the controller.[ 132.541524] usb 1-1.1: new full-speed USB device number 3 using xhci_hcd [ 132.681834] usb 1-1.1: New USB device found, idVendor=045e, idProduct=028e, bcdDevice= 1.14 [ 132.681852] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 132.681866] usb 1-1.1: Product: Controller [ 132.681879] usb 1-1.1: Manufacturer: Controller [ 132.681892] usb 1-1.1: SerialNumber: Controller [ 132.758613] input: Microsoft X-Box 360 pad as /devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input0 [ 132.758925] usbcore: registered new interface driver xpad
-
Looks like the
xpad
driver is loaded for the controller - I have no idea why the configuration fromxpad.conf
(triggers_to_buttons=1
) doesn't work. -
I also tried xpadneo out of desperation but the controller is always recognized as an xpad.
The xpad driver doesn't appear to have been updated for a few months and I was pretty sure I had updated the drivers since reflashing this Pi weeks ago. Only since I had updated it recently did this start happening. Unfortunately if there is a way to roll back the driver I don't know how to do it and the Retropie-Setup menu always fetches the latest one from source.
I appreciate you helping me to look into it in any case, but it's a damn shame because before this started happening it was almost perfect and just worked like a charm all the time.
-
I also tried xpadneo out of desperation but the controller is always recognized as an xpad.
xpadneo
is for Bluetooth XBox controllers only, it doesn't work for wired gamepads.The xpad driver doesn't appear to have been updated for a few months and I was pretty sure I had updated the drivers since reflashing this Pi weeks ago
Maybe the
xpad
driver is not at fault here. Although it has received some updates since 4.7.1 was released last year, it shouldn't affect the patch that RetroPie applies to it. Unfortunately I don't have any compatible controllers to test, but we also haven't received any similar complains lately.Just to check that the module options are applied, can you run
sudo cat /sys/module/xpad/parameters/triggers_to_buttons
and see if the output is
Y
? -
Output is
Y
.Also, earlier I tried changing that property to 0 but it affected nothing so I changed it back.
I actually have an 8bitdo wireless. I believe they are in the same family so the USB version is essentially just a stripped down version of the bluetooth one. Interestingly when I plug the bluetooth controller in with a USB port to use USB mode, I can cycle through the Switch and X-Input modes basically the same way and the Pi reacts just like it does with the usb controller. Switch mode USB is not recognized at all and X-Input just causes it to behave like the usb controller version.
-
Minor update: I saw on a reddit post that someone solved the issue somehow by resetting the EmulationStation input settings via the Retropie menu. I did so but no change. At this point I'm considering opening a GitHub issue on the Retropie GitHub.
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.