Open mhalano opened 3 years ago
I was capable to pair over Bluetooth with another laptop and also appears as a Xbox One controller, not a Xbox Series X one.
And the actual issue is? That the one button front center can't be configured? How is that pad functionally different to the XB1 pad? Or is this just about cosmetics?
@DanMan It's cosmetic, but is also an issue. An Xbox Series X controller should appear as an Xbox Series X controller, with correct photo and description. Another problem, there is a "share" button, just present on the Series X controller, not the One controller, that not show in the screen to be configured. It's strange because IIRC the Sony's DualSense controller already is supported, but not this controller.
Check ~/.local/share/Steam/tenfoot/resource/images/library/controller
to see for which controllers images exist. XB1X is actually in there, so your device might have a new, unknown USB device ID. Might want to post the output of lsusb
here while it's connected.
I checked that directory as you said, and there is an image for Xbox Series X controller. So exists a real bug, because even the controller is supported, it doesn't show as expected when plugged (over cable or Bluetooth).
Here are Gists with the console logs for me opening and closing Steam with multiple controllers connected. I saw an error about how Steam is dealing with the serial number of both Xbox controllers (Series X, One S and One ELite), but I don't know if this is the real reason to not detect the right model. ~Could be, because The Xbox One controller seems the fallback model, so if a problem occurs I couldn't say because the fallback model is the same as the one I connected initially.~ The Xbox One Elite Series 2 is recognized correctly over cable, even with the message about the serial number. The Elite controller is recognized as a regular Xbox One controller over Bluetooth, but could be another issue. Here are the gists: Xbox Series X controller - https://gist.github.com/mhalano/1aa7a690bf5ac7e4a84edae4d6419250 Xbox One S controller - https://gist.github.com/mhalano/faf687990385874a936ef0439f3f56ff PS5/DualSense controller - https://gist.github.com/mhalano/d62997f5640ddd79109bcc83cde7d500 PS4/DualShock 4 controller - https://gist.github.com/mhalano/2d4034a151844672bd28fcda90741a5c Steam controller - https://gist.github.com/mhalano/4309e76f8e4c51a8ddc8f694503c50d1 Xbox One Elite Series 2 controller - https://gist.github.com/mhalano/ad847fc1430149ea0a7f38653828b631
I did some updates to my previous comment because I got a new Xbox One Elite Series 2 controller.
Any news about this issue?
Any news? Now I'm using Ubuntu 21.10. It showed in the log the correct model, a Xbox Series X controller, but inside Steam still recognized as Xbox One controller
I was trying to understand the behavior, but I think is related to how Steam recognizes the controller. Here is the Elite Series 2 controller with path as sdl://0
Here is the PS4 controller recognized using hidraw:
@kisak-valve Do you know anyone who understands SDL, hidraw and the input part, so we can move the issue on?
After a lot of research, I think the problem is beyond Steam. The controllers are recognized as Xbox One model by kernel itself. So someone has to change the Linux code itself to recognize the controllers correctly. The one perk was the Elite 2 was recognized correctly via USB.
Linux kernel does not support new XBOX Series controller. Only working driver which i know is xpadneo. After installation it's working as expected (via BT). Without installation of xpadneo i can still pair it via BT but in games is everything broken and buttons/joystick don't behave properly.
Maybe one day will be xpadneo mainlined, but meanwhile we are out of luck. https://github.com/atar-axis/xpadneo/issues/44
Unfortunatelly in my country is not possble to buy previous XBOX One controller which has working driver in the kernel.
@X6205 Very meaningful, thanks.
A long shot: can be all string related. My Xbox Series S|X controller is recognized, via USB, as an Xbox One controller because the string used as identifier. See that:
May be Steam parses that and found "One" and defines the controller is for Xbox One (I'm working to fix that).
Strange the Steam's logs inform the correct device "Xbox Series X Controller", may be because SDL, but Steam seems doesn't care.
The thing which bugs me is the Xbox Elite Series 2 controller is recognized correctly, but just over USB and kernel identifies as a generic Xbox pad.
So, I question if the way kernel recognizes the controller is meaningful for Steam.
I'm using xpadneo and an Xbox Series controller over Bluetooth. Mine gets detected as an Xbox 360 controller after I accidentally hit the Setup Device Inputs in the new Deck-like Big Picture mode and had to rebind all the controls. And because by default xpadneo turns the Share button into F11 (or was it F12?), I skipped it when Steam prompted me to, after which my Xbox Wireless Controller turned into an Xbox 360 controller, including all the prompts and the graphic. OS is Fedora 37 KDE, latest kernel
Due to Steams Define Layout ui and nbpm Setup Input Device are broken we can use a standalone SDL configurator sdl2-gamepad-mapper https://gitlab.com/ryochan7/sdl2-gamepad-mapper
This is a great reminder of how awesomely configurable Steam SDL used to be though unlike the old Define Layout ui from large or obpm we can not choose which supported controller type we can set. Which is also completely missing from nbpm.
Steam is not detecting controllers like expected and is not applying controller layouts like expected.
My 8BitDo Pro 2 controller in X mode gets detected as xbox 360 controller using BT but gets detected as Xbox One controller using usb. Only xb1 config with xbox config and extended xbox feature set drivers enabled gets share (star) button working for screenshot in game. The paddles on back are never mappable or detected by Steam SDL.
Steam used to detect it as ps type controller ootb in d mode but then started telling me a generic controller is being used. So lost ps support in Steam SDL. Using ds4windows to emulate ps4 controller through 8BitDo Pro 2 got PS support working again in Steam SDL. Even when ds4windows is not running. Doing this makes controller configs that get saved to config.vdf - which is where nbpm should save new controller layouts created by end user but it doesnt.
All this shows how broken Steam SDL ui is. Steam uses sdl2 and sdl3 dlls
UPD: doesn't seem to be Steam's fault as gamepad-tester.com also recognizes it as an Xbox 360 gamepad
What you described in post from 5 days ago with reference to skipping button in nbpm Define Input Device ui, what you did was told Steam SDL that button does not exist as Skip actually clears any previous mapping. Bad design. Hiding that button from Steam SDL is enough to stop using the extended feature drivers so to stop that steam recategorised your controller type to xbox 360 instead of the expected xbox one type controller being set.
8Bit Do Pro 2 controller in xinput mode using BT gets seen by steam as xbox one controller but with usb it gets seen as xbox 360 controller.
imo we need a ui in steam where we can add buttons and not just skip to clear when making controller layouts. Valve also need to provide a way of managing controller type set from Define Input Device in a more supported way like what is found Define Layout ui when uploading any controller layout we can set any controller type from the drop down list of supported controllers. Steam also should be checking for other mapping software and doesnt seem to be detceting xpadneo or if it did you would not see the Define Input Device button in nbpm controller settings. Compare desktop modes define layout ui - no Define Layout button should show if xpadneo driver is being used since it maps controller too. There is active discussion on this in libsdl.org forum On steam for windows using 8BitDo Pro 2 set to A mode with ds4windows to emulate ps4 controller even when ds4windows is not running after steam installed steamxbox.sys driver to the wireless controller device seen by windows - Steam always sees a ps4 controller and no DEfine Layout ui button in controller settings is available. Equates to new expected behaviour for libsdl if you read the changelogs and the merge discussions on libsdl.org .
You are describing multiple steam input issues. The lack of transparency and support regarding the steam input changes from Valve is alarmingly concerning. imo somebody from Valve should be explaining the new expected behaviout in Steam Input uis. That way steam users have a better chance of understanding what is and what is not expected behaviour. i.e. plugging in xbox x/s controller using latest firmware showing as xbox 360 device by OS is expected behaviour
Fact is due to broken Steam Input ui's steam input is more hardcoded than ever. Which would be fine, if evrything just worked ootb. But we need more configurability with regard to detected controller types, changing controller types and managing controller layouts only then can we hope all our old game configs, custom desktop,big picture and global chord shortcut configs are usable again.
Your system information
Please describe your issue in as much detail as possible:
After I connect my Xbox Series X controller over cable (can't pair over Bluetooth, but I think this is another issue), Steam detects the device as a generic X-Box game pad, as showed below:
Also, the picture is the same as the Xbox One controller:
I updated the firmware of this controller using a Windows machine with the correspondent app.
Steps for reproducing this issue:
Very similar problem with this issue #7644 but that was a 3rd-party Xbox One controller. This problem occurs with an official Microsoft controller.