re: the player-tuning consumer -- found for half, BLOCKED for the other, two of my labels refuted
The consumer is sub_822F9498, the unit-definition loader the corpus already documents. The field-name block 0x8209F300-600 (BulletTimeVolumePC, FireBirdPower, ChargeMaximum, Turn180RequiredTime, ShieldDoubler_Time, ...) is 36/36 referenced, every reference inside that one function. REFUTED, my own label: "Booster is a new schema". Its 50 field names are a strict subset of the unit Maneuver record -- 50/50 shared, 0 Booster-only. CruisingVelocity occurs in exactly 115 records disc-wide: 114 Maneuver + this one. The first check compared against Generic and scored 0/50, which read as brand new: the wrong record of a multi-record object is not a control. REFUTED: "Booster is the player craft's flight envelope". flight-speed-law.md measured ~125/~420/~1530; unit Maneuver 100/350/1200 gives consistent ratios 1.25/1.20/1.28, Booster 100/612/2100 gives 1.25/0.69/0.73. Booster is a SECOND, faster profile: 39 of 50 values identical to the player unit, and of the 11 that move the three velocities scale by exactly x1.75 and two accelerations by x1.5. BLOCKED: the AnalogRevice/Tweak reader. That schema is its own contiguous block at 0x820A119C-0x820A1378 headed by ControlTweakName -- 0 of 28 strings has a code xref and no instruction anywhere names a 0x820A1xxx operand, against a control of 36/36 on the neighbouring block. Runtime watch needed. Caught on the way: mov_stick_play/eye_stick_play exist twice; the referenced copy belongs to sub_822AE628, which reads GP_HANGAR_ARSENAL's ControlTweak records (6 of them, and none anywhere else) -- a clean, wrong answer if taken for ours. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
@@ -4901,3 +4901,53 @@ named 1 283 entries in `DefTables` and 0 here.
|
||||
consumer; `adv_yaw`'s meaning; object 4. **No loader was located for any of the
|
||||
three new objects** — this is a data-side characterisation only, so which code
|
||||
reads the curves is open.
|
||||
|
||||
---
|
||||
|
||||
## ✅🔴 2026-08-27 — the player-tuning consumer: found for half of it, BLOCKED for the other half, and two of my own labels refuted
|
||||
|
||||
Item (a). Static only; no artefact changed (the census output is unaffected).
|
||||
|
||||
✅ **The consumer is `sub_822F9498` — the unit-definition loader the corpus
|
||||
already documents** (`live-unit-definitions.md`, ← `sub_821A6CF0`, global
|
||||
`[0x828F358C]`). The field-name block `0x8209F300–0x8209F600`
|
||||
(`BulletTimeVolumePC`, `FireBirdPower`, `ChargeMaximum`, `Turn180RequiredTime`,
|
||||
`ShieldDoubler_Time`, `HPRegenerator_RegenSpeed`, `ExtraCartridge_Quantity`, …)
|
||||
is **36/36 referenced**, every reference inside that one function.
|
||||
|
||||
🔴 **REFUTED — "`Booster` is a new schema".** Its 50 field names are a **strict
|
||||
subset of the unit `Maneuver` record: 50/50 shared, 0 `Booster`-only**.
|
||||
`CruisingVelocity` occurs in exactly 115 records disc-wide — 114 `Maneuver` + this
|
||||
one. ⚠️ My first check compared against `Generic` and scored 0/50, which read as
|
||||
"brand new": **the wrong record of a multi-record object is not a control.**
|
||||
|
||||
🔴 **REFUTED — "`Booster` is the player craft's flight envelope".**
|
||||
`flight-speed-law.md` measured ~125 / ~420 / ~1 530. Unit `Maneuver`
|
||||
100/350/1 200 gives consistent ratios **1.25 / 1.20 / 1.28**; `Booster`
|
||||
100/612/2 100 gives **1.25 / 0.69 / 0.73**. The flight tracks `Maneuver`.
|
||||
|
||||
✅ **What `Booster` actually is:** a **second, faster profile** — **39 of 50
|
||||
values identical** to the player unit's `Maneuver`, and of the 11 that move the
|
||||
three velocities scale by **exactly ×1.75** (350→612 = 612.5 rounded;
|
||||
1 200→2 100; `SideThrustVelocity_Max` 500→875) and two accelerations by **×1.5**
|
||||
(600→900; 1 000→1 500). 🟡 What selects it is not settled.
|
||||
|
||||
🔴 **BLOCKED — the `AnalogRevice_*`/`Tweak` reader.** That schema is its own
|
||||
contiguous block at `0x820A119C–0x820A1378`, headed by **`ControlTweakName`**,
|
||||
then the 12 `Tweak` names, then the 8 curve names — **0 of 28 strings has a code
|
||||
xref, and no instruction anywhere names a `0x820A1xxx` operand**. Control: the
|
||||
adjacent block `sub_822F9498` reads scores 36/36, so the absence is real. Cause
|
||||
unexplained; the static route is exhausted. **A runtime watch on the curve values
|
||||
is the way in (NEEDS-HUMAN).**
|
||||
|
||||
⚠️ **The twin-string-block trap, caught:** `mov_stick_play`/`eye_stick_play`
|
||||
exist **twice**; only the second copy (`0x820AA630`) is referenced, by
|
||||
`sub_822AE628` — which also references `ControlTweak`, `Camera`, `Rendering`,
|
||||
`BackGround` and the DOF/bloom names. **`ControlTweak` records live only in
|
||||
`GP_HANGAR_ARSENAL.pak` (×6)**; `Tweak` only in the six main-game paks (×1).
|
||||
`sub_822AE628` reads the **hangar's** control table — a clean, wrong answer if
|
||||
taken for ours.
|
||||
|
||||
🟡 Not settled: what selects the `Booster` profile; what `adv_yaw`'s non-monotone
|
||||
curve indexes (unchanged — it needs the reader); why the `0x820A1xxx` block has
|
||||
no xref at all when its neighbour has 36.
|
||||
|
||||
Reference in New Issue
Block a user