Skip to content

initial Controller Button Prompt detection support#640

Draft
AL2009man wants to merge 35 commits intofgsfdsfgs:portfrom
AL2009man:ButtonPromptSupportInitial
Draft

initial Controller Button Prompt detection support#640
AL2009man wants to merge 35 commits intofgsfdsfgs:portfrom
AL2009man:ButtonPromptSupportInitial

Conversation

@AL2009man
Copy link
Copy Markdown

@AL2009man AL2009man commented Jul 25, 2025

Currently: the Button "icons" are based on vkJoyNames, however: it's based upon a DirectInput-style system beyond the "Xbox naming scheme". a DualSense Edge or Nintendo Switch Joy-Con user might not understand what "JOY1_BUTTON_17" really means.

In wake of SInput HID Protocol support (SDL3 only or SDL_GameControllerDB): it's a good time to revise the whole setup, while preparing for SDL3's SDL_GetGamepadButtonLabel.

within Extended Controller Settings, Each player can now select which Button Icons to choose from:

  • Auto (default, will be using SDL_GameControllerGetType and Steam Virtual Gamepad VID/PID)
  • Generic
  • Internal (legacy glyph)
  • Xbox 360
  • Xbox Wireless Controller
  • DualShock 3
  • DualShock 4
  • DualSense
  • Nintendo Switch Controller
  • Nintendo 64
  • Steam Controller
  • Steam Deck
image image

screenshot represents WIP build, not represented of the finalized version

This does not affect the internal Button Remapping system, this is to ensure backwards compatibility with pd.ini config files, however: for those who prefer the original vkJoyNames name: you can select "Internal" and it'll be used.

As of this writing: this only applies to Key Bindings, in-game prompt UI will still use baked-in N64 prompts for the time being. This is a huge undertaking, and it'll require a completely separate PR (without conflicting with #624). This PR only serves as a foundation.

for now: this only applies to Key Bindings menu
since this repository doesn't do Button Icons, the name has been changed to properly the text-based Button Prompt "icons".
@AL2009man
Copy link
Copy Markdown
Author

AL2009man commented Jul 25, 2025

as of this writing: this is considered a "Draft PR", as additional testings will be needed for DualSense Edge and Nintendo Switch Joy-Con Pair in regards to "Paddle" button setups.

note: i don't own these two controllers

AL2009man added 16 commits July 25, 2025 13:14
DualSense prompt accidentally uses Nintendo Switch prompts. This has be addressed.
instead of hardcoding (aside from Nintendo Switch's), there's now a standardization setup that can be used across all Controller Types if needed.
during the backporting process, the older names were brought over, but his has been fixed
added support for Steam hardware prompts, while attempting to fix the button icon layout ordering to be a bit more consistent with SDL2 GameController Button mappings.
it should now detect Steam Deck prompts via Steam Virtual Gamepad...i hope?
for some reason: it's it own thing, we'll do one last ditch effort on fixing the detection issue once and for all.
@AL2009man
Copy link
Copy Markdown
Author

Just added Steam Deck and Steam Controller prompts, but right now: we're testing Steam Virtual Gamepad detection usage to ensure that Deck's Game Mode plays nicely.

this might take sometime to get it working properly while playing nicely with various Controller Types.

AL2009man added 10 commits July 31, 2025 15:01
added optional glyph support for N64 Controller, although: the mappings are based upon Nintendo Switch Online variant. due to that: actual mappings are using Nintendo Switch Pro Controller's protocol as a basis.
moved PID/VID over to glyph.h for easier organization
…tection`

this is one final experiment before we drop stick with Steam Virtual Gamepad PID
it's clear that Steam Virtual Gamepad is the highest priority. for now: we're restoring the original function
@AL2009man AL2009man changed the title initial Controller Button Prompt detection support initial Controller Button Prompt detection support (Key Binding only) Aug 5, 2025
@AL2009man AL2009man changed the title initial Controller Button Prompt detection support (Key Binding only) initial Controller Button Prompt detection support Aug 12, 2025
@AL2009man
Copy link
Copy Markdown
Author

AL2009man commented Aug 12, 2025

I forgot to mention this, Nintendo 64 button prompts are added in, but it'll be based on the NSO Nintendo 64 model, which means the actual placement will derive from Switch Pro Controller protocol.

GameCube button prompts will not be planned for the time being, at least until SDL3 migration (easier to support Nintendo GameCube controllers)

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

Successfully merging this pull request may close these issues.

1 participant