v3.15.0 DsHidMini changelog
This project was only possible thanks to the investment of many years of learning, research, and dedication. You're receiving this work for free. If it has brought you joy, consider giving back and spending a few coins ❤️
Remarks
Anything older than Windows 10 1809, as well as any 32-bit architecture, is not supported.
How to install/update/uninstall
Download and run the provided setup (*.msi file), pay attention, and follow the instructions. Previous versions do not have to be removed manually beforehand.
To upgrade, simply run a newer setup once it becomes available.
To remove DsHidMini, locate Nefarius DsHidMini Driver under Apps & features and uninstall it from there.
✨ Highlights
This release contains a large collection of new features, fixes and quality-of-life improvements across DsHidMini and the ControlApp.
- 🎮 New Common Gamepad (CGP) HID mode for broader compatibility with games and applications.
- 🧭 Sony-compatible motion support for DualShock 3 controllers, including calibration improvements and a new motion viewer in ControlApp.
- 🧪 New built-in controller input tester that works independently of the currently selected HID mode.
- 📳 New rumble tester in ControlApp, plus fixes to rumble duration and Bluetooth output handling.
- 💡 Reworked LED handling with numerous fixes for player LEDs, charging indicators and Navigation Controllers.
- 🔌 Improved USB reliability, including a fix for controllers getting stuck after resuming Windows from sleep.
- 📶 Major Bluetooth improvements, including more reliable pairing, better host/controller address detection and improved output-channel handling.
- 🎯 Improved XInput support, including correct controller-slot detection/routing and battery information visible to XInput applications.
- 🔍 Better controller identification, including detection of genuine devices and additional hardware information exposed in ControlApp.
- 🕹️ Improved Navigation Controller support, including correct status reporting and handling of its unique LED and rumble capabilities.
- 🔌 Added ShanWan PS1/PS2 USB adapter support, including buttons and rumble.
- ⚙️ ControlApp received extensive modernization and usability improvements, including profile drag-and-drop reordering, system-tray support, improved device information, tooltips, an About page and cleaner settings screens.
- 🔄 Built-in update notifications can now inform you when a newer ControlApp release is available.
- ⏻ Wired controllers can now be powered off from ControlApp using the controller's console shutdown command.
- 🛠️ Numerous additional fixes improve HID-mode switching, configuration handling, IPC communication, logging and overall stability.
What's Changed
- Update README.md by @nefarius in #391
- Tweak UI for button combo settings by @Kanuan in #395
- ControlApp Maintenance and project modernization by @nefarius in #393
- Bump Nefarius.Utilities.DeviceManagement from 5.1.0 to 5.2.0 by @dependabot[bot] in #416
- Bump Microsoft.Windows.CsWin32 from 0.3.196 to 0.3.258 by @dependabot[bot] in #415
- Added genuine device status detection for connected devices by @nefarius in #397
- .NET 9 Update, Build fixes by @nefarius in #418
- Update project documentation with build instructions and API overview by @nefarius in #419
- 📝 Add docstrings to
build-system-updatesby @coderabbitai[bot] in #421 - Replace PowerShell build scripts with Nuke build system integration by @nefarius in #420
- Bump Microsoft.Windows.CsWin32 from 0.3.258 to 0.3.272 by @dependabot[bot] in #422
- Update NuGet dependencies and refactor BthPS3FilterDriver to use Span by @nefarius in #427
- Dropped requirement for elevation on input report wait event by @nefarius in #431
- Added
DEVPKEY_DsHidMini_RO_IpcSlotIndexfor IPC by @nefarius in #433 - Bump Microsoft.Windows.CsWin32 from 0.3.272 to 0.3.273 by @dependabot[bot] in #432
- Implement XInput user index resolution in device view by @nefarius in #434
- Bump Microsoft.Windows.CsWin32 from 0.3.273 to 0.3.275 by @dependabot[bot] in #436
- Bump Microsoft.Windows.CsWin32 from 0.3.275 to 0.3.277 by @dependabot[bot] in #437
- Bump Microsoft.Windows.CsWin32 from 0.3.277 to 0.3.279 by @dependabot[bot] in #439
- Updated cJSON to v1.7.19 by @nefarius in #442
- Bump Microsoft.Windows.CsWin32 from 0.3.279 to 0.3.281 by @dependabot[bot] in #443
- Bump Microsoft.Windows.CsWin32 from 0.3.281 to 0.3.298 by @dependabot[bot] in #446
- Bump Microsoft.Windows.CsWin32 from 0.3.298 to 0.3.299 by @dependabot[bot] in #447
- Update support-requests action to version 5.0.2 by @nefarius in #451
- Bump Microsoft.Windows.CsWin32 from 0.3.299 to 0.3.300 by @dependabot[bot] in #452
- Migrate CI from AppVeyor to GitHub Actions by @nefarius in #454
- Cache DMF libraries and build only DmfU by @nefarius in #455
- Bump Microsoft.Windows.CsWin32 from 0.3.300 to 0.3.301 by @dependabot[bot] in #453
- Updated resources for v3 release by @nefarius in #428
- Bump Microsoft.Windows.CsWin32 from 0.3.301 to 0.3.314 by @dependabot[bot] in #456
- Bump Microsoft.Windows.CsWin32 from 0.3.314 to 0.3.318 by @dependabot[bot] in #457
- Bump XInputBridge vcpkg to 2026.07.29. by @nefarius in #462
- Add a Partner Portal CAB job that signs the driver DLLs and a combine… by @nefarius in #463
- Fix USB controller stuck in error state after resume from sleep (#311) by @nefarius in #464
- Mark DSHMC as deprecated so agents use ControlApp instead. by @nefarius in #465
- Fix/hid mode switching 374 by @nefarius in #466
- Speed up CI by dropping the abseil vcpkg rebuild and tightening cache… by @nefarius in #467
- Update build workflow for ControlApp signing and mirroring by @nefarius in #468
- Align ControlApp driver JSON with the native contract and harden conf… by @nefarius in #469
- Add a ControlApp option to hide to the system tray instead of the tas… by @nefarius in #470
- Broadcast HID IPC reports to every waiter and publish the SDK to NuGet. by @nefarius in #471
- Expand NuGet package paths in PowerShell before pushing. by @nefarius in #472
- Strip HTML images from the SDK README before packing for NuGet. by @nefarius in #473
- Show BthPS3 install and version status in ControlApp. by @nefarius in #474
- Drop the wireless DS3 instance when the same pad is also connected ov… by @nefarius in #475
- Allow dragging ControlApp profiles to reorder the list. by @nefarius in #476
- Add plan for unifying and fixing driver LED handling. by @nefarius in #477
- Fix Nuke builds on .NET 10 and VS 2026 by @nefarius in #479
- Rework device/host MAC discovery and USB startup (issue #321) by @nefarius in #478
- Update DMF by @nefarius in #480
- Unify LED handling behind driver/DsLed.c (issues #349, #350, #351, #365) by @nefarius in #481
- Fix rumble duration handling (issue #356) by @nefarius in #482
- Add Defender BT PS3-mode switch helper to ControlApp (#282) by @nefarius in #483
- Bump Microsoft.Windows.CsWin32 from 0.3.318 to 0.3.334 by @dependabot[bot] in #485
- Feat/217 motion research by @nefarius in #484
- ci: sign and mirror XInput DLLs with ControlApp by @nefarius in #487
- Split dshidmini.inf so Windows 11 uses inbox Include/Needs for WUDFRd… by @nefarius in #488
- Bump MinVer from 7.0.0 to 8.0.0 by @dependabot[bot] in #486
- Parse Feature 0x01 and expose identification in the SDK and ControlApp. by @nefarius in #489
- Version bump to 3.4.x by @nefarius in #490
- Build a synthetic dual-arch INF for the partner CAB so one submission… by @nefarius in #491
- Consume DeviceManagement 6.1.0 so ControlApp can read identification … by @nefarius in #492
- Polish ControlApp window chrome and settings editor spacing. by @nefarius in #493
- Fix XInputBridge slot routing and lifecycle bugs with repeatable tests. by @nefarius in #494
- Add opt-in Bluetooth interrupt output so rumble can be tested without… by @nefarius in #495
- ci: retry transient artifact downloads by @nefarius in #496
- Add a once-per-day ControlApp update prompt so users can download new… by @nefarius in #497
- Add a ControlApp About page for license, repo, and update-check. by @nefarius in #498
- Add a wired USB power-off action so ControlApp can send the console s… by @nefarius in #499
- Identify Navigation Controllers as one-LED, no-rumble hardware so Con… by @nefarius in #501
- Add ControlApp Settings controls for the experimental driver IPC flag. by @nefarius in #502
- Show the configured Bluetooth output channel on the device Info tab. by @nefarius in #503
- Added new upscaled logo by @nefarius in #504
- Store ControlApp settings under ProgramData\DsHidMini and migrate the… by @nefarius in #505
- Fix navigation controller status reporting by @nefarius in #506
- Stop restarting the Navigation charging LED flash. by @nefarius in #507
- Stop ControlApp crashing when user-data replace is denied. by @nefarius in #508
- Implement remaining issue 379 IPC output commands. by @nefarius in #509
- Replace JSON hot-reload pairing with explicit IPC device actions. by @nefarius in #510
- Harden driver JSON config parsing against malformed input. by @nefarius in #511
- Make tagged vMAJOR.MINOR.PATCH builds the only release path. by @nefarius in #512
- Expand Dependabot to grouped weekly updates for CI NuGet projects and… by @nefarius in #513
- Bump nefarius/SignRelay from 1.0.0 to 1.3.0 in the github-actions-minor-and-patch group across 1 directory by @dependabot[bot] in #514
- Bump actions/download-artifact from 4.3.0 to 8.0.1 by @dependabot[bot] in #515
- Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #516
- Bump actions/cache from 4 to 6 by @dependabot[bot] in #517
- Bump actions/setup-dotnet from 4 to 6 by @dependabot[bot] in #518
- Bump the nuget-minor-and-patch group with 9 updates by @dependabot[bot] in #519
- Automate Partner Center attestation on tagged release builds. by @nefarius in #521
- Fix Partner submission state detection and add an offline signing dry run by @nefarius in #522
- Consume sdcm 1.0.0-pre004 status, get, and overwrite by @nefarius in #523
- Keep signedPackage as Signed zip and download initialPackage separately. by @nefarius in #524
- Fix/xinput slot startup refresh by @nefarius in #525
- Move the IPC enablement gate into DsHidMini.json so it can be toggled… by @nefarius in #526
- Require .NET 10 Desktop for ControlApp and fail BuildSetup if the MSI… by @nefarius in #527
- Open the Installation-Successful page after a fresh MSI install. by @nefarius in #528
- Updated to https://github.com/nefarius/nefcon/releases/tag/v1.20.0 by @nefarius in #529
- Populate XI HID battery so apps can read charge in XInput mode. by @nefarius in #530
- Add Sony-compatible USB motion support for DualShock 3 pads. by @nefarius in #531
- Keep Recenter and Pause reachable when the motion viewer readout over… by @nefarius in #532
- Fix the motion viewer pose so a still pad stays still and pitch follo… by @nefarius in #533
- Publish the HwCal tracker gyro so sub-step rest bias does not reach c… by @nefarius in #535
- Keep ControlApp logs readable by dropping HttpClient and Polly chatter. by @nefarius in #536
- Stop treating a Defender Feature 0x14 ACK as a PS3 mode switch. by @nefarius in #537
- Zero clone-heuristic PLAIN_ZERO gyro rest bias in software only. by @nefarius in #538
- Fix/motion viewer grip pose by @nefarius in #539
- Preserve unrelated DsHidMini.json edits when Control App saves. by @nefarius in #540
- Add fast tooltips for device tile battery and connection icons. by @nefarius in #541
- Bump Nefarius.Utilities.DeviceManagement from 4.0.3 to 6.1.0 by @dependabot[bot] in #544
- Bump the nuget-minor-and-patch group with 1 update by @dependabot[bot] in #543
- Bump actions/checkout from 4 to 7 by @dependabot[bot] in #542
- Show the live Bluetooth output channel and keep pairing working witho… by @nefarius in #545
- Record genuine DualShock 3 Bluetooth interrupt rumble failures. by @nefarius in #546
- Load Feature 0x01/0xEF motion calibration over Bluetooth. by @nefarius in #547
- Cache portable SDK/WDK NuGet packages instead of kit installers. by @nefarius in #548
- Cache USB motion calibration for Bluetooth instead of querying the pad. by @nefarius in #549
- Update project READMEs for current features by @nefarius in #550
- docs: mention XInput 1.4 DLL name by @nefarius in #551
- Skip CI for non-code changes by @nefarius in #552
- Build and sign the MSI in dispatched CI instead of local helper targets. by @nefarius in #553
- Move Start Menu directory to top-level ManagedProject by @nefarius in #554
- Resolve the custom-action SfxCA binary from the MSI CustomAction tabl… by @nefarius in #555
- Fix/setup msi contract probe by @nefarius in #556
- Fix/setup shortcut feature by @nefarius in #557
- Fix/setup skip docs dialog on failure by @nefarius in #558
- Fix/setup dialog action ambiguity by @nefarius in #559
- Stop the features tree from deselecting the mandatory drivers feature. by @nefarius in #560
- Fix/setup audit followups by @nefarius in #561
- Bundle the signed x64 vicius updater v1.16.1 by @nefarius in #562
- Add a HID-mode-independent controller input tester to ControlApp. by @nefarius in #563
- Bump the nuget-minor-and-patch group with 1 update by @dependabot[bot] in #564
- Add Common Gamepad (CGP) HID mode for issue #68 by @nefarius in #565
- Rotate ControlApp logs daily so long-running sessions do not grow a s… by @nefarius in #566
- Add ShanWan PS1/PS2 USB adapter support. by @nefarius in #567
- Fix ShanWan digital face buttons so each press lights the matching bu… by @nefarius in #568
- Send ShanWan rumble over interrupt OUT, the path Linux usbhid uses fo… by @nefarius in #569
- Stop an unlinked ShanWan adapter from stalling each output report for… by @nefarius in #570
- Add a ControlApp rumble tester that pulses motors through IPC in any … by @nefarius in #571
- Surface an unlinked ShanWan adapter's output stall without waiting fo… by @nefarius in #572
- Fix/pin windows sdk by @nefarius in #573
- Explain a missing IPC slot when the bound driver is older than 3.4.0. by @nefarius in #575
New Contributors
- @coderabbitai[bot] made their first contribution in #421
Full Changelog: setup-v3.5.1...setup-v3.15.0
