re: decode the config records -- render/input constants, and a correction

parse() + named() on each named record (data/config-records.txt).

The find, directly portable: Rendering carries the tone-mapping and
bloom numbers (Brightness 1.4, Contrast 1.0, ExposureKeyValue 0.18,
BrightPassThreshold 0.6, LuminanceMin/Max 0.15/3.6, BloomScale 0.5,
AfterimageScale 0.05, StarScale 1.20, GlareType 8), ControlTweak the
input constants (CameraSpeed 0.50, TargetSpeed 0.50, TargetMovingRange
-10..10, mov_trigger_play 20, eye/mov_stick_play 6000), and Camera
NoseCameraFOV 0.92 / ChangeTime 0.20.

Corrects my own last entry: WEAPONS is a 59-entry NAME ROSTER, not a
stat sheet, and UNITS is not units at all -- seven craft-slot/pilot
pairs, the wingman roster.  IGNORE is a 13-name blocklist over the
weapon enumeration.

AUTO_SETTINGS lists exactly 28 stageNN_settings.tbl files -- a third
independent confirmation of the 28-stage count.

The objective-shaped records are UI: SUB_OBJECTIVE is a HUD layout (two
variants ship), SQUADRON_ORDER_OBJECT is 29 .prt sprite names, MISSIONS
holds the challenge categories, STAGES has zero fields.

Docs + one new artefact; ISL artefacts byte-identical.
This commit is contained in:
Sylpheed RE agent
2026-08-27 12:02:13 +00:00
parent bc48fa576d
commit 2a1236074b
3 changed files with 345 additions and 0 deletions

View File

@@ -486,6 +486,51 @@ global tables (`MISSIONS`, `STAGES`, `SOUNDS`, `SUB_OBJECTIVE`,
`Camera`, `ControlTweak`, `Rendering`, `AUTO_SETTINGS`, `IGNORE`**, and the
per-language `GP_MAIN_GAME_*` paks for the enum tables.
### ✅ (2026-08-27) The records DECODED — and my "canonical definitions" guess was half wrong
`parse()` + `named()` on each record (artefact `data/config-records.txt`):
**Real, directly portable constants** — these are the find:
```
Rendering Brightness 1.4 Contrast 1.0 Saturation 1.00 Hue 0.00
ExposureKeyValue 0.18 BrightPassThreshold 0.6
BrightPassOffset 1.5 LuminanceMin 0.15 LuminanceMax 3.6
BloomScale 0.5 AfterimageScale 0.05 StarScale 1.20
GlareType 8 ColorLayer R/G/B/A 0.00
ControlTweak CameraSpeed 0.50 TargetSpeed 0.50
TargetMovingRange -10.0 … 10.0
mov_trigger_play 20 eye_stick_play 6000 mov_stick_play 6000
Camera NoseCameraFOV 0.92 ChangeTime 0.20
```
🔴 **But `WEAPONS` and `UNITS` are not what I called them.** Last iteration I
said `GP_HANGAR_ARSENAL.pak` holds "the canonical weapon/unit definitions". Half
right at best:
* **`WEAPONS`** is a **59-entry name roster**`No_Equipment`,
`Machiene_Cannon_MG1`, `Broad_Sword_SG1`, `Frail_GP37`, `Stiletto_BG1`,
`Pilum_BP`… — an enumeration of ids, **not a stat sheet**.
* **`UNITS`** is not units at all: seven fields pairing a craft slot with a pilot
`Bird1-Sandra`, `Bird2-Billy`, `Bird3-Antonius`, `Bird4-Carl`,
`Rhino1-Raymond`, `Rhino2-Katana`, `Rhino3-Ellen`. **The wingman roster.**
* **`IGNORE`** is a **13-name blocklist** over that roster —
`Long_Spear_HBP`, `Twin_Saber_LG2H`, `Eagle_120AM`, `Maelstrom_Bomb`,
`Cluster_Mine_B10`, and the placeholders `Wep_82`, `Wep_85`. Weapons that
exist in the enumeration but are withheld.
🔑 **`AUTO_SETTINGS` lists exactly 28 files** — `stage01_settings.tbl`
`stage29_settings.tbl` — a **third independent confirmation of the 28-stage
count**, after the `.ssb` census and the `UnitGroup_SNN.tbl` probe.
🟡 **And the UI records are UI, not gameplay.** `SUB_OBJECTIVE` is a HUD layout —
`MAX_OBJECTIVE_OFFSET 353,242`, `TEXT_OFFSET 85,271`, `NUM_QUALIFY_OFFSET
309,242`, `DOT_OFFSET 0,20` — with a **second variant** (`275,222` / `85,251` /
`231,222` / `0,0`) in one pak, so there are two layouts. `SQUADRON_ORDER_OBJECT`
is 29 `.prt` sprite names for the squadron-order menu. `MISSIONS` holds six
positional members — `TimeAttack`, `ScoreAttack`, `Extra01``Extra04`, the
**challenge** categories, not the campaign. `STAGES` has **zero** fields.
🟡 Its neighbours belong to the same cluster: `builtin103` reads
`[phase+10156]` and `[phase+10152]` (9 and 7 writers), and a sibling vtable stub
clears `[phase+10152]`. The shape is an engine→script status trio, but that is a