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

Missing mapping for PS4 touchpad button and possibly others like XboxOne elite paddles #55448

Open
DrRevert opened this issue Nov 29, 2021 · 2 comments

Comments

@DrRevert
Copy link
Contributor

DrRevert commented Nov 29, 2021

Godot version

3.4.stable

System information

Windows 10

Issue description

Mapping for some extra buttons like PS4 touchpad are missing on Windows. The touchpad field is missing from the SDL_GameControllerDB entries. After reporting the issue mdqinc/SDL_GameControllerDB#520 I was informed that the SDL are adding those fields on its own.
Proposed solution was to add missing entry on per-GUID basis, however that leads to a problem: with the SDL controller map program omitting binding for the touchpad field entirely and some other fields missing from DB like paddles for XboxOne Elite those will be constantly overwritten. So more permament solution needs to be adapted, like creating Godot specific mapping.

Steps to reproduce

  1. Run Godot 3.4
  2. Download and run official Joypad demo https://godotengine.org/asset-library/asset/140
  3. Connect PS4 controller using USB (my PS4 pad has a GUID: 030000004c050000cc09000000000000)
  4. Press the touchpad button, notice nothing happened
  5. Press the "Set Raw Mapping" and press touchpad again
  6. Notice button 13 is being marked as pressed

Minimal reproduction project

Official joypad demo: https://godotengine.org/asset-library/asset/140

@madmiraal
Copy link
Contributor

This needs to be fixed upstream.

Note: Despite the suggestion in mdqinc/SDL_GameControllerDB#520 that this should be fixed in Godot, this was fixed upstream for another PS4 controller with GUID 030000004c050000c405000000000000 in mdqinc/SDL_GameControllerDB@ce357c2, which was obtained from its upstream libsdl-org/SDL@b6bc3a6. This change for the other PS4 GUID was included in #55781, which was cherry-picked in 2025648 for 3.4.1.

@offalynne
Copy link

offalynne commented Dec 22, 2021

@madmiraal feel free to read the SDL source for yourself and realize that your options are either buying and testing the 40+ controllers to manually add the field, or packaging SDL’s data and setting it automatically by type.

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

No branches or pull requests

4 participants