diff --git a/context/subsystems.md b/context/subsystems.md index 516b5a5..5076441 100644 --- a/context/subsystems.md +++ b/context/subsystems.md @@ -87,8 +87,14 @@ Making a base byte-exact GROWS every subclass — they must be re-based TOGETHER `Mech+0x7A0` (cap) = port `reverseSpeedMax2` — both documented misnomers. 4. **The ENG-page power curve** — SeekVoltageResponse, now at the correct absolute scale (OwnerBaseSpeed reads the real base instead of the 1.0 stub). - 5. **Electrical sourcing** — low seek gears keep the myomers runnable on a browned-out - generator (HasVoltage: `gear voltage <= measured`). + 5. **Electrical sourcing — the dial's REAL stake is TORSO TWIST.** A gear's voltage must be + <= the generator's measured output (`(1 − generator damage) × rated`, thermal breaker on + FailureHeat; there is NO load model — demand never pulls the bus down), or the myomers leave + Ready. The Torso is a PowerWatcher on the myomers: `TorsoSimulation` ZEROES the twist rate + while the watched myomers are not Ready (halves it at DegradationHeat) — so an over-high gear + on a damaged generator freezes the pilot's AIM until they downshift. On a healthy mech, + gears 1-3 are literally identical (heat ratio floors at 1, no speed coupling); gear 4 = + double heat + a tighter dropout threshold for nothing but the taller graph — a trap. **Deliberately REMOVED (was an invention): the `speedDemand *= speedEffect` demand multiplier** (mechmppr.cpp) and `BTMyomersDriveOf`. Damaged-but-alive myomers heat faster and drop the power curve but do NOT slow the mech — gitea #75's premise is falsified by the binary; the