Skip to content
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

SDL_GamepadType missing Steam Controller/Deck/Steam-licensed controllers/handheld Type #12250

Open
AL2009man opened this issue Feb 10, 2025 · 2 comments
Milestone

Comments

@AL2009man
Copy link

AL2009man commented Feb 10, 2025

Looking within SDL_GamepadType, I noticed that Steam Controler/Deck/HoriPad for Steam/etc.-variant is not listed there, even tho: SDL is capable of detecting Steam Controller and Steam Deck joystick name. You can already try it out on the devbuild of Yamagi Quake 2 if you wanna see it in action.

While researching around, and looking within VVVVVV's sourcecode: best way to provide Steam Controller/Deck prompts would be to get the Vendor/Product ID and make a "DECK_LAYOUT" code. the downside is that since it's looking at 0x28de: it'll assume a Steam Controller is gonna be a Steam Deck. But if the makers wanna implement Steam Controller and Steam Deck-dedicated prompts together...it's not exactly easy to do, and it might require a quick and dirty workaround.

For the sake of completion: it would be nice to introduce a "SDL_GAMEPAD_TYPE_STEAM" variant that will cover Steam Deck, HoriPad for Steam and future Steam-licensed controllers or devices like the upcoming Lenovo Legion Go S's SteamOS Edition.

As for Steam Controller: I think an alternative "SDL_GAMEPAD_TYPE_STEAM_CONTROLLER" would do fine, and would be similar to SDL_GAMEPAD_TYPE_PS4 would handle in terms of backward compatibility.

While I do understand the usual recommendation is "use Steam Virtual Gamepad" or "Steam Input API", I still think it's worth adding a new GamepadType variant to account for sourceports and emulation projects, while making it easier for commercially shipped games like Ys X Nordics to have a proper way of detecting and provide Steam Deck prompts (as of this writing: playing on Steam Deck will auto-detect and give Xbox prompts, even tho it has Steam Deck prompt support)....without needing to workaround or implement SIAPI completely.

@slouken
Copy link
Collaborator

slouken commented Feb 10, 2025

What differences in prompts are there between an Xbox controller and Steam controller?

@slouken slouken added this to the 3.x milestone Feb 10, 2025
@AL2009man
Copy link
Author

AL2009man commented Feb 10, 2025

What differences in prompts are there between an Xbox controller and Steam controller?

A few sets of differences between those two:

  • START and SELECT button, while using Xbox 360 symbols (START and BACK), is more akin to DualShock 3's "START" and "SELECT" button in name only.
  • Both Rear/Paddle buttons are referred as "LEFT GRIP" and "RIGHT GRIP". (under-the-hood: Right Grip is called "Paddle Left 1", while Left Grip is "Paddle Right 1". this is technically a correct location if you only look at the back side of Steam Controller)
  • the Left Stick Click is actually called "Stick Click".
  • Face Buttons, Shoulder Buttons and Trigger buttons are just Xbox glyphs.
  • Left and Right Trackpads, self-explanatory.

All these naming conventions are taken from a SIAPI game (Baldi's Basics Classic Remastered) that uses "Text-based glyphs", and then Yamagi Quake 2.

In comparison to Steam Deck/HoriPad for Steam/future Steam-licensed input hardware: their prompt convention is a combination of Xbox, PlayStation, Steam Controller and Apple MFi. Xbox One/Series X|S for the Face Buttons+D-Pad+View+Menu, PlayStation for the Bumpers+Triggers+Stick Click, Steam Controller for Deck's Left and Right Trackpads and Apple MFi for Back Buttons and Misc buttons (so far: Steam HoriPad only uses it).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants