re: the Phase_1/2/3 block of the settings family -- mostly per stage, not per phase
72 records, 94 distinct field names, 31 in every one (post-processing core, five Fog*, three ScreenColor*, SpaceSize, five Supply*, UnderCommandSquadron, the first BGOperate slot). Optional families sit in clean tiers: Nebura_* and ColorLayer* in 69/72, DOF_*/UnsharpMask_*/ExposureKey_* in 15/72, FinalPass* in 3/72. REFUTED: BGOperateFrameCount is NOT the number of BGOperateFrameName_i slots -- 36 of 72. What holds is Count <= slots, 72/72: a fixed slot array with a live count, the same shape as MessageCount under the 32-slot clamp. 68 of the fields common to all three phases NEVER differ in any of the 24 objects. The phase block is a per-stage environment block copied three times; what a phase change is actually for is the backdrop animation (BGOperate*) and the supply/command squadron assignment. MapPath is not in this family -- its 87 records per pack are 29 x 3, the resource manifest's Phase_N. Also fixed a non-determinism the verify loop caught: most_common() over a set iteration ordered ties differently per run; now sorted by (-count, name). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE
This commit is contained in:
@@ -77,11 +77,51 @@ almost everything is `1.0`, with `CollisionDamageRatio 0.8` and
|
||||
is expressed **twice** in the same object — once for *scoring*
|
||||
(`Score_{Easy,Normal,Hard}`) and once for *damage* (`Difficulty_*`).
|
||||
|
||||
## 🟡 Not settled
|
||||
## ✅ The `Phase_1/2/3` block — mostly per stage, not per phase
|
||||
|
||||
* The `Phase_1/2/3` block of the settings family (31–90 named fields:
|
||||
post-processing, fog, DOF, unsharp mask, supply squadrons and movies,
|
||||
`UnderCommandSquadron`, `MapPath`) is **not read here** — it is the largest
|
||||
remaining piece of this table.
|
||||
**Settled 2026-08-27.** 72 records (24 objects × 3), **94 distinct field names**,
|
||||
of which **31 appear in every one**: the post-processing core
|
||||
(`ExposureKeyValue`, `LuminanceMin/Max`, `FirstAdaptedLuminance`,
|
||||
`BrightPassThreshold/Offset`, `BloomScale`, `StarScale`, `GlareType`,
|
||||
`Brightness`, `Contrast`, `Saturation`, `Hue`), the five `Fog*` fields, the three
|
||||
`ScreenColor*`, `SpaceSize`, the five `Supply*` (`SupplySquadron1/2`,
|
||||
`SupplyMovie1/2ID`, `SupplyRange`), `UnderCommandSquadron`, and the first
|
||||
`BGOperate` slot. Optional families come in fixed frequency tiers:
|
||||
`Nebura_*` (12 fields) and `ColorLayer*`/`BGRotateScale`/`AfterimageScale` in
|
||||
**69/72**, `DOF_*` (7) and `UnsharpMask_*` (7) and the four `ExposureKey_*` in
|
||||
**15/72**, `FinalPass*` (11) in **3/72**.
|
||||
|
||||
### 🔴 Refuted: `BGOperateFrameCount` is not the number of name slots
|
||||
|
||||
The obvious reading — a `Count` naming its indexed group, the pattern that pinned
|
||||
the chatter pairs and the cutscene pages — **fails here: 36 of 72**. What holds is
|
||||
the weaker statement, **`BGOperateFrameCount ≤ slot count` in 72/72**: the slot
|
||||
array is fixed (1, 4 or 5 `BGOperateFrameName_i` present) and `Count` says how
|
||||
many are live, exactly as `MessageCount` sits under the 32-slot clamp in
|
||||
[`preset-message-rules.md`](preset-message-rules.md). `Count` runs 1…5.
|
||||
|
||||
### ✅ What actually changes between phases
|
||||
|
||||
Of the fields common to all three phase records of an object, **68 never differ
|
||||
in any of the 24 objects**. The entire `Nebura_*`, `DOF_*`, `UnsharpMask_*` and
|
||||
`FinalPass*` families, most of the fog and colour settings, `SupplySquadron2` and
|
||||
`SupplyRange` are **per stage, duplicated into all three phases**.
|
||||
|
||||
The short list that *does* move — and never in more than 6 of 24 objects — is:
|
||||
`BGOperateFrameName_0` (6), `SupplySquadron1` (5), then `Brightness`,
|
||||
`BrightPassOffset`/`Threshold`, `ColorLayerA`, `BGOperateFrameCount`,
|
||||
`UnderCommandSquadron`, `FirstAdaptedLuminance`, `BGOperateFrameName_2` (3 each),
|
||||
and a tail of bloom/glare/contrast/colour knobs at 2.
|
||||
|
||||
So the phase block is best read as **a per-stage environment block copied three
|
||||
times**, with the backdrop animation (`BGOperate*`) and the supply/command
|
||||
squadron assignment as the parts a phase change is actually for.
|
||||
|
||||
⚠️ **`MapPath` is not in this family.** Its 87 records per pack are 29 × 3 — the
|
||||
**resource** manifest's `Phase_N`, not the settings'. `stage-definition-table.md`
|
||||
owns `MapPath`/`MapMesh` in the `Stage_SNN` records; what it does not say is that
|
||||
the name recurs in the resource manifest's per-phase records.
|
||||
|
||||
## 🟡 Not settled
|
||||
* Which object is which stage, beyond the single `IsBoss16Enable` hook.
|
||||
* `SplinterCell Count 5` — name and value only.
|
||||
|
||||
Reference in New Issue
Block a user