Repository navigation
VIIPER RC1 - Release Candidate
Pre-release
Pre-release
DS4Windows VIIPER release-candidate summary
Scope: v4.0.2.3 to f1e4b32 (188 non-merge commits)
Generated: 2026-07-24
Release-candidate highlights
- DS4 Bluetooth audio and haptic transport was stabilized end-to-end, including report-rate pacing, queue ordering, credit/handle behavior, and fallback behavior to remove dropouts and stutter.
- DualSense and DualShock 4 audio/mic/haptics routing were hardened across physical + emulated output combinations.
- Audio Haptics and Trigger Lab features were implemented/improved with profile-level persistence and richer trigger controls.
- Profile UX was modernized (overview, profiles, editor, remapper, controller selection/status, and live filtering/search).
- VIIPER output support was expanded/cleaned (virtual backends, installers, lifecycle, driver handling, diagnostics).
- Game Bar compatibility and visibility handling were improved, including temporary companion and profile priority behavior.
- Updater and installer flows were tightened to prefer stable/preview intent correctly and better guide users through dependencies.
- Multiple regressions were reverted and reintroduced intentionally through transport hardening before landing on the final 0x12 transport tuning.
Focus-by-feature
1) DS4 Bluetooth audio transport and reliability
- Finalized transport behavior for reliable low-latency DualShock 4 Bluetooth speaker output and stable completion timing.
- Corrected HID report timing coupling with input cadence and removed short-report/queue instability artifacts.
- Added stronger in-order and availability checks to protect audio and input from race conditions.
2) DualSense/PlayStation audio, haptics, and mixed-routing compatibility
- Added and stabilized native DualSense speaker/mic pathways and synchronization with advanced haptics.
- Improved compatibility across emulation variants and preserved advanced output during emulated output transitions.
- Added safeguards for Bluetooth audio routes and route-matrix consistency in controller emulation modes.
3) Audio Haptics and Trigger Lab
- Introduced or updated audio-haptics capture/app routing and per-profile controls.
- Added trigger-specific lab controls (including full-pull/action routing and linked/split behavior).
- Added stronger profile persistence and editor integration for special effects data.
4) UI/UX and profile workflow
- Reworked profile editing path and overview controller workspace behavior.
- Added controller-aware remapping overlays, layout polish, and search-driven list filtering.
- Reduced editor and profile transitions stalls and made switching behavior more deterministic.
5) Compatibility and devices
- Added support and handling improvements for virtual/compatibility paths including Moonlight and companion flows.
- Preserved VIIPER lifecycle/race handling and fixed HidHide/session stability around service transitions.
- Added/cleaned installer, uninstall, and setup flows for VIIPER and virtual DualSense driver stack.
Full commit log (non-merge, oldest → newest)
- 0fd92d1 2026-06-11 Add experimental virtual DualSense output
- 9185e23 2026-06-11 Add virtual DualSense VHF backend
- f17395e 2026-06-11 Add virtual DualSense follow-up notes
- 9d37c2c 2026-06-11 Wire virtual DualSense output report passthrough
- 94f7271 2026-06-11 Harden virtual DualSense backend lifecycle
- 71e39dd 2026-06-11 Fix virtual DualSense touch clamp compile error
- e0cf746 2026-06-11 Improve virtual DualSense driver install path
- f615d1c 2026-06-11 Add Bluetooth-shaped virtual DualSense driver mode
- ed04795 2026-06-11 Use WDK-capable Windows runner for driver build
- 194013e 2026-06-11 Install WDK in CI for virtual DualSense driver
- 84c8e19 2026-06-11 Use WDK NuGet packages for virtual DualSense driver
- 9ab8ce6 2026-06-11 Resolve WDK NuGet tool paths for driver build
- 3a7ea0b 2026-06-11 Fix virtual DualSense driver CI compile path
- b073220 2026-06-11 Restrict virtual DualSense INF to DIRID 13 capable Windows builds
- edbe5de 2026-06-11 Fix VHF HID packet compile conflict
- ec54cec 2026-06-11 Set SHA256 digest for virtual DualSense driver signing
- e8b70a5 2026-06-11 Package virtual DualSense sys for catalog generation
- 958630e 2026-06-11 Add virtual DualSense driver uninstall script
- f267897 2026-06-11 Fix virtual DualSense root device installer ID
- 25fed9c 2026-06-11 Make virtual DualSense installer helper rerunnable
- 1bc97bf 2026-06-11 Fix virtual DualSense driver control path
- a849716 2026-06-11 Fix virtual DualSense installer reflection args
- e852043 2026-06-11 Route virtual DualSense IOCTLs through control device
- 2d02370 2026-06-11 Add experimental VIIPER output backend
- 481c5eb 2026-06-11 Add VIIPER setup prompt and controller UI polish
- 17d7ccb 2026-06-12 Fix VIIPER installer zip asset handling
- 3cf5d47 2026-06-12 Add VIIPER backend debugger
- 56cab86 2026-06-12 Remove custom virtual DualSense backend
- 41eb689 2026-06-12 Harden VIIPER backend lifecycle races
- af442ab 2026-06-12 Persist VIIPER output controller profile types
- 3809b66 2026-06-12 Fix VIIPER DualSense motion neutral state
- ad64480 2026-06-12 Add VIIPER DualSense mute toggle passthrough
- 9ae0904 2026-06-12 Smooth VIIPER DualSense motion rest state
- 7c44d6c 2026-06-12 Pass VIIPER DualSense trigger feedback to physical pads
- 1af2e85 2026-06-12 Prefer extended VIIPER DualSense feedback
- 377a97d 2026-06-12 Fix VIIPER feedback length compile error
- 4866092 2026-06-12 Stabilize VIIPER output and HidHide sessions
- e49e36b 2026-06-12 Add DualSense mute profile controls
- 91827db 2026-06-12 Require visible Game Bar before profile priority
- 6dabaee 2026-06-12 Keep HidHide sessions across service restart
- 41d2c6a 2026-06-13 Reset adaptive trigger debugger effects
- 476929c 2026-06-13 Fix VIIPER debugger build import
- e24d9e6 2026-06-13 Move VIIPER state writes off input thread
- 4968947 2026-06-13 Add VIIPER writer guardrails
- 504eb4c 2026-06-13 Recover VIIPER stream after server loss
- 9429fe5 2026-06-13 Keep VIIPER feedback streams alive when idle
- 01e8ff3 2026-06-13 Fix VIIPER timeout constant scope
- 29f68de 2026-06-13 Clean up stale VIIPER usbip controllers
- a1abc55 2026-06-13 Fix VIIPER usbip cleanup log signature
- 76ad6ec 2026-06-13 Reconcile stale VIIPER usbip ports on every create
- bf96819 2026-06-13 Send DualSense touch tracking through VIIPER
- abddc1a 2026-06-13 Align VIIPER DualSense motion axes with DS4 output
- d448d09 2026-06-13 Use available VIIPER release assets
- d992c47 2026-06-13 Avoid zero-gravity DualSense motion reports
- 42855e5 2026-06-13 Fix VIIPER DualSense gyro and feedback bridging
- 3b6d5ad 2026-06-13 Clarify VIIPER DualSense feedback size
- 2e38792 2026-06-13 Contain physical pads for virtual outputs
- 2aa31c4 2026-06-13 Add VIIPER DualSense traffic capture UI
- 7ebc899 2026-06-13 Forward VIIPER DualSense native output reports
- 30488d5 2026-06-14 Fix profile output transition replug state
- 3e10eb1 2026-06-14 Export VIIPER DualSense traffic captures
- 7554a77 2026-06-14 Forward VIIPER DualSense haptics reports
- dbb42ec 2026-06-14 Add DualSense haptics tone debugger
- fd61aaa 2026-06-14 Fix VIIPER DualSense feedback helper scope
- 637f26a 2026-06-14 Let games control DualSense lightbar through VIIPER
- 76367f9 2026-06-14 Report DualSense haptics tone write failures
- 9725cf8 2026-06-14 Fix VIIPER DualSense gyro axis order
- ffad55c 2026-06-14 Explain DualSense haptics tone failures
- 74f797b 2026-06-14 Fix VIIPER DS4 gyro axis order
- c4c3cf1 2026-06-14 Clean up stale VIIPER usbip imports
- d4ec763 2026-06-14 Tidy DualSense VIIPER profile UI
- c63f6a2 2026-06-14 Mark VIIPER branch as DualSense beta
- f4a4b73 2026-06-14 Fix VIIPER motion fallback build
- e995e25 2026-06-14 Harden VIIPER HidHide containment
- 3f5be95 2026-06-14 Detect Moonlight virtual DS4 v2 controllers
- 62f418c 2026-06-20 Add DualSense Bluetooth speaker and haptics bridge
- 18874dc 2026-07-01 Harden Game Bar visibility diagnostics
- a7ef763 2026-07-13 Reduce DualSense game audio latency
- 6649147 2026-07-13 Fix low-latency speaker capture dispose type
- 4bf5d2c 2026-07-16 Restore DualSense advanced haptics with game audio
- dd1da50 2026-06-22 Unify DualSense Bluetooth haptics and audio output
- 9db939e 2026-07-16 Remove DualSense speaker boundary alert tones
- ac5caa0 2026-07-16 Stabilize combined DualSense Bluetooth streaming
- c08bc24 2026-07-16 Keep combined DualSense stream continuous
- c4358a1 2026-07-16 Stabilize DualSense speaker capture buffering
- 6dadc75 2026-07-16 Restore DualSense speaker buffer depth
- c085101 2026-07-16 Synchronize DualSense haptics with speaker frames
- e64f1f7 2026-07-16 Fix DualSense speaker volume scaling
- fdcd183 2026-07-16 Keep DualSense speaker writes on audio clock
- 3c7c6ee 2026-07-16 Prevent rare DualSense speaker scheduling gaps
- e9d164a 2026-07-17 Rebuild VIIPER DualSense microphone passthrough
- 8856c0e 2026-07-17 Rebind recreated DualSense audio endpoints
- 5423b64 2026-07-17 Fix DualSense Bluetooth microphone activation
- 636b6f3 2026-07-17 Gate DualSense mic on active capture interface
- 473ab39 2026-07-17 Center VIIPER virtual pad reset state
- 8b71621 2026-07-17 Clean up DualSense microphone audio
- d18308b 2026-07-17 Add DualSense mute button microphone mode
- bd19369 2026-07-17 Modernize DS4Windows frontend
- 7302af6 2026-07-17 Improve UI rendering performance
- 386b8ed 2026-07-17 Rewrite installation and project documentation
- b452e36 2026-07-17 Rewrite installation and project documentation
- 263d0a3 2026-07-17 Polish profile selection and auto profiles
- 2c63a0f 2026-07-17 Fix controller detection after service restart
- 79c9d6e 2026-07-17 Add controller artwork to device cards
- 9d8f30e 2026-07-17 Release HidHide devices while service is stopped
- 8605f06 2026-07-17 Add DualSense profile remapping artwork
- 6444be1 2026-07-17 Fix DualSense remapping overlays
- 83a1ee1 2026-07-17 Add DualSense Bluetooth speaker processing
- eeb7f20 2026-07-17 Default DualSense profiles to balanced speaker audio
- 85e5c05 2026-07-17 Use exact DualSense highlight masks
- 3508af2 2026-07-17 Align DualSense remapper lightbar
- 2653803 2026-07-17 Create dedicated profile editing workspace
- eb9edef 2026-07-17 Add controller-aware overview workspace
- af77e84 2026-07-17 Clarify virtual controller names
- c4e0700 2026-07-17 Keep VIIPER input responsive during microphone capture
- f871f8c 2026-07-18 Add DualShock 4 Bluetooth audio
- 6bd0b3d 2026-07-18 Polish overview controls and editor loading
- 6f93c88 2026-07-18 Route Sony audio across emulated controllers
- 0c33655 2026-07-18 Add Game Bar DualSense compatibility
- 6f5c2cc 2026-07-18 Redesign profiles and remapping layouts
- af57bca 2026-07-19 Fix Sony Bluetooth audio and VIIPER routing
- 8d3a4b9 2026-07-20 Harden Sony audio and profile UI
- ab83aa6 2026-07-20 Polish controller remapping and eliminate editor stalls
- f33a79c 2026-07-20 Add profile audio haptics and Trigger Lab
- 2176459 2026-07-20 Use generic virtual controller names
- 9843226 2026-07-20 Finish Trigger Lab and cut DualSense feedback latency
- 23b4ecb 2026-07-20 Keep native DualSense haptics continuous
- 77e2aba 2026-07-20 Synchronize DualSense speaker and native haptics
- 5e4d60f 2026-07-21 Isolate Sony audio routes and restore microphone level
- e516e12 2026-07-21 Stabilize Bluetooth audio and haptics routing
- 7a1f42b 2026-07-21 Make Trigger Lab link modes explicit and reliable
- 28a6e2e 2026-07-21 Polish README grammar and clarity
- 88051ac 2026-07-21 Refresh README interface tour
- 04c23cb 2026-07-21 Move full-pull actions into Trigger Lab
- ed1820a 2026-07-21 Fix Sony Bluetooth audio route stability
- ee525b4 2026-07-21 Stabilize DualSense Bluetooth duplex transport
- 2648167 2026-07-21 Checkpoint experimental low-latency split transport
- 6d15600 2026-07-21 Revert "Checkpoint experimental low-latency split transport"
- 8bd8900 2026-07-21 Revert "Stabilize DualSense Bluetooth duplex transport"
- 89fc02f 2026-07-21 Bound DualSense 0x36 Bluetooth write concurrency
- b050365 2026-07-21 Fix Game Bar companion routing and visibility latch
- 277c40f 2026-07-21 Finish live controller UI and audio routing
- 64caa5b 2026-07-21 Tighten controller remapper hit targets
- 6b43418 2026-07-22 Restore precise controller remapper geometry
- d1e191b 2026-07-22 Perfect raster-aligned controller remapping
- a8b6596 2026-07-22 Stabilize DualShock 4 Bluetooth audio transport
- deb301e 2026-07-22 Checkpoint traced DualShock 4 audio transport
- 8b80314 2026-07-22 Checkpoint DS4 Bluetooth credit-safe 0x17 transport
- 925c94f 2026-07-22 Keep DS4 0x14 reports as real stream tails
- 10f927e 2026-07-22 Pace DS4 PadForge audio on the report clock
- dc52e7f 2026-07-23 Trace DS4 Bluetooth HID completion depth
- 7ff7c8e 2026-07-23 Preserve DS4 Bluetooth interval during audio
- d9e0512 2026-07-23 Keep DS4 HID enabled in speaker reports
- c48e9f4 2026-07-23 Revert "Keep DS4 HID enabled in speaker reports"
- 5fe2eb3 2026-07-23 Restore source-driven DS4 audio transport probe
- 9c11dcb 2026-07-23 Probe PadForge DS4 speaker audio mode
- fa7d3fa 2026-07-23 Phase-lock DS4 audio to physical input reports
- 4d3f6c9 2026-07-23 Match PadForge DS4 Bluetooth speaker transport
- 2411da9 2026-07-23 Eliminate DS4 short-report traffic
- 0b1b49e 2026-07-23 Match measured PadForge DS4 presentation cadence
- bc7060c 2026-07-23 Match PadForge DS4 audio feed rate
- 926856b 2026-07-23 Revert "Match PadForge DS4 audio feed rate"
- d951f3b 2026-07-23 Serialize DS4 audio on the primary HID handle
- 87736f2 2026-07-23 Drive DS4 audio from source availability
- b19b742 2026-07-23 Revert "Drive DS4 audio from source availability"
- 17a9f64 2026-07-23 Revert "Serialize DS4 audio on the primary HID handle"
- 46852e8 2026-07-23 Complete DS4 audio writes in order
- b8860b2 2026-07-23 Fix in-order DS4 queue guard
- 16ec5db 2026-07-23 Revert "Fix in-order DS4 queue guard"
- ae0da15 2026-07-23 Revert "Complete DS4 audio writes in order"
- 083a753 2026-07-23 Probe native SBC on the DS4 audio path
- 2f9c321 2026-07-23 Revert "Probe native SBC on the DS4 audio path"
- e04d199 2026-07-23 Checkpoint DS4 shared audio trace lane
- c3c6379 2026-07-23 Present DS4 speaker frames at a uniform 16 ms cadence
- e5de4b9 2026-07-23 Probe shared-handle async DS4 audio credits
- 38f992b 2026-07-23 Fix fresh-config theme startup
- d3db9fc 2026-07-23 Follow prerelease update channels
- 3fb22a1 2026-07-23 Make realtime DS4 0x12 audio transport explicit
- a011182 2026-07-23 Keep PlayStation features on Xbox and Switch outputs
- ccaa357 2026-07-23 Add automatic game audio detection
- 5eb0ddf 2026-07-24 Keep DS4 realtime audio at max input rate
- 0317760 2026-07-24 Restore verified DS4 HID input queue depth
- f1e4b32 2026-07-24 Stabilize DS4 realtime Bluetooth audio