Files
riojoy/driver/README.md
T
CydandClaude Opus 4.8 39a3dab1fc Phase 0: scaffold modern RIOJoy solution + plan
Modernization of the legacy vJoy-based RIO cockpit interface for Win10/11,
removing the vJoy dependency in favor of a custom VHF/UMDF HID driver,
rewritten in C#/.NET 8 as a background tray app with per-game profiles.

- Reorganize: legacy C++ -> legacy/, cockpit art -> docs/reference/
- RioJoy.sln: src/RioJoy.Core (lib) + src/RioJoy.Tray (tray app), net8.0-windows x64
- driver/ placeholder for the RioGamepad WDK driver
- docs/PLAN.md (7-phase plan; profiles + serial-yield model)
- docs/PROTOCOL.md (RIO wire format + iRIO input-map reference)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 12:43:01 -05:00

1.4 KiB

RioGamepad — virtual HID driver

The RioGamepad virtual HID device replaces the legacy vJoy dependency. It is a KMDF driver built on the Windows Virtual HID Framework (VHF, vhf.sys) that presents a single HID game controller to Windows matching the layout the old app drove through vJoy:

Report field Count Notes
Axes 6 X, Y, Z, Rx, Ry, Rz — 16-bit
Hat switch 1 4-direction POV with null state
Buttons 96 12 bytes of button bits

The C# tray app feeds input reports to the driver through a custom DeviceIoControl IOCTL on the driver's control device; the driver relays them to Windows via VhfReadReportSubmit.

Status

Phase 0 placeholder. Implementation is Phase 1 in ../docs/PLAN.md.

Build prerequisites (Phase 1)

  • Windows Driver Kit (WDK) for Windows 11 + matching Visual Studio + Windows SDK
  • A separate WDK/MSBuild project lives here (RioGamepad.vcxproj); it is not part of RioJoy.sln (different toolchain).

Signing

For the cockpit cabinets, enable test signing (bcdedit /set testsigning on) and install a self-signed test certificate — appropriate for hardware you own. Redistribution would instead use Microsoft attestation signing via Partner Center. See the deployment notes in ../docs/PLAN.md (Phase 6).