Repository navigation
feat(lizard): trackpad haptics, and no controller announce in pure Lizard - #24
Merged
Merged
Conversation
Lizard mode now steers the trackpad haptics like the emulated types, with its own settings: Trackpad haptics (On / Clicks only / Off), click strength, tick spacing and tick strength. On is the default, so the controller's own ticks and clicks play as before; Clicks only has the puck pulse each click at the chosen strength. Lizard keeps the IMU mode the controller has, and Steam mode's lizard still leaves the pads to Steam. Protocol v30 (unreleased, no bump): WebUSB fields 156..159, read back in the 0xAE frame's spare bytes p[50..53] since the status blob is full; the config file keeps them in a new tail field, so an older cfg.bin loads with the defaults. The panel adds a Trackpad feedback card to the Lizard tab, and backups carry the four values. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A capture from a puck in Lizard mode showed the host writing the lizard setting (id9=0) to the puck every ~3 s, and the puck relaying each one to the controller. id9 is the switch behind the controller's own trackpad ticks and clicks, and pure Lizard lands it once per connect, so the first host write after connecting switched the trackpad haptics off for good: a few clicks felt, then nothing. In pure Lizard the puck now drops the host's id9 writes instead of relaying them (Steam mode still relays them; Steam owns the controller there). The IMU filter next to it is unchanged. Adds a host test. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
SDL's Steam driver only opens a joystick, and starts its 3 s lizard-off heartbeat, once it sees a 0x79 connect push. Pure Lizard needs none of the 0x79/0x7B/0x43 pushes. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
What
id9 = 0(lizard off) every 3 s while it holds the puck open as a joystick. The puck relayed it, the controller's pad layer switched off, and the haptics stopped. Two changes:filterSettingsRelaydrops the host's id9 write in pure Lizard.Checked
0x79pushes (before: one write every 3 s).tests/type_haptics,tests/lizard_stick, newtests/settings_filter.Trade-off
Steam will not list the puck as a controller in Lizard mode. The controller's own battery report is still forwarded.
🤖 Generated with Claude Code