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>
34 lines
1.4 KiB
Markdown
34 lines
1.4 KiB
Markdown
# 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](../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](../docs/PLAN.md) (Phase 6).
|