Skip to content

Request 1209:D10C for VIIPER Generic Joystick (12 buttons) - #1317

Open
Pav-Osmolski wants to merge 1 commit into
pidcodes:masterfrom
Pav-Osmolski:request-viiper-generic-joystick
Open

Pav-Osmolski wants to merge 1 commit into
pidcodes:masterfrom
Pav-Osmolski:request-viiper-generic-joystick

Conversation

@Pav-Osmolski

@Pav-Osmolski Pav-Osmolski commented Oct 15, 2026 •

Copy link
Copy Markdown

Please allocate 1209:D10C to the software-only generic joystick implemented in
my VIIPER fork and fed by my DS4Windows fork.

The experimental implementation is currently on the feature/directinput-output branches:

The device is a USB/IP virtual HID joystick with six absolute axes, twelve
buttons and one POV hat. Its purpose is to give DirectInput/WinMM games ordinary
joystick axes with configurable trigger resting positions, rather than requiring
a separate mapper application. It has no physical hardware, force feedback or
audio interfaces. The complete descriptor and report implementation are public
GPL-3.0-or-later Go source, linked in the registry entry.

One fixed identity is needed because Windows and games retain device information
and controller bindings. Asking each user to obtain their own identity would
make installation, troubleshooting and shared binding configurations inconsistent.
The source includes an optional sixteen-button experimental descriptor, but this
request is only for the twelve-button descriptor tested with DS4Windows. We will
not use this PID for the sixteen-button descriptor or incompatible future layouts.

The prototype currently uses explicitly unallocated lab identities and is gated
to an isolated DS4Windows preview. We will only adopt the requested identity
following acceptance. Native x86/x64 DirectInput and WinMM tests, USB DualSense
lifecycle testing, and user gameplay tests in BeamNG.drive and the current Steam
FlatOut 2 installation have passed. These are limited compatibility results,
not claims about all legacy games.

This branch has not been deployed

No deployments
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