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>
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>