Cockpit camera complete + namedpipe transport + 832x512 native res

Render bridge (live_bridge.py, vrview_gl.py):
- Hat glances render (left/right frame the canopy, hat-down = clean rear).
  Root bug was a stale _ckpt['fix'] key -> KeyError every glance frame ->
  render aborted (screen froze on hold, snapped back on release). The glance
  itself is the authentic eye-DCS action-0x1f reflush fp_cam already applies.
- Torso twist turret-true (root-axis yaw, zero parallax); lasers follow torso.
- Rear glance drops the canopy shell for a clean view (original-hardware
  behavior); mission-fade shroud 9fd hidden.
- Wireframe debug mode (VRVIEW_WIREFRAME / 'w' key), scene-pass scoped.
- Renderer output = 832x512, the dPL3 board's native framebuffer res.

DOSBox-X fork: namedpipe serial backend (serialnamedpipe.cpp/.h) for
vRIO/vPLASMA, replacing com0com; overlapped non-blocking I/O; typed frames
(0x00 data / 0x01 DTR+RTS). Tracked copies + apply steps in vpx-device.

Docs: COCKPIT-CAGE-NOTES (full glance/twist/rear forensics), XP-PORT-PLAN
(back-burnered), RIO-NOTES (namedpipe + keypad), pipe/egg conf variants.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Cyd
2026-07-14 10:08:15 -05:00
co-authored by Claude Opus 4.8
parent 873882b4be
commit aadda7f9a5
16 changed files with 1801 additions and 16 deletions
+7 -2
View File
@@ -17,7 +17,12 @@ param(
$ErrorActionPreference = 'Stop'
# ---- POD DISPLAY LAYOUT (x,y[,w,h]); edit for this rig's outputs ----------
$MAIN = '0,0'; $MAIN_W = 800; $MAIN_H = 600 # GL bridge (out-the-window)
# Main render = 832x512, the dPL3 board's NATIVE framebuffer res (the game's
# view flush, pick coords, and death-cam stream are all 832x512; see
# dpl3-revive/spec/VELOCIRENDER_PROTOCOL.md). Rendering 1:1 removes the
# aspect/scale variable while wiring things up; how to present on an 800x600
# output (letterbox vs scale) is decided AFTER everything is verified at 1:1.
$MAIN = '0,0'; $MAIN_W = 832; $MAIN_H = 512 # GL bridge (out-the-window)
$RADAR = '800,0,640,480' # Head C -> win0
$MFD3 = '1440,0,640,480' # Head B, 3-color (UL/UC/UR) -> win4
$MFD2 = '2080,0,640,480' # Head A, 2-color (LL/LR) -> win3
@@ -32,7 +37,7 @@ $env:VPX_WIN4 = $MFD3 # 3-color MFD head (HEAD B)
$env:VPX_WIN3 = $MFD2 # 2-color MFD head (HEAD A)
# To swap the two MFD heads, just swap the x-coords in the $MFD3/$MFD2 lines
# above (1440 <-> 2080) -- the RECTS block is the single source of truth.
# Main render window size = the main display's native res.
# Main render window size = the board-native 832x512 (see RECTS comment).
$env:BRIDGE_W = "$MAIN_W"
$env:BRIDGE_H = "$MAIN_H"