re: RATC +0x10 is a u16 pair too, and no bit is a clean predicate

The u16 at +0x10 is 0 in all 2985 bundles; the content is a 16-bit flag word at
+0x12 with 83 distinct values. Reading it as a u32 inflates the field and hides
that the header is built from u16 pairs -- the same shape +0x0c turned out to
have. All 16 bits are used, from 1.4% to 91.5%.

Cross-tabulated every bit against four properties measurable from the bundle:
multi-element, animated, window-starts-at-zero, 30fps. No bit is close to a
clean predicate. The strongest is bit 10 against window-at-zero, 0.79 vs 0.21 --
a real association but not a rule, and exactly the kind of moderate split that
invites over-reading.

Bit meanings stay open, but four candidate readings are excluded rather than
untried and the field is correctly sized. Every property visible in the file has
now been tried, so assigning meanings likely needs the game observed with
individual bundles loaded.
This commit is contained in:
Sylpheed RE agent
2026-08-26 06:59:08 +00:00
parent 92526469d9
commit 7460d71e6e
2 changed files with 39 additions and 3 deletions

View File

@@ -308,7 +308,9 @@ See [`structures/ui-composable-bundles.md`](structures/ui-composable-bundles.md)
length; ✅ it is **authored, not the keyframe min/max** — that
reading holds in 6 of 2 985 (0.2 %), and the apparent 34 % match on `high` is a
coincidence of zeros. The window is narrow, a median 2 % of the keyframe span.
🟡 what the window means stays open. `+0x10` still ❔.
🟡 what the window means stays open. `+0x10` is ✅ a zero `u16` plus a 16-bit flag word at
`+0x12` (high half zero in 2 985/2 985); ❔ the bit meanings, with four
measurable predicates now excluded.
See [`structures/ui-rat-layout.md`](structures/ui-rat-layout.md).
* 🟡 **What `opt ` links — a record→record reference** (2026-08-24, measured
disc-wide and asserted). All **1 467** links reachable from a declaration table