Skip to content

Releases: DualSenseClient/VIIPER

Dev Build v0.0.0-570-d87fcda

Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Aug 07:10

Automated development build.
⚠️ These are the latest development builds and may contain bugs or unfinished features.

All unreleased changes:

✨ New Features

  • Experimental DualSense (and Edge) Emulation
    thanks to @Alia5
  • Experimental DualSense (and Edge) Emulation
    thanks to @Alia5
  • Nintendo Switch 2 Pro virtual device support
    thanks to @Cookiekira
  • Nintendo Switch 2 Pro virtual device support
    thanks to @Cookiekira
  • Windows: Add Tray Icon
    thanks to @Alia5
  • Windows: Add Tray Icon
    thanks to @Alia5
  • libVIIPER
    thanks to @Alia5
  • libVIIPER
    thanks to @Alia5
  • Add auto update
    thanks to @Alia5
  • Add auto update
    thanks to @Alia5
  • Breaking: Support XInput subtypes
    thanks to @sanjay900 Alia5#10
    thanks to @sanjay900
  • Breaking: Support XInput subtypes
    thanks to @sanjay900 Alia5#10
    thanks to @sanjay900
  • SECURITY: Authenticated/Encrypted API
    - Unauthenticated is still possible on localhost-only.
    - (Breaking) Remote clients are required to use auth/encryption
    - Generated Clients have NO API-Change except for the ability to create clients with "password"
    thanks to @Alia5
  • SECURITY: Authenticated/Encrypted API
    - Unauthenticated is still possible on localhost-only.
    - (Breaking) Remote clients are required to use auth/encryption
    - Generated Clients have NO API-Change except for the ability to create clients with "password"
    thanks to @Alia5
  • DS4 Emulation
    thanks to @Alia5
  • DS4 Emulation
    thanks to @Alia5
  • SteamDeck (Jupiter) Controller emulation
    thanks to @Alia5
  • SteamDeck (Jupiter) Controller emulation
    thanks to @Alia5
  • Windows: Detect gui launches and auto-run server in BG
    thanks to @Alia5
  • Windows: Detect gui launches and auto-run server in BG
    thanks to @Alia5
  • Add "ping" endpoint
    thanks to @Alia5
  • Add "ping" endpoint
    thanks to @Alia5
  • Add install command / scripts
    thanks to @Alia5
  • Add install command / scripts
    thanks to @Alia5
  • Breaking: Use int16 instead of int8 for mouse relative actions (dx, dy, wheel, pan)
    thanks to @Alia5
  • Breaking: Use int16 instead of int8 for mouse relative actions (dx, dy, wheel, pan)
    thanks to @Alia5
  • Add bus auto-cleanup
    Configured by "ConnectionTimeout"
    thanks to @Alia5
  • Add bus auto-cleanup
    Configured by "ConnectionTimeout"
    thanks to @Alia5
  • SDKs: Add disconnect callback
    thanks to @Alia5
  • SDKs: Add disconnect callback
    thanks to @Alia5
  • Add prerequisites Check
    thanks to @Alia5
  • Add prerequisites Check
    thanks to @Alia5
  • Breaking: Refactor API / transport (more flexible)
    • Breaking: Return Proper problem+json errors from API (http like)
    • Breaking: Better device_add response (json)
    • User defined VID/PID (optional)
    • (misc) Update examples
      thanks to @Alia5
  • Breaking: Refactor API / transport (more flexible)
    • Breaking: Return Proper problem+json errors from API (http like)
    • Breaking: Better device_add response (json)
    • User defined VID/PID (optional)
    • (misc) Update examples
      thanks to @Alia5
  • Auto attach devices on localhost
    thanks to @Alia5
  • Auto attach devices on localhost
    thanks to @Alia5
  • Typescript SDK Gen
    thanks to @Alia5
  • Typescript SDK Gen
    thanks to @Alia5
  • C# SDK Gen
    thanks to @Alia5
  • C# SDK Gen
    thanks to @Alia5
  • Add SDK CodeGen
    Initially C
    (Largely vibecoded, lol)
    thanks to @Alia5
  • Add virtual keyboard
  • Add virtual mouse

🐛 Fixes

  • Move to wall-clock based report timestamps
    thanks to @Alia5
  • Move to wall-clock based report timestamps
    thanks to @Alia5
  • Fix DS4 Emulation, add metadata handling
    - Fix Gyro-Stutter
    - Fix Triggers
    thanks to @Alia5
  • Fix DS4 Emulation, add metadata handling
    - Fix Gyro-Stutter
    - Fix Triggers
    thanks to @Alia5
  • WinInstall: Fix USBIP-Win2 driver detection
    thanks to @Alia5
  • WinInstall: Fix USBIP-Win2 driver detection
    thanks to @Alia5
  • Fix xbox360 capability request
    thanks to @Alia5
  • Fix xbox360 capability request
    thanks to @Alia5
  • Handle usbGetStatus
    thanks to @Alia5
  • Handle usbGetStatus
    thanks to @Alia5
  • Fix LangIDs
    thanks to @Alia5
  • Fix LangIDs
    thanks to @Alia5
  • Windows: Install-Script: Fix updating
    thanks to @Alia5
  • Windows: Install-Script: Fix updating
    thanks to @Alia5
  • Fix busCreate with id 0 not choosing next free bus
    thanks to @Alia5
  • Fix busCreate with id 0 not choosing next free bus
    thanks to @Alia5
  • Windows-Install: Fix VIIPER server closing upon terminal close
    thanks to @Alia5
  • Windows-Install: Fix VIIPER server closing upon terminal close
    thanks to @Alia5
  • Fix install scripts and docs
    thanks to @Alia5
  • Fix install scripts and docs
    thanks to @Alia5
  • Fix excessive CPU usage
    thanks to @Alia5
  • Fix excessive CPU usage
    thanks to @Alia5
  • Disable nagles algorithm
    thanks to @Alia5
  • Disable nagles algorithm
    thanks to @Alia5
  • Fix: free bus IDs not getting re-used
    thanks to @Alia5
  • Fix: free bus IDs not getting re-used
    thanks to @Alia5
  • Exclude C sdk build folder from artifact
    thanks to @Alia5
  • Exclude C sdk build folder from artifact
    thanks to @Alia5
  • Fix Xbox360 Controller reports
  • Fix Xbox360 Controller reports
  • Fix go package
    thanks to @Alia5
  • Fix go package
    thanks to @Alia5
  • Breaking Fix missing underscores in C SDK constants
    thanks to @Alia5
  • Breaking Fix missing underscores in C SDK constants
    thanks to @Alia5
  • Fix client using incorrect path

🔧 Miscellaneous

  • Improve device emulation efficiency
    • Default to data-driven, immediate, updates
    • Turn off write-batching by default
      thanks to @Alia5
  • Improve device emulation efficiency
    • Default to data-driven, immediate, updates
    • Turn off write-batching by default
      thanks to @Alia5
  • Default server command
    thanks to @Alia5
  • Default server command
    thanks to @Alia5
  • Add log level alias
    thanks to @Alia5
  • Add log level alias
    thanks to @Alia5
  • Introduce golangci-lint and make linter happy
    - Breaking: Go users will experience breaking changes due to renamings
    thanks to @Alia5
  • Introduce golangci-lint and make linter happy
    - Breaking: Go users will experience breaking changes due to renamings
    thanks to @Alia5
  • Windows: Update install script / USBIP-Driver
    thanks to @Alia5
  • Windows: Update install script / USBIP-Driver
    thanks to @Alia5
  • Update dotnet 8.0 -> 10
    thanks to @Alia5
  • Update dotnet 8.0 -> 10
    thanks to @Alia5
  • Remove C API client
    thanks to @Alia5
  • Remove C API client
    thanks to @Alia5
  • Configurable write batching time
    thanks to @Alia5
  • Configurable write batching time
    thanks to @Alia5
  • Windows: log to file in autorun config
    thanks to @Alia5
  • Windows: log to file in autorun config
    thanks to @Alia5
  • Linux install script: handle updates more gracefully
    thanks to @Alia5
  • Linux install script: handle updates more gracefully
    thanks to @Alia5
  • SDKs: add rust client
    thanks to @Alia5
  • SDKs: add rust client
    thanks to @Alia5
  • Breaking: SDKs: Eliminate (most) fixed size buffers
    • Let user allocate device specific sized buffers
      thanks to @Alia5
  • Breaking: SDKs: Eliminate (most) fixed size buffers
    • Let user allocate device specific sized buffers
      thanks to @Alia5
  • Add windows meta-info and Icon
    thanks to @Alia5
  • Add windows meta-info and Icon
  • Breaking Switch to \0 terminated transport
    thanks to @Alia5
  • Breaking Switch to \0 terminated transport
    thanks to @Alia5
  • Improve go api-client.
    thanks to @Alia5
  • Support file based configs
  • Add Docs (on GH-Pages)

Install / Update

Windows (DS4Windows)

Install with the signed DS4Windows all-in-one installer,
or use Settings > VIIPER Virtual Controller Support >
Install / Repair
. The standalone Windows script is
developer-only so it cannot create a competing backend.

Linux
curl -fsSL https://raw.githubusercontent.com/DualSenseClient/VIIPER/main/scripts/install.sh | sh

Installs / updates to /usr/local/bin/viiper