Workstream A prototype: play without the cockpit
Splits the control surface the game consumes from the RIO board into RIOBase (8 virtuals + the five analog scalars); the serial RIO is now one implementation of it. Adds two new ones: - PadRIO (L4CONTROLS=PAD): in-process RIO speaking the full surface from an XInput controller + PC keyboard using vRIO's default profile (left stick/WASD = stick, triggers/Q,E = pedals, right stick Y/PgUp,PgDn = rate throttle that holds position, A/Space = trigger, B/R = reverse, dpad/arrows = hat, Start,Back/F1,F2 = config). Samples in GetNextEvent so button latency does not depend on the 15 s menu-time analog cadence; hot-plugs pads; L4PADFLIP=XY inverts stick axes; lamp commands land in lampState[] for the planned on-screen cockpit panel. The stock VTVRIOMapper/lamp/button path runs unchanged. - PlasmaScreen (L4PLASMA=SCREEN): the 128x32 plasma glass as a desktop window in plasma orange (L4PLASMASCALE, default x4), rendering the same Video8BitBuffered surface the gauge system always drew; no COM port. Verified in the sandbox with vRIO off and no serial devices: boots to a running mission, controller hot-detected, plasma window drawing live game content (score readout). BUILD.md 4 documents the desktop environ.ini and bindings; roadmap updated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+14
-10
@@ -40,16 +40,20 @@ geometry reference — it is already the faithful software copy of the physical
|
||||
panel. On-screen buttons light with the same lamp states the game commands,
|
||||
so press-feedback works like the real button field.
|
||||
|
||||
- Replace the RIO serial path in the L4 layer with a native input layer
|
||||
(keyboard / mouse / XInput, later Steam Input). Port vRIO's binding model —
|
||||
its axis-travel semantics (throttle ratchet, spring-back pedals, ±80 stick)
|
||||
are exactly what the game expects. **[investigate]** where the L4 layer reads
|
||||
RIO input, and whether an abstraction seam already exists.
|
||||
- Render the plasma display in-game (HUD overlay) instead of streaming
|
||||
`ESC P` graphics to COM2 — `L4PLASMA.CPP` already composes the frame into a
|
||||
local 1bpp buffer before serializing, so the seam is likely right there.
|
||||
- Lamp feedback (button lighting) maps to on-screen highlight / controller
|
||||
rumble / RGB later; low priority.
|
||||
- ✅ **Prototype landed (2026-07-12).** The seam existed: the controls manager
|
||||
consumes a small RIO surface (8 methods + 5 analog scalars), now split out
|
||||
as `RIOBase`. **PadRIO** (`L4CONTROLS=PAD`) implements it from XInput + the
|
||||
PC keyboard with vRIO's default profile — the stock `VTVRIOMapper`, lamps,
|
||||
and button field run unchanged, no serial, hot-plug supported. Verified:
|
||||
boots and plays with vRIO off and no COM ports.
|
||||
- ✅ Plasma display: **PlasmaScreen** (`L4PLASMA=SCREEN`) renders the same
|
||||
`Video8BitBuffered` surface into a desktop "Plasma Display" window in
|
||||
plasma orange — verified drawing live game content (score readout).
|
||||
See BUILD.md §4 for bindings and the desktop `environ.ini`.
|
||||
- Next in A: on-screen RIO panel fed by `PadRIO::lampState[]` (the
|
||||
cockpit-feel layout — vRIO button clusters around the displays); port the
|
||||
full vRIO bindings-file model (deflect/rate/deadzone per axis, rebinding);
|
||||
pilot keypad (numpad → KeyEvent); Steam Input once C starts.
|
||||
- vRIO itself stays useful as a dev harness against unmodified builds.
|
||||
|
||||
## Workstream B — In-game sessions (from TeslaConsole)
|
||||
|
||||
Reference in New Issue
Block a user