-
Notifications
You must be signed in to change notification settings - Fork 214
Face Button follows Positional Button layout instead of Labels #1045
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
Face Button follows Positional Button layout instead of Labels #1045
Conversation
Experimenting a way to add a hint for Button Labels. It should attempt to fix the Nintendo Layout issue when using a Nintendo Switch controller
|
I queued CI, you can test if this works through the CI build artifacts. |
was able to test between the Release Build and the Debug build (that one is purely for testing reasons). Based on my quick testing session: I don't think the code is working as intended (despite me accidentally pressing merge review.) I will have to look further into edit: quick update - earlier: I was messing around with the bat file for experimentation. I intentionally unhinted the PS5 stuffs and it seems to ignore my change. There's a likely chance that something is indeed overriding the hint changes. for now: don't merge this pull request until I (or others) able to confirm if it works. |
|
After troubleshooting (turns out: my Visual Studios install got messed up, had to reinstall it) and testing between the main brand to my fork: I can directly confirm that the HINT does work as intended. It should be ready to merge now. |
hyperbx
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implementation seems correct, needs testing with various Nintendo Switch controllers.
since hedge-dev#1045 will include it: we're gonna get rid of it on this code section to avoid conflicts.
to avoid conflictions with other PRs (hedge-dev#1086 and hedge-dev#1045): the remaining codebae was restore to how the master build look. the downside is that it makes it far harder to test it's behavior with Steam Input mode. but this is only temporarily until it gets added to the Master branch.
…SDL (#1086) * Experimenting Button Label Experimenting a way to add a hint for Button Labels. It should attempt to fix the Nintendo Layout issue when using a Nintendo Switch controller * Create c-cpp.yml * Create cmake-multi-platform.yml * Create apply-patch.yml * removing the workflows * added experimental Steam Virtual Gamepad support * restoring notes for Button Labels. * Initial Gamepad Hotplug Logic improvements This changes the way how a Controller will be prioritized. By default: it'll always prioritize based on Player 1. It should play nicely with Steam Deck's internal inputs when Steam Input is active * Lightbar detection when using multiple PlayStation controllers at the same time. An attempt to remedy the Lightbar activation. While Player 2/3/4 will override the in-game lightbar event upon connection: it'll later revert back to the in-game event. * Attempt to reduce Input leaking To avoid "the Controller is leaking" situation, there's now a Gamepad stat management that should reset Controller state based on connected controller. * Lightbar active fix when gamepad plugged first prior to game launch Another attempt to fix the lightbar by redoing the controller state mangement. For some reason: the Lightbar gets disabled when a controller is already plugged prior to game launch. It reverts back to normal until the next game event. * Revert "restoring notes for Button Labels." This reverts commit ef4e37c. * Reapply "restoring notes for Button Labels." This reverts commit f3ddd80. * Moving all Gamepad Hotplug changes to separate branch To ensure all Hotplug-related changes don't accidentally get leftover: this commit will revert all the back back to the accidental removal of Button Label's note. * added SDL's GameController naming convention as Fallback If EInputDeviceExplicit doesn't recognize a specific Controller Type or Device: it'll fallback to SDL's naming conventions. This helps troubleshooting Controller-related issues when using the debug console. * Official device naming scheme for EInputDeviceExplicit Changes some of EInputDeviceExplicit's names to match the device's official name (such as Nintendo Switch Pro Controller, Xbox Wireless Controller, Amazon Luna Controller, etc.) * spacing formatting fix * remove "SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS" hint since #1045 will include it: we're gonna get rid of it on this code section to avoid conflicts. * moved EInputDevice Unknown class to the top priority * Replacing EInputDeviceExplicit with SDL_GameControllerName Based on @hyperbx's suggestions: It'll look for SDL's Controller Name as opposed to EInputDevice's naming scheme. * remove hid::GetInputDeviceName() from hid.ccp Now that SDL_GameControllerName handles Controller naming conventions, the hid.ccp portion of GetInputDeviceName is no longer needed. * Fix indentation --------- Co-authored-by: Hyper <34012267+hyperbx@users.noreply.github.com>
what
SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELSdoes is that SDL's Controller API will follow on Button Labels, by default: it is set to1. Consequences: the modern Nintendo Switch layout will be using the Nintendo Layout across Menu Navigation and Gameplay.In the case of Sonic Unleashed: every single part of the game will be using Nintendo Layout, thus between the Daytime and Night time stages will make the gameplay much harder than it really is due to muscle memory. This will require Nintendo users to rely on a Button Remapping solution just to correct it.
This pull request is essentially a simple hack that adds
SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELSonhid::Initlist and set the value to 0. Forcing the game to use the Positional Layout across all controllers, SDL3-style. The only downside is that for older Nintendo controllers like Wii family of controllers, GameCube or even SEGA Controllers; it'll will also follow the Face Button Positional layout. (refer to SDL_GameControllerDB's Mapping Guide)Until Nintendo Switch controller support gets properly added (which for some reason:
SDL_HINT_JOYSTICK_HIDAPI_SWITCHis missing) and/or Action Remapping gets added, this is considered a temporary fix on #488, as it'll make Nintendo controllers use the Positional layout instead of the Labeled layout.