CydandClaude Fable 5 d7535f2a43 Firmware: RIOv4_2_patched_125000.bin — max-speed science build (13x)
make_patch.py generalized: baud flags 31250/62500/125000, each holding
the byte-clocked ACK-wait at ~12.8ms wall time (40/80/160 ticks; the
widen is implied for 62500/125000 since stock 4 ticks would be 0.6/0.3ms
there). All historical hashes reproduce unchanged; the 125000 image
(sha256 d22c8d85..., 25 bytes) diffs from 31250v2 by exactly the BAUD
and CMPA operands.

Predictions on record for the bench run: FTDI side exact (3M/24); the
MAX232-class level shifter is AT its 120kbps rating so edge-rounding
may surface as noise flags; and the 2MHz HC11 has ~160 E-cycles/byte -
back-to-back inbound bytes likely outrun the RX ISR (the firmware sets
its overrun flag $3186 but never reads it), so expect dropped bytes ->
NAK/retry churn and a dirtier profile than v2's. Wedges should stay 0.
62500 is one flag away as the fallback sweet spot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 11:20:30 -05:00

RIOJoy

Modern Windows 10/11 interface between the cockpit RIO (Remote Input/Output) board and Windows, as a virtual joystick / keyboard / mouse — the successor to the legacy vJoy-based app, with no vJoy dependency.

The RIO has 72 digital inputs and outputs (lighted buttons) and 5 analog axes (joystick X/Y, throttle, left pedal, right pedal), connected over RS-232 at 9600 8N1. RIOJoy exposes these to games that don't natively know about the cockpit hardware, with per-game profiles. (The native games — Firestorm, Red Planet — talk to the RIO directly and do not use this app.)

Repository layout

Path Contents
src/RioJoy.Core Protocol, profile model, input mapper, HID feeder (class library)
src/RioJoy.Tray Background tray application
tests/RioJoy.Core.Tests xUnit tests for the protocol core
driver/ RioGamepad virtual HID driver (KMDF + VHF) — replaces vJoy
tools/RioJoySmokeTest On-cabinet end-to-end check of the feeder → driver path
tools/XcfRegionExtract Extracts cockpit label regions from riojoy.xcfregions.json
docs/PLAN.md Full modernization plan (7 phases)
docs/PROTOCOL.md RIO wire format + iRIO input-map reference
docs/reference/ Cockpit overlay art & the legacy labeling pipeline
legacy/ Original C++/vJoy implementation, kept as reference

Building

Requires the .NET SDK (8.0 or newer) plus the .NET Framework 4.8 targeting/developer pack, on Windows. The apps target .NET Framework 4.8, which is in-box on every Windows 10/11 machine — so deployed builds are framework-dependent and need no runtime install on the target. The driver builds separately with the WDK (see driver/README.md).

dotnet build RioJoy.sln -c Release
dotnet test RioJoy.sln

Status

Phases 15 are implemented and tested (241 unit tests). The RioGamepad virtual HID driver is built (KMDF + VHF), test-signed, installed, and verified: it enumerates in joy.cpl, and the C# HID feeder (DeviceIoControlRioGamepad.sys) drives its axes, buttons, and hat end-to-end (see tools/RioJoySmokeTest). The C# side covers the serial

  • RIO protocol core, input mapping + output routing, axis calibration + plasma display, the tray app + profiles (JSON config, RIO.ini importer, three-state auto-switch), and the HID report packer that matches the driver's wire format. Remaining work is on-cabinet (real RIO serial/axis/plasma/auto-switch verification) plus packaging (Phase 6) and the profile editor + overlay generator (Phase 7). See docs/PLAN.md for the full roadmap.
S
Description
No description provided
Readme
13 MiB
Languages
Assembly 80.3%
C# 11.2%
C++ 5.8%
C 1.3%
PowerShell 0.7%
Other 0.7%