#118 correction sweep: the ARCADE's eject was LIVE -- 'dead code in 4.10' was wrong
The absolute-pointer scan missed the E8-relative call; the later byte-scan found it (FUN_004a9b5c+0x10 -- the master performance evaluates eject permission per frame in the shipped binary). Under deadline pressure the disproven 'unfinished/dead code' claim leaked back into three comments and the handoff; swept per the correction mandate. Settled press model, now stated correctly everywhere: pilot eject = the pilot KEYPAD bank while armed (+ the PANIC key reporting through that matrix). The MFD soft keys NEVER pilot-eject in the binary -- every page routes them to authored functions; the flashing engEject cell is the INVITE LAMP. The port's page-gated eng-key eject is a MARKED CONVENIENCE deviation (operator-requested), and the coolant hysteresis is a MARKED smoothing deviation for a degenerate boundary oscillation -- not completions of unfinished code. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
38872ac726
commit
675fe68cb0
+15
-10
@@ -2631,16 +2631,21 @@ void
|
||||
//----------------------------------------
|
||||
buttonActivateModeMask[rio_event.Data.Unit] = mode_mask;
|
||||
|
||||
// THE ENG-PAGE EJECT KEY [T3 intent-completion, #118]: side keys
|
||||
// 0x0B/0x23/0x03 are the eng-page EJECT position (engEject lamp 0x85
|
||||
// = kBTEngBankTop-4; the streamed weapon pages route the same key to
|
||||
// EjectAmmo). Eject was UNFINISHED in the 4.10 binary (the armed
|
||||
// mode never rose), so the generator-page press has no authored
|
||||
// route; complete the intent here IN THE DRAIN (game thread --
|
||||
// mode_mask in hand; a first cut queried the mode manager from the
|
||||
// window-click thread and crashed on the unbound TU global): while
|
||||
// PANIC is armed AND that bank shows an ENG page, forward the press
|
||||
// as a pilot-keypad key -- the binary's one armed eject binding.
|
||||
// THE ENG-PAGE EJECT KEY [T3 PORT CONVENIENCE -- a marked DEVIATION,
|
||||
// #118]: side keys 0x0B/0x23/0x03 are the eng-page EJECT position
|
||||
// (engEject lamp 0x85 = kBTEngBankTop-4). IN THE BINARY these soft
|
||||
// keys NEVER pilot-eject: every page routes them to a real authored
|
||||
// function (weapon pages: EjectAmmo 0xB; myomer pages: seek toggle 9;
|
||||
// the streamed .CTL dump has no 0x200000 records), and the flashing
|
||||
// engEject lamp is the INVITE -- the 1995 press was the pilot KEYPAD
|
||||
// / PANIC key beside it. The pod eject chain itself was LIVE in 4.10
|
||||
// (master perf FUN_004a9b5c+0x10 evaluates per frame; an earlier
|
||||
// "unfinished" note here was wrong). This hook adds the glass-layer
|
||||
// convenience the operator asked for: while PANIC is armed AND that
|
||||
// bank shows an ENG page, the flashing key ALSO forwards as a
|
||||
// pilot-keypad press. Runs in the drain (game thread -- mode_mask
|
||||
// in hand; a first cut queried the mode manager from the window
|
||||
// thread and crashed on the unbound TU global).
|
||||
{
|
||||
const int a = rio_event.Data.Unit;
|
||||
unsigned engBits =
|
||||
|
||||
@@ -572,10 +572,13 @@ int
|
||||
extern int BTPlayerExperienceSimLive(void *owner_mech); // btplayer.cpp (+0x25c;
|
||||
int noviceSim = (BTPlayerExperienceSimLive(this) == 0); // NULL-player reads LIVE)
|
||||
|
||||
// COOLANT-CLAUSE HYSTERESIS [T3 intent-completion, 2026-08-03]: the
|
||||
// binary's clause is a plain `< 0.05` compare -- but this evaluator was
|
||||
// DEAD CODE in shipped 4.10 (never called), so the boundary flap was
|
||||
// never exercised. Live, a bank fraction hovering at 0.05 under fire
|
||||
// COOLANT-CLAUSE HYSTERESIS [T3 smoothing deviation, 2026-08-03]: the
|
||||
// binary's clause is a plain `< 0.05` compare, evaluated per frame from
|
||||
// the master performance (FUN_004a9b5c+0x10 -- the arcade DID run this;
|
||||
// an earlier "dead code" note here was wrong, corrected same day: the
|
||||
// absolute-pointer scan missed the E8-relative call). A bank fraction
|
||||
// hovering exactly at the threshold is a degenerate oscillation the pod
|
||||
// plausibly never sat in (leaks drain THROUGH the boundary); live under
|
||||
// flips the panic-arm mode EVERY FRAME (observed: hundreds of ON/off
|
||||
// pairs), churning the mode mask, the lamp, and the arm audio cue into a
|
||||
// ~10 Hz stutter tick. The engine's own idiom for exactly this is the
|
||||
|
||||
@@ -75,8 +75,17 @@ open-questions (i860 DIV-CARD firmware ask).
|
||||
= ejectPermitted; review mode = GLOBAL DAT_004fd550).
|
||||
- EjectPilot @0049f854 confirmed via the image message table ('EjectPilot' id 0x19);
|
||||
DuckRequest = id 0x1a @0049fa00 (mech+0x398 latch, NO reader — vestigial).
|
||||
- KEY FINDING: **eject was UNFINISHED in shipped 4.10** — the evaluator had zero
|
||||
callers/pointers until the master-perf call was restored; the arcade never armed.
|
||||
- ⚠ CORRECTED (same night): an earlier "eject was UNFINISHED/dead code in 4.10"
|
||||
claim was WRONG — the absolute-pointer scan missed the E8-relative call; the
|
||||
master perf (FUN_004a9b5c+0x10) evaluates per frame, so the ARCADE's eject was
|
||||
LIVE. Only the PORT was missing the call (our PerformAndWatch recon predated
|
||||
knowing the export-hole fn's contents). Swept from code comments same night.
|
||||
- THE PRESS MODEL [settled]: pilot eject = the PILOT KEYPAD bank while armed
|
||||
(+ the PANIC key, which reports through that matrix). The MFD soft keys NEVER
|
||||
pilot-eject in the binary — every page routes them to authored functions
|
||||
(weapon eng: EjectAmmo; myomer eng: seek toggle) — the flashing engEject cell
|
||||
is the INVITE LAMP. Our page-gated eng-key eject is a MARKED PORT CONVENIENCE
|
||||
(deviation), operator-requested; drop it if strictness wins.
|
||||
- Inputs, all live: Panic button (0x3D→pilot-keypad wire), NUMPAD = pilot keypad
|
||||
(CONTROLS.MAP `keypad pilot` bindings), Backspace/pad action, and the eng-page
|
||||
EJECT key (0x0B/0x23/0x03) page-gated in the RIO drain [T3 intent-completion].
|
||||
|
||||
Reference in New Issue
Block a user