Commit Graph
3 Commits
Author SHA1 Message Date
CydandClaude Fable 5 6da6ec89dd BT410 5.3.119: the master gate comes home -- 0xC/0x100 decoded as the engine's own enums, and every [T2] mirror retired
The 'mysterious flag pair' gating every master-only registration was never
BT-specific state waiting on unreconstructed stream builders. It is the
Entity base itself: InstanceBits=2 puts the instance field at mask 0xC
(ReplicantInstance=4), DynamicBit=8 makes DynamicFlag 0x100 -- so the
binary's (flags & 0xC)==0 && (flags & 0x100)!=0 reads 'a master-instance
dynamic entity', spelled MasterInstance + DynamicFlag in the 1995 headers.
Mover::DefaultFlags = DynamicFlag|MasterInstance, ENTITY.CPP:978 seeds
simulationFlags from the MakeMessage's instanceFlags, and our spawn recipe
has passed Mech::DefaultFlags since the boot ladder -- the authentic gate
was live all along. The BT411 donor's 'MasterHeatSinkFlag' name was a
fabrication that made an engine constant look like a missing subsystem
feature (donor drift #12).

Eleven sites flip from the GetInstance() mirror to the binary pair: the
heat-family registrations (x4), powersub (x3), gyro, hud, myomers,
emitter, and the Torso ctor's master/copy selection (@004b6b0c verbatim,
isDamagedCopy set in both branches). The MECHWEAP score-post and MECH view
gates are different families and stay as they are.

Statically proven (DefaultFlags carries both bits) and mission-soaked
clean. No [T2] divergence markers remain in the tree.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 14:10:49 -05:00
CydandClaude Fable 5 59a0c109c9 BT410 5.3.112: the hot path stops paying for its own diagnostics -- plus the HUD's confident half
PERFORMANCE, measured not guessed (operator report: "vastly slower than the
original").  The audit found and fixed:

  THE [crash] FLOOD: the collision-block log printed EVERY BLOCKED FRAME --
  5,487 lines in one wall-grinding run (~13/s sustained), each a float-heavy
  iostream format pushed through the COM3 serial redirect.  The shipped exe
  prints nothing, ever.  Now logs the CONTACT EDGE only (the same
  collisionState 0->1 gate the audio uses).

  ~100 UNCACHED getenv SCANS PER FRAME: every gated log site walked the DOS
  environment block per call, and the control mapper ran FOUR getenv + atof
  parses per frame in the input path whether logging was on or not.  All
  hot-path gates now cache in function-local statics (the donor's own
  idiom); the force-input overrides parse once.

  Ruled out: the debug macros (DEBUG_LEVEL=0 nulls Check/Verify wholesale,
  DEBUGOFF.HPP) and optimization (-O2, the authentic OPT flags).

  MEASURED RESULT: crash lines 5487 -> 0 on the same mission; the SOS frame
  pacing is 16.67 ticks/frame with drift=0 in BOTH the flooded and fixed
  runs -- the fixed-tick sim never actually lost its clock on the rig, so
  the flood's cost was wall-time in the serial path, not sim drift.

  THE OTHER HALF OF THE ANSWER, for the operator: since 5.3.95 the hull's
  speed is STRIDE-DRIVEN.  The mech steps off at ~7 u/s and winds up
  through the walk band (capped 18.5) to the run only across clip-boundary
  transitions -- seconds, like the real pod -- where the old bring-up model
  hit 26.9 instantly.  Walls also now stop the mech dead.  If "slower"
  means acceleration feel rather than frame rate, that is the AUTHENTIC
  gait arriving, not a defect.

ALSO IN: HUD::HudSimulation's confident half (base tick, heat/voltage page
gating off the 5.3.109 mirrors, the blink -- with >= on the flicker compare
where the decomp shard's literal != would toggle every tick), registered on
the master; the reticle/lock/torso-horizon math stays STAGED, matching the
donor's own unfinished state.  Stub census: 17 across 11 files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-03 22:36:14 -05:00
CydandClaude Fable 5 a36e775c7c Mech phase 2: reconstruct HUD (: PowerWatcher) -- Mech hudSubsystem
Head-up display / targeting reticle subsystem, full named member set (reticle/
compass/lock/flicker/torso-readout state). Ctor chains PowerWatcher + inits per
the binary (visible/blinkState True, vectors zeroed, resource flicker/horizontal
copied); statusAlarm.Initialize(2). Added AlarmIndicator::Initialize(levels).
statics/dtor/test real; HudSimulation staged. BT: 29 ok.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 00:05:00 -05:00