Open w3bb opened 3 years ago
I would like to add that the 8BitDo Pro+ version of this line also doesn't work in Switch more under Steam on Linux, but does on Windows. (Every other mode works fine, I use it in XInput mode frequently)
Additionally, the controller is detected by my system just fine, and non-Steam games that support controllers natively respond to it.
And finally, last year, when I bought this controller, I could use it in Steam Linux in Switch mode, even the Switch layout flag worked fine in games like Hades. But since learning about gyro support in Steam I've tried to connect it in Switch mode again and it never detects it.
A follow-up on this:
For me, the 8BitDo Pro 2 on its most recent firmware does connect and work successfully on Linux when connected via a USB cable, in Switch mode (it shows up as "Nintendo Switch Pro Controller: Nintendo Switch Pro Controller")
When connected by Bluetooth in Switch mode, I get these log messages in controller_ui.txt:
[2022-03-03 16:49:24] Controller 5 connected, configuring it now...
[2022-03-03 16:49:36] Warning, couldn't get controller details for 5
[2022-03-03 16:49:36] Controller 5 disconnected
[2022-03-03 16:49:39] Controller 5 connected, configuring it now...
[2022-03-03 16:49:51] Warning, couldn't get controller details for 5
[2022-03-03 16:49:51] Controller 5 disconnected
With this pattern repeating about every fifteen seconds. The controller maintains its bluetooth connection to the PC throughout, but Steam seems to be having trouble recognising it.
This problem only seems to happen if the controller is already known on the PC; if you make your computer completely forget the controller and then re-pair it to the machine, Steam immediately recognises it and is happy to use it until the next time you connect it (at which point it goes back to the "couldn't get controller details" flow described above)
With kernel 5.17, this doesn't look like a Steam issue, but a problem with the linux kernel.
Connecting the controller with USB and having the 'S' setting shows several errors in syslog.
Most notably
kernel: nintendo: probe of 0003:057E:2009.0006 failed with error -110
No device is created under /dev/input/js*, so no controller can show up in steam.
The same goes for the 'A' setting:
kernel: sony 0003:054C:05C4.0007: failed to retrieve feature report 0x81 with the DualShock 4 MAC address kernel: sony 0003:054C:05C4.0007: failed to claim input
Only 'D' and 'X' work without errors in syslog, a device under /dev/input/js0 and with the controller showing up under steam.
I own the original 8bitdo pro+ but had the same issues with switch mode. I was able to fix the issue by unloading the hid_nintendo kernel module. This caused steam to recognize the controller as a switch pro controller, and gyro controls then worked in steam.
Thanks, unloading hid_nintendo did the trick!
e.g. with rmmod hid_nintendo
The controller is working fine in Switch mode now.
I can confirm that rmmod hid_nintendo
works but I have to run this command everytime I open steam, how can I make this permanent?
On the other hand, this workaround only works with USB, It doesn't work with bluetooth, any ideas?
@Lucario24 you could blacklist the module or create an udev rule to unload on connection
Your system information
Please describe your issue in as much detail as possible:
On (my installation of) Linux, the aformentioned controller does not appear in the controller menu. It works fine in Dolphin, Yuzu, and jstest-sdl. It doesn't show up whether connected wired or wirelessly in Switch Mode. Other controllers like my Wii U Pro Controller appear, and the controller works in XInput Mode as well as Apple Mode (DS4 emulation I believe, although without gyro).
Even though the controller isn't supported, multiple people have reported it as working on Windows. It seems like a strange discrepency that might be a bug (although it might be a nothing burger, I'm not super familiar with Steam Input and its internals).
Steps for reproducing this issue:
After clearing out controller.txt and attempting to connect the controller, the logs were empty.