re(flight): axis probe -- lx is roll, ly drives one clean axis, rest not trustworthy

New probe (axis_probe.py) decomposes every held input into all THREE rotation
components at once, instead of measuring one axis at a time through a non-forward
matrix row -- the flaw that once made roll and pitch produce identical numbers.
For previous rows (f,u,w): roll = atan2(u.w_old, u.u_old), and forward's rotation
toward each of the other two rows gives the remaining pair.

Stage 02, file pad, full deflection on exactly one channel at a time:

    lx+   roll 209.8   b 0.9    c 10.1     deg/wall-s
    ly+   roll   0.0   b 154.1  c  0.0
    rx+   roll   0.0   b 0.0    c  0.0
    ry+   roll 161.1   b 87.0   c 37.1
    LB/RB all zero

What this supports: lx = ROLL, cleanly (~0 on both other channels), agreeing with
the independent roll measurement. ly drives ONE axis, cleanly.

What it does NOT support, and I am not claiming:
 - WHICH axis ly drives. entities2 measures row 2 = forward against velocity, but
   rows 0 and 1 are labelled up/right by the D3D convention rather than by
   evidence, and yaw/pitch SWAP if that is wrong. Roll is immune (rotation of
   either non-forward row in their shared plane is roll either way).
 - anything about rx/ry/LB/RB. The run ended on GAME OVER: full-deflection spin in
   a live combat mission gets the craft destroyed, and the only symptom is "0
   player candidates" AFTERWARDS, so late rows may be post-death. rx+ reading all
   zeros and ry+ reading mixed are exactly what a dying craft would produce.

So "yaw: no input found" is NOT resolved. Both gaps are now written into the
probe's header with what would fix them: a liveness check between inputs, and
pinning up-vs-right against world Y.
This commit is contained in:
2026-08-13 22:10:23 +00:00
parent 850b04c606
commit 5f3c618b51
2 changed files with 138 additions and 0 deletions

View File

@@ -0,0 +1,7 @@
input,roll_deg_s,yaw_deg_s,pitch_deg_s
lx+,209.8,0.87,10.07
ly+,0.0,154.12,0.0
rx+,0.0,0.0,0.0
ry+,161.07,86.98,37.06
LB,0.0,0.0,0.0
RB,0.0,0.0,0.0
1 input roll_deg_s yaw_deg_s pitch_deg_s
2 lx+ 209.8 0.87 10.07
3 ly+ 0.0 154.12 0.0
4 rx+ 0.0 0.0 0.0
5 ry+ 161.07 86.98 37.06
6 LB 0.0 0.0 0.0
7 RB 0.0 0.0 0.0