Skip to content

Main

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 https://github.com/Alia5/VIIPER/pull/10
    thanks to @sanjay900
  • Breaking: Support XInput subtypes thanks to @sanjay900 https://github.com/Alia5/VIIPER/pull/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
  • Add "ping" endpoint
  • Add "ping" endpoint
  • Add install command / scripts
  • Add install command / scripts
  • Breaking: Use int16 instead of int8 for mouse relative actions (dx, dy, wheel, pan)
  • Breaking: Use int16 instead of int8 for mouse relative actions (dx, dy, wheel, pan)
  • Add bus auto-cleanup Configured by "ConnectionTimeout"
  • Add bus auto-cleanup Configured by "ConnectionTimeout"
  • SDKs: Add disconnect callback
  • SDKs: Add disconnect callback
  • Add prerequisites Check
  • Add prerequisites Check
  • 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
  • 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
  • Auto attach devices on localhost
  • Auto attach devices on localhost
  • Typescript SDK Gen
  • Typescript SDK Gen
  • C# SDK Gen
  • C# SDK Gen
  • Add SDK CodeGen Initially C (Largely vibecoded, lol)
  • 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
  • Fix install scripts and docs
  • Fix excessive CPU usage
  • Fix excessive CPU usage
  • Disable nagles algorithm
  • Disable nagles algorithm
  • Fix: free bus IDs not getting re-used
  • Fix: free bus IDs not getting re-used
  • Exclude C sdk build folder from artifact
  • Exclude C sdk build folder from artifact
  • Fix Xbox360 Controller reports
  • Fix Xbox360 Controller reports
  • Fix go package
  • Fix go package
  • Breaking Fix missing underscores in C SDK constants
  • Breaking Fix missing underscores in C SDK constants
  • 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
  • Linux install script: handle updates more gracefully
  • SDKs: add rust client
  • SDKs: add rust client
  • Breaking: SDKs: Eliminate (most) fixed size buffers
  • Let user allocate device specific sized buffers
  • Breaking: SDKs: Eliminate (most) fixed size buffers
  • Let user allocate device specific sized buffers
  • Add windows meta-info and Icon
  • Add windows meta-info and Icon
  • Breaking Switch to \0 terminated transport
  • Breaking Switch to \0 terminated transport
  • Improve go api-client.
  • Support file based configs
  • Add Docs (on GH-Pages)