Skip to content

v0.3.2 — Bluetooth audio stall fix

Choose a tag to compare

@countlessbats countlessbats released this 07 Jul 20:27

Bluetooth audio stall fix

Fixes haptics cutting out — and, on older builds, a rapid reconnect loop —
on wireless / Bluetooth DualSense controllers.

The bridge drove the controller's audio endpoint with low-latency
event-sync WASAPI (20 ms). Bluetooth DualSense endpoints don't reliably
deliver the buffer-ready event at that cadence: the render client stops
pulling, the buffer freezes, and haptics stall. Builds carrying the old
stall watchdog reacted by reopening the audio session every few seconds
(the audio session stalled (buffer not draining) → game connect/disconnect
loop some of you saw in HapticsBridge.log).

What changed: the bridge now drives WASAPI in timer/push mode at 100 ms
latency by default, which doesn't depend on that event callback and rides
out Bluetooth transport jitter. On wired endpoints it's indistinguishable.

  • New bridge flags: --latency-ms <n> (default 100) and --event-sync
    (opt back into low-latency event mode — only worth it on rock-solid wired
    setups; pair with --latency-ms 20 for the old behaviour).
  • HapticsBridge.log now records the active mode, e.g.
    Output: timer-driven, 100 ms latency. A healthy session shows no
    Reopening audio session lines.

Install: unzip over your Silksong folder (same as before), or just
replace BepInEx/plugins/SilksongPS5Haptics/HapticsBridge/HapticsBridge.exe
— the fix is entirely bridge-side.