Repository navigation
feat(input): a DualShock 4 or DualSense touchpad click can be bound in Controls - #2989
Open
jarynclouatre wants to merge 1 commit into
Open
jarynclouatre wants to merge 1 commit into
jarynclouatre wants to merge 1 commit into
Conversation
…n Controls Since the touchpad click opened the Insert menu as F1 it had its own bit past HOS_PAD_N and could be nothing else; players want it for the map (Minus), as on the Switch's own pads. HOS_PAD_TOUCHPAD is now the gamepad input after the paddles, so the Controls page binds it, the options file keeps it and bound_pad_buttons gives the game its row. While no row takes it as Input 1 or Input 2, a click still opens and closes the menu as F1 does; Reset to defaults leaves it unbound. A bit's meaning changes between the executable and the renderer, so MKWVK_API_VERSION goes to 22.
jarynclouatre
marked this pull request as ready for review
November 13, 2026 00:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Since #1846 a DualShock 4's or DualSense's touchpad click opens and closes the Insert menu as F1 does, and it can be nothing else:
HOS_PAD_TOUCHPADwas its own bit pastHOS_PAD_N, so the Controls page cannot take it and a listening binding masks it out. #2212 asks for it as a remappable input (the map, Minus, is the natural place for it on a PlayStation pad). #2979 may be the same request. Home, and Select with Start, already open the menu on these pads.Change
gpu/vk/vk_api.h:HOS_PAD_TOUCHPADis the gamepad input after the paddles, beforeHOS_PAD_N. The saved values of the other inputs do not move. The executable and the renderer must agree on its bit, soMKWVK_API_VERSIONgoes to 22, as it did when the paddles were added.host/nn_hid.cis unchanged:pad_code,hos_bindandbound_pad_buttonstake the touchpad as they take the paddles. The options file keeps it, and the game gets the row it is bound to.gpu/vk/vk_menu.cpp:pad_namecalls it "Touchpad".touchpad_boundasks the host's bindings for every row that takes a gamepad input, the ocarina notes included.HOS_PAD_ART_Nand shows the bound Switch button's default icon.readme.md: a bound touchpad does its binding instead of opening the menu.Testing
tests/test_touchpad_menu.py:touchpad_bound,pad_name, the F1 line and the listening binding's mask are cut fromvk_menu.cppand run with a stand-in host. Unbound, a click is F1. Bound to Minus's Input 2, or to an ocarina note, it is not. A listening binding takes the click as its input, and its name is "Touchpad".tests/test_bound_keys.py: an options file with the touchpad as Minus's input reads back, and a click gives the game Minus throughbound_pad_buttons.hookshot_vk.so).test_bake_portability:zstandardis not installed;nx2/test_texture_init_barrier.py:clang++is not installed).