-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HIDAPI failing to set GUID hint for some devices (Horipad Steam) #11995
Comments
Those GUID examples look like you're not getting access to the HIDAPI driver. Can you run SDL testcontroller and see what it's outputting? |
Unfortunately I'm diagnosing at a distance here based on another user's report, and (obviously) lack of source access to Steam's Linux client; I don't have the device on hand to confirm the issue myself |
Okay, it's very likely that the user has disabled hidraw access for Steam and what they're getting is the Linux HID driver instead. There isn't any mapping specified for that, so SDL is probably just querying capabilities and giving the best guess of a mapping which clearly doesn't work. |
This is what I get on Ubuntu 20.04:
The HIDAPI driver isn't available and the mapping is autogenerated and works perfectly here. What mapping is used in your application? |
Just to verify, I connected via Bluetooth as well and had the same result. I couldn't open the /dev/hidraw device so I got the autogenerated mapping and it worked correctly for all device inputs:
|
User generated the following with the GeneralArcade tool and says mappings were jumbled on Steam
Unlikely to be able to test further at a distance, feel free to close unless there's any other info I can pass along |
Hmm, the mapping they have is identical to mine, and I just verified that mine works in Steam. I'm not sure what's going on here. |
I don't know whether this will help, but I added mappings with the extended controller functionality in cd0db8d. |
tangential, but would you please consider renaming the cap sense fields in the interest of legibility ? the paddle# scheme is already confusing enough, and i understand misc1-n given things like "mic" and "qam" are not shared/relatively ambiguous but left and right cap as misc |
That would involve adding new buttons to the gamepad API. In general one-off capabilities of controllers aren't added a specifics to the gamepad API. FWIW, this is the mapping Steam expects for this controller. If cap sense thumbsticks become more common, we can revisit this. |
BTW, the logic is that the QAM button isn't equivalent to the share button on other controllers, so it's misc2, and the two new capsense buttons are misc3 and misc4. misc5 and misc6 aren't used. :) |
I do follow here yes, the problem is that if they have semantic meaning across mappings (eg. 'share') surely the key name should reflect this ? What's done is done for
seems inevitable |
shrug I was just following what was done for the HIDAPI driver. The meaning of misc* buttons are always controller dependent. You shouldn't assign any specific semantic meaning to them without knowing what controller it is.
Possibly, and future us can revisit this then. :) |
In order to ensure back compatibility, devices handled by HIDAPI are supposed to have GUID data 14 set to 'h' so mappings do not conflict when passing the device filter resulting in a GUID suffix of
6800
It seems like this is not happening for (at least) the Horipad Steam controller, where mappings without the HIDAPI-indicating GUID hint are conflicting with Steam's mappings resulting in jumbled axis output
GUID Examples:
030000000d0f00009601000000000000
030000000d0f00009601000011010000
030000000d0f0000ab01000011010000
The text was updated successfully, but these errors were encountered: