Skip to content

feat(ps5): firmware passthrough, mic LED callback, and feature report stubs#5

Open
hkirste wants to merge 2 commits into
cgutman:mainfrom
hkirste:feat/firmware-info-passthrough
Open

feat(ps5): firmware passthrough, mic LED callback, and feature report stubs#5
hkirste wants to merge 2 commits into
cgutman:mainfrom
hkirste:feat/firmware-info-passthrough

Conversation

@hkirste

@hkirste hkirste commented Apr 5, 2026

Copy link
Copy Markdown

Summary

  • Accept optional FirmwareInfo blob in WINUHID_PS5_GAMEPAD_INFO. When provided, serve it verbatim for GET_FEATURE 0x20 instead of the built-in default. Enables hosts to pass through the real controller's firmware version from the client.
  • Add PWINUHID_PS5_MIC_LED_CB callback, invoked when the host sets MicMuteLedValid in the output report (values: 0=off, 1=on, 2=pulse).
  • Return zero-filled data for unimplemented feature reports instead of NULL, preventing WebHID clients (Chrome) from freezing for 7+ seconds during device enumeration.
  • Update default firmware info to a modern version to prevent spurious firmware update prompts when no passthrough data is available.

Also fixes the CI workflow to install WDK on windows-latest (no longer pre-installed) and uploads full build output including driver files.

Test plan

  • Virtual DualSense loads instantly on ds.daidr.me (no Chrome freeze)
  • No firmware update prompt when connecting via Moonlight
  • Firmware passthrough verified end-to-end (physical controller's Jul 4 2025 firmware appears on virtual device)
  • Mic LED callback fires when games set mic mute state
  • Existing functionality (rumble, lightbar, adaptive triggers, player LED) unaffected
  • Callers that zero-initialize WINUHID_PS5_GAMEPAD_INFO get default behavior (backwards compatible)

hkirste added 2 commits April 5, 2026 00:05
- Add WDK install step to CI workflow (windows-latest no longer includes it)
- Upload full build output directory to capture driver files alongside the
  user-mode library
…port stubs

- Accept optional FirmwareInfo blob in WINUHID_PS5_GAMEPAD_INFO. When
  provided, serve it for GET_FEATURE 0x20 instead of the built-in default.
  This enables hosts to pass through the real controller's firmware version.
- Add PWINUHID_PS5_MIC_LED_CB callback, invoked when the host sets
  MicMuteLedValid in the output report (values: 0=off, 1=on, 2=pulse).
- Return zero-filled data for unimplemented feature reports instead of NULL,
  preventing WebHID clients from freezing during device enumeration.
- Update default firmware info to a modern version to prevent spurious
  firmware update prompts when no passthrough data is available.
lurebat pushed a commit to lurebat/WinUHid that referenced this pull request Apr 29, 2026
- Add MicLedCallback parameter to WinUHidPS5Create FFI binding
- Add FirmwareInfo/FirmwareInfoLength fields to WINUHID_PS5_GAMEPAD_INFO
- Add MicLed device event variant and callback implementation
- Document mic_led WebSocket message type in web/README.md
- Update README.md to reference just install-driver and BUILDING.md
- Note vcpkg is now a Git submodule (PR cgutman#2)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lurebat pushed a commit to lurebat/WinUHid that referenced this pull request Apr 29, 2026
Add NULL MicLedCallback argument to all WinUHidPS5Create calls to
match the new 7-parameter signature from PR cgutman#5.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant