Files
TeslaRel410/emulator
CydandClaude Fable 5 79aba77309 BT410 5.3.127-128: the mech can stand on its heels, and it knows when it is about to fall over -- the super stop, the instability model and the telemetry rings
THE MODEL RESOURCE NAMED THESE BLOCKS.  The ctor loads (part_012.c:15798)
tie the master perf's anonymous offsets to field names our
Mech__ModelResource already carried, and the names confirm the arithmetic
as surely as the arithmetic confirms the names:

  rec+0x48 -> +0x5bc  superStopAcceleration
  rec+0x80 -> +0x784  maxUnstableAcceleration
  rec+0x84 -> +0x788  unstableAccelerationEffect
  rec+0x88 -> +0x78c  unstableGunTheEngineEffect
  rec+0x94 -> +0x798  unstableStopedTurnEffect

THE SUPER STOP (@0x4aa353): hauling the throttle negative while the mech
still rolls forward is a hard brake, not a reverse.  The edge swaps the
gait's acceleration rate to the authored superStopAcceleration, marks the
update, and throws ONE random-signed lurch through both gyro channels;
while it holds above a walk it repeats a pitch kick every 0.4s -- the
shudder of a hundred tons standing on its heels.  A chassis authoring
-1.1 disables the system entirely (the sentinel must survive the model
read unguarded).

THE INSTABILITY MODEL (tail @0x4aab8e): three weighted terms -- filtered
acceleration (squared), gunning the engine, and turning on the spot --
clamped to 1 into unstablePercentage, which was ALREADY a published
cockpit attribute holding a staged zero, and republished to the gyro
(whose tip/sway machinery @004b275c consumes it; that's the next gyro
brick).

THE TELEMETRY RINGS (@0x4aafba): the binary's five rings ARE the engine's
AverageOf<Scalar>, and our telemetryFilter[5] has been sized 15 and unfed
since the layout wave.  FUN_0043ae47 is CalculateOlympicAverage -- a
judge-style trimmed mean, min and max discarded.  Two oddities kept
verbatim and flagged: the vel.y ring is never reduced, and the derived
acceleration's components come from a mongrel basis (only its length is
consumed).

CORRECTION to 5.3.122: 'realMaxSpeed' was a duplicate member for
mech+0x7a0, which our tree already carried as runSpeedMax; merged.  And
the +0x7a4 'computed my own cap' flag is set by the ctor's MYOMERS sweep
-- a mech with myomers broadcasts its cap, one without adopts the
streamed value.

Soaks (pod_render_superstop / pod_render_telem, BT_SUPERSTOP_SOAK cycling
+0.8 for 6s then -0.5 for 4s): the super stop engages on the correct edge
(speed 35.6, demand -28.0) and releases cleanly, repeatedly; the rings
fill and the instability sweeps its whole range to the 1.0 clamp; zero
faults.  The new gauge immediately earned its keep as a diagnostic -- it
pins high while walking because the mech demands 35.9 u/s and the
reconstructed gait delivers 7.0, which is now a measurable open question
rather than an invisible one.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-10 00:46:25 -05:00
..