diff --git a/docs/re/BACKLOG.md b/docs/re/BACKLOG.md index 835ad30..5b1e57a 100644 --- a/docs/re/BACKLOG.md +++ b/docs/re/BACKLOG.md @@ -94,15 +94,24 @@ See [`structures/ui-composable-bundles.md`](structures/ui-composable-bundles.md) elements that rested invisible and the fade quad that rested opaque black. See [`structures/ui-resting-pose.md`](structures/ui-resting-pose.md) and `tools/re-capture/align_to_capture.py`. -* ❔ **`compose` ignores the keyframe `fade` alpha.** ← *next, and the last thing - between here and drawing `.prm`.* `blit` modulates by `tint`, which is - `0xffffffff` on essentially every keyframe; the `fade` ARGB is never applied. - That is why resting on the wrong keyframe was invisible for so long, and it is - the whole content of a `.prm` quad. First step: apply `fade` alpha in `blit` - and A/B the title against the capture with `align_to_capture.py`. -* ❔ **Blend mode for the primitives.** Straight alpha is the assumption for the - black dim quads; the near-white flash (`0xf0ffffff`) and the coloured ones - (`0x60ff0000`, `0x0000ffd4`) may be additive. Nothing measured. +* ✅ **The keyframe `fade` alpha is applied** (2026-08-19). ARGB, multiplied on + top of `tint`. Title composite vs the running-game capture: **0.4597 → 0.9538** + edge correlation at zero shift. No-op on 4 060 of 5 200 sprite elements, hides + 687 transient HUD indicators, blanks **zero** builds. It also exposed a defect + in the resting rule — a keyframe group carries the screen's *exit* animation + too, and the tie-break was grabbing it, which erased the word PAUSE; a run + ending on the last keyframe is now excluded. + See [`structures/ui-resting-pose.md`](structures/ui-resting-pose.md). +* ❔ **Draw the `.prm` quads.** ← *next; nothing is blocking it now.* A solid + `fade`-coloured rect at `pivot × 2`, painted in layer-key order like everything + else. The title's `pteff00.prm` rests transparent and its `pteff02.prm` at + `0x00000000`, so the title should be unchanged — that is the regression check. + `GP_*` screens that dim behind a menu are where it should show. +* ❔ **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 + `0xffffff`. A screen with a coloured primitive, captured, would. + * ❔ **What marks a focused state in the file.** The pairing rule that shipped is a naming convention, not a decoded field. `kind = 0x3002` is a button record; whether a bit of `kind` marks the focused variant is the cheapest probe.