fix: adaptive triggers + opt-in OLED sleep + brightness persistence
Closes the three non-audio user issues (audio path untouched): - #6: adaptive trigger FFB was silently dropped. state_update() copied the RightTriggerFFB/LeftTriggerFFB params into the outgoing state but never set the Allow{Right,Left}TriggerFFB apply-bits in byte 0, so the DS5 discarded them on BOTH the standalone 0x31 path and the 0x36 audio-frame fold, while direct USB worked. Mirror the host's two allow-flags in, like the rumble flags already were (matches what the on-device Trigger Test screen does). - #8/#9: new CtrlWake setting (default on = unchanged behavior). Set off and controller input no longer keeps the OLED awake, so the dim/off timeouts run during gameplay and the panel can sleep while the controller is in use; only KEY0/KEY1 wake it. - #9: OLED brightness (screen_brightness) now persists across a power cycle instead of resetting to full on every boot. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
8fc369b1af
commit
71cead401d
@@ -8,6 +8,15 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). Version
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
|
||||
- **`CtrlWake` setting — let the OLED sleep while the controller is in use (issues #8, #9).** The idle power-ladder (dim → off) previously never fired during gameplay, because every controller input bumped the activity timer and kept the panel awake — so a configured dim/off timeout effectively did nothing while playing. New Settings item `CtrlWake` (default **on**, preserving the old behavior); set it **off** and controller input no longer wakes the screen — only the OLED's KEY0/KEY1 do — so the dim/off timers count down during play and the panel can sleep, requiring a button press to wake.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Adaptive trigger effects now work through the dongle (issue #6).** Host-sent trigger force-feedback was silently dropped: `state_update()` copied the 11-byte `RightTriggerFFB`/`LeftTriggerFFB` parameter blocks into the outgoing controller-state but never set the `AllowRightTriggerFFB`/`AllowLeftTriggerFFB` "apply" bits in byte 0, so the DualSense received the data with the enable flags cleared and discarded it. Affected **both** output paths (standalone `0x31` and the `0x36` audio-frame fold), which is why triggers felt absent through the dongle but worked on direct USB. The on-dongle Trigger Test screen always set those bits directly (`0x0C`), which is why it worked. Now the host's two allow-flags are mirrored into the state alongside the FFB data, like the rumble flags already were.
|
||||
- **OLED brightness now persists across a power cycle (issue #9).** The KEY1-long-press brightness level was a runtime-only value that reset to full on every boot; it is now stored in config and restored at init.
|
||||
|
||||
---
|
||||
|
||||
## [0.6.10-oled-edition] — 2026-05-25
|
||||
|
||||
Reference in New Issue
Block a user