KB: direct-axis release-edge gotcha (issue #36)
This commit is contained in:
@@ -88,6 +88,15 @@ recovery; keyboard-only run clean). Fix: on the connected->disconnected transit
|
||||
`EmitButton(address, 0)` for every binding whose mask was held, THEN forget. Not reproducible
|
||||
headless (needs real hardware unplug) -- logic fix, awaiting the reporter's controller.
|
||||
|
||||
## Direct-axis release edge (issue #36, 2026-07-23) [T2 idle-verified; awaiting reporter]
|
||||
The pad/joy DIRECT axis write was gated on `raw != 0` -- centering inside the deadzone stopped
|
||||
writing and the channel LATCHED (fatal on spring-less channels: the Turn composite kept the
|
||||
mech turning after release). Fix: per-binding previous-value arrays (`previousPadAxisRaw` /
|
||||
`previousJoyAxisRaw`); the outside->inside transition writes 0 ONCE then yields the channel
|
||||
(composition preserved; slew bindings excluded -- a slewed lever stays put by design). Plus
|
||||
the #24 rule, axis edition: disconnect-while-deflected releases direct channels (Throttle
|
||||
keeps the last lever position -- freeze beats all-stop mid-fight).
|
||||
|
||||
## Generic joysticks / HOTAS / pedals -- DirectInput 8 layer (2026-07-23) [T2 rig-verified; awaiting stick hardware]
|
||||
Tester ask: configure non-Xbox controllers. **`L4JOY.cpp/.h`** (all builds, lazy-init): DI8
|
||||
enumeration of every non-XInput game device (up to 4), `c_dfDIJoystick2` polling with
|
||||
|
||||
Reference in New Issue
Block a user