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:
Claude (auto)
2026-08-27 20:33:27 +00:00
parent b20609f818
commit 3718b7a5f2
3 changed files with 124 additions and 25 deletions

View File

@@ -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 `0x8209F3000x8209F600`
(`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 `0x820A119C0x820A1378`, 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.