Update Steam Controller 2026 Report ID (#103) and increase overall stability - #104
Conversation
There was a problem hiding this comment.
I had to increase this number since the puck exposes the 4 controller slots, as well as the puck itself for some messages. It never gets read as an actual controller, but still causes a crash trying to read it if the max inputs is 4
There was a problem hiding this comment.
CONTROLLER_MAX_INPUTS should not be increased and there is no chance you got a crash because of that. The reason is mainly because input_idx is everytime 0 in your case - try to add a log you will see. (Your driver report only 1 controller because you didn't overrided the method controller count) so if you get a crash it's not because you exceed the disconnected buffer.
|
I'm not sure to understand exactly what does this PR, i have the feeling it fix the puck, Correct ? Syscon invoke ParseData for every input_idx and you use input_idx for a disconnect flag but I don't really understand the purpose. |
|
There's a good chance that multiple controllers over puck doesn't work, but Valve didn't even let you join the queue to buy a second controller until recently so I was unable to check Also adds support for the new report ID the controller uses since newer firmwares don't use the same one |
|
I will take the ownership of that PR if you don't mind |
|
Yep, that's fine. Sorry I couldn't get time to work on it earlier @o0Zz Your changes still seem mostly fine, and taking a look at my changes again, it seems that a lot of them were probably made during my testing and I forgot to remove them Only thing to mention about your changes is that Lizard mode is now only disabled once on connection, causing input issues after a few seconds. It should still be re-sent every 3 seconds, as can be seen here https://github.com/libsdl-org/SDL/blob/63bf4c1c79ce656d429c548ea5530c83f508bde7/src/joystick/hidapi/SDL_hidapi_steam_triton.c#L496 |
|
It look like linux driver has a different approach: https://github.com/torvalds/linux/blob/fc02acf6ac0ccde0c805c2daa9148683cdd01ba8/drivers/hid/hid-steam.c#L557 They disable the watchdog to avoid polling every 3s. I think I will implement that as it is more aligned with what all other controllers is doing in sys-con. I will let you know once I will have a new build for test |
No description provided.