Repository navigation
feat(ds5): calibrated Wave haptics, 0-100% Strength, debug level counters - #25
Merged
Merged
Conversation
…bug build The 0xB1 frame gains the ungated haptic and speaker channel levels, so audio with silent haptic channels shows apart from no audio. The capture ring logs each change in a 0x02 report's valid flags and motor bytes, and no longer logs grip PCM frames, which have their own counters. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0-100% of the panel gain now spans 0-8x the haptic channels, and the Wave gate drops to 16 so quiet menu effects play. Black Flag mixes its haptics at 0.2-6% of full scale, which the grips barely play at 1:1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The panel's DualSense Strength slider becomes 0-100% (protocol v30). In Wave, 100% is 8x the game's haptic track, linear, and Auto is 50% (4x): Black Flag mixes its track at 0.2-6% of full scale, which the grips barely play at 1:1. In the other styles 100% is the old 500%. The gain moves to a config tail byte, so a saved 10-500% value loads as Auto. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Calibrated on both controllers' accelerometers with one Black Flag clip played to the puck and a real DualSense together: mid-level effects match at 0.5x, now Auto (25%), and the clip's hits reach the grips' ceiling at 2x, now 100%. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Against a real DualSense on both controllers' accelerometers, quiet effects matched at 0.5x while louder ones needed about 0.75x. The Wave path now multiplies the gain by 1x below 6% of full scale, rising on a 0.35 power law of the track's own level to 2x. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The Wave path now matches a real DualSense without it (Auto 25%, the expander, limiter 85), so only the Switch keeps the gentle boost as its default. A saved setting is kept. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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
p[197]). In Wave, 100% is 2x the game's haptic track and Auto is 25% (0.5x). In Tone, Split and Rumble, 100% is the old 500%. The gain moves to a config tail byte, so a value saved on the old 10-500% scale loads as Auto.How it was calibrated
One Black Flag Resynced clip, recorded from the puck's PipeWire monitor and played at the same time to the puck and a real DualSense, with both controllers' accelerometers read at the same time (both on the same desk):
Notes in
docs/DUALSENSE_HAPTICS.md. Held in the hand, the two were "pretty close"; the DualSense feels deeper, which is the actuators, not the signal.Not covered
make checkpass; standard and debug builds both compile.🤖 Generated with Claude Code