docs: backlog — primitive layers tabled; the tie-break is now the only gap

This commit is contained in:
Sylpheed RE agent
2026-08-19 09:16:13 +00:00
parent 610b21c434
commit 6c93d43446

View File

@@ -107,22 +107,27 @@ See [`structures/ui-composable-bundles.md`](structures/ui-composable-bundles.md)
title — the one screen with ground truth — it takes mean luminance from **+18 %
to 1.3 %** of the capture (76.30 → 63.72 vs 64.58) and mean abs diff 16.07 →
13.08. Off by default because of the item below.
* 🟡 **Where a primitive paints — three measured screens, still no derivation**
(2026-08-19). A primitive has no `T8aD` header and so no layer key. Measured
positions are stable **by role**: `palogo_eff0.prm` (opaque backdrop) **first**
on the splash; `pteff02.prm` (25 % dim) at slot **4** on both the title and the
main menu; `pteff00.prm` (transition fade) **last** on both. Nothing in the
file predicts this — any key must live in the 60-byte declaration entry, of
which four words are still unread. **That is the next first step**, and it is
a *static* task now: dump the full declaration entries for these three screens
and look for a word that sorts like the measured orders.
✅ Input was never the blocker — the game receives the Ⓐ press
(`vk=5800 flags=0001`, measured); four harness bugs were. Boots now reach the
main menu, whose composite scores **0.9591** against a live capture.
`GP_DIALOG` DIFFICULTY remains unreached: Ⓐ on NEW GAME hits the standing
black-screen hang.
See [`structures/ui-paint-order-key.md`](structures/ui-paint-order-key.md) and
[`ui-paint-order-third-permutation.md`](ui-paint-order-third-permutation.md).
* 🟡 **Where a primitive paints — not in the file; measured and tabled**
(2026-08-19). 🔴 Refuted twice over: the declaration entry's four unread words
are **constant** (`+28`=0, `+36`=0xffffffff, `+56`=0, `+44` a button ordinal),
and the bundle carries **no data at all** for a primitive — the menu build
declares three and has zero RATC children for any of them. The layer comes
from the game's code. ✅ But it is consistent: `pteff02.prm` implies a key in
**(0x8010, 0x8040) on both** screens it appears on, `pteff00.prm` past the
maximum on both, `palogo_eff0.prm` below the minimum. `implied_layer_key`
records those, and `derived_paint_order` now reproduces the **layer-key
sequence of all three measured orders**, primitives included (element-for-
element on 4 of 5 bundle instances; the title differs only inside tied groups).
**Still open:** primitives whose position has never been measured —
`pzeff00.prm` and `pceff00.prm` are what wipe the 36 builds, which is why
`include_primitives` stays off by default. A capture of any screen carrying one
would close it.
See [`structures/ui-prm-primitives.md`](structures/ui-prm-primitives.md).
***The tie-break.** Elements sharing a layer key are painted in an order
nothing predicts — the title's `0x8083` ×5 group paints `14,15,18,16,17` and
the `0x80a0` ×7 group paints `0,2,4,7,1,3,5`. Now the *only* thing between the
derived order and the measured ones, so it is the next cheap static probe:
three measured screens' tied groups against every remaining field.
***Blend mode.** Everything is straight alpha-over. The near-white flash
quads (`0xf0ffffff`) and coloured ones (`0x60ff0000`) may be additive. The
title capture cannot separate the two — its resting elements are all