Skip to content

feat: trackpad D-pad in every mode, D-pad feedback, per-type QAM + Select - #20

Merged
ripps818 merged 1 commit into
mainfrom
feat/pad-dpad-feedback
Oct 13, 2026
Merged

ripps818 merged 1 commit into
mainfrom
feat/pad-dpad-feedback

Conversation

@ripps818

Copy link
Copy Markdown
Owner

What

Three things that were Switch-only now work in every emulated mode, plus a panel reshuffle.

  • Trackpad D-pad:
    • A trackpad can act as a D-pad on touch or on click, diagonals included.
    • Xbox 360 and OG, Switch (Pro and Hori), DS4, DS5, HIDGYRO and PS3 all offer it in the pad's Touch dropdown.
    • A pad on D-pad on click spends its click on the D-pad, so the click's own mapping (touchpad click, mouse button) doesn't fire with it. The panel greys out that pad's Click setting.
  • D-pad feedback:
    • It is a per-type setting, on by default, replacing the Switch-only click feedback. The Switch's value carries over.
    • It pulses the pad each time its direction changes, so you feel down → down-right without lifting your finger.
    • It also pulses on each D-pad click while Trackpad haptics is Off. With it on, every click already pulses, so a second pulse would double up.
  • Quick Access + Select:
    • It is a target per controller type, in a new Quick Access group of the Button map card.
    • It is always on and defaults to none, so nothing changes until you pick a button. The enable switch is gone.
    • Any button works, including Guide, Home or PS for the Steam button's role.
    • A saved file from before keeps the Switch's target only if its switch was on.
  • Panel layout:
    • Trackpads (Touch and Click per pad) and a new Trackpad feedback card are separate.
    • Trackpad feedback, Adaptive triggers and Lights form one column, Rumble and Haptics another.
    • Switch Pro mode only now follows the Button map card.

Protocol

Both settings are appended to the existing per-type layout. Older panels keep working: field 230 (D-pad click feedback) and 239 (QAM + Select target) still set the Switch's entry.

WebUSB field Status blob Notes
D-pad feedback 120 + 4·7 + type (setting 7) p[244..247] 0 off, 1 on; default 1
QAM + Select target 152 + type p[248..251] remap target code 0–20; default 0

Details in docs/PROTOCOL.md, docs/CONTROLLER_FEATURES.md and the README.

Tests

  • tests/switch_pro_shortcuts: D-pad directions, the click-pulse guard, a pulse per direction change in touch and click modes, the click taking the D-pad, and the always-on chord with its migration.
  • tests/type_haptics, tests/final_webusb, tests/button_map: the new settings, blob bytes, fields and builders.
  • tests/button_profiles/panel.cjs: Click greyed out on D-pad options, the per-type QAM + Select rows, and the new cards.
  • make check, all host tests and the three UI tests pass; the firmware builds.

Not yet checked on hardware at this commit: the direction-change pulses and QAM + Select on a real controller.

🤖 Generated with Claude Code

…lect

Trackpad D-pad (on touch or on click, diagonals included) was Switch Pro
only; every emulated mode now offers it: Xbox 360 and OG, Switch (Pro and
Hori), DS4, DS5, HIDGYRO and PS3. A pad on D-pad on click spends its click
on the D-pad, so the click's own mapping does not fire with it, and the
panel greys that pad's Click setting out.

The Switch-only D-pad click feedback becomes a per-type setting, D-pad
feedback (grid setting 7, on by default; the Switch's starts from the old
byte). It pulses the pad each time its direction changes, so sliding from
down to down-right is felt without lifting a finger, and on each D-pad
click while Trackpad haptics is off (every click already pulses then).

Quick Access + Select, also Switch-only (screenshot), is now a target per
controller type, set in a Quick Access group of the Button map card. It is
always on and none by default, so the enable switch is gone; a file from
before keeps the Switch's target only if that switch was on. Any button
works, including the Guide, Home or PS button.

Panel layout: Trackpads (Touch and Click per pad) and a new Trackpad
feedback card are separate; Trackpad feedback, Adaptive triggers and Lights
form one column, Rumble and Haptics another; Switch Pro mode only follows
the Button map card. The status blob grows to p[251].

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@ripps818
ripps818 merged commit eec55a7 into main Oct 13, 2026
3 checks passed
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