Wired haptics with no DSX, and a latency selector
The big one: wired DualSense now works with nothing else running. No DSX, no
companion app — just plug in USB and go.
Why wired needed DSX before (and doesn't now)
The DualSense leaves its internal audio path unpowered by default, so the
haptic audio we stream to actuator channels 3/4 drained from Windows but moved
nothing. DSX happened to keep that path enabled by continuously sending the
controller HID reports — which is the only reason haptics seemed to require
it, even over USB. The bridge now sends that enable itself (and re-asserts it
so the game can't steal it back), so a plain wired pad just works. DSX-driven
wireless is unaffected and works exactly as before. Opt out with --no-hid.
This also turned out to be the real cause of the earlier "chime plays once,
then haptics go dead" reports — it was the audio path reverting, not a
Bluetooth issue. With the path properly enabled, the 0.3.3 keepalive tone
became a constant felt buzz, so it's been removed. The render-clock watchdog
stays as the genuine stall safety net.
New: Latency presets in the tray menu
Right-click the tray icon → Latency:
- Reliable (default) — survives Bluetooth & busy PCs
- Snappy — lower latency, best on wired USB
- Minimal — lowest latency, wired only (may glitch)
The menu explains the trade-off inline and remembers your choice. Leave it on
Reliable unless haptics feel laggy.
Log
A healthy wired session now shows HID: audio haptics enabled (1 USB controller) and Output: timer-driven, 100 ms latency.
Install: unzip over your Silksong folder, or replace both
BepInEx/plugins/SilksongPS5Haptics/SilksongPS5Haptics.dll and
.../HapticsBridge/HapticsBridge.exe.