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>
This commit is contained in:
Cyd
2026-06-26 12:43:01 -05:00
co-authored by Claude Opus 4.8
commit 39a3dab1fc
54 changed files with 13616 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
# 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).