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
- Breaking: Go users will experience breaking changes due to renamings
- Introduce golangci-lint and make linter happy
- Breaking: Go users will experience breaking changes due to renamings
thanks to @Alia5
- Breaking: Go users will experience breaking changes due to renamings
- 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)