Files
Sylpheed/docs/re/data/ui-blend-title-and-replication.txt
sylph-decoder d4bef47e38 re: the TITLE's blend states, the menu replicated twice, and the sweeps are on screen
Two more emulator runs close two of the three reach limits on the blend page.

THE TITLE (entries 4 + 2 composited). Everything alpha-over except the two
rotated sweep strips and -- the finding -- ptbtn00f, the PRESS (A) plate's
focused variant, which is ADDITIVE while its own base ptbtn00 is not. That is
what the documented plate pulse is made of, and a port drawing both alpha-over
cannot reach the pulse's peak by any pacing.

And ptlogo_back2 / ptlogo_back2eff are ALPHA-OVER. They are frame-shaped, large,
dark and 94 %/87 % transparent -- every surface property the menu's ptframe* have
-- so 'frame-shaped and mostly transparent implies additive' is refuted on the
one screen that could test it.

THE MENU replicates draw for draw in two further sessions; the one-session
caveat is retired.

THE VERTEX CAP was 8 = two quads, so a batched draw reported its first two
elements and dropped the rest. Raised to 64. This is why ptframe4, pteff21,
pteff22 and pteff23 looked like elements the game never draws: EXTRAS' 24-index
additive draw holds six quads and the log printed two.

THE SWEEPS are on screen on the main menu in every captured frame, stepping
~0.03 NDC per frame in opposite directions with their vertex alpha ramping, at
different phases in two sessions. The leaf group runs on the menu. What that
does not say is how much they contribute.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
2026-08-31 06:42:05 +00:00

91 lines
7.1 KiB
Plaintext

# The TITLE's blend states, and the main menu replicated in two more sessions.
# 2026-08-31, second and third emulator runs. Extends
# docs/re/structures/ui-blend-mode-measured.md, whose reach was two screens and
# ONE session and explicitly not the title.
#
# The live title is TWO builds composited -- entry 4 draws the art, entry 2 the
# PRESS (A) plate -- so the size table is built from both.
#
# CONTROL: the two rotated sweep strips, measured independently at 1134 and 1303
# px in data/title-sweep-drawn-at-rest.txt, are reproduced on every screen below.
=== TITLE (GP_TITLE entries 4 + 2), 33 draws over 4 frames ===
draw prim idx blend state quad px (w x h) best name match
1 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase2.t32 @2x
2 13 8 0x01010101 ADDITIVE 883.2 x 1134.0 (no match, nearest ptlogo_back2eff3.t32 @2x off 795)
2 13 8 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase2.t32 @2x off 602)
3 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase2.t32 @2x
4 13 8 0x07010701 alpha-over(premul) 1132.8 x 280.8 ptlogo_back2eff.t32 @1x
4 13 8 0x07010701 alpha-over(premul) 1120.0 x 262.8 ptlogo_back2.t32 @1x
5 13 8 0x07010701 alpha-over(premul) 915.2 x 115.2 ptlogo1.t32 @1x
5 13 8 0x07010701 alpha-over(premul) 38.4 x 18.0 ptlogo_tm.t32 @1x
6 13 4 0x07010701 alpha-over(premul) 992.0 x 104.4 ptlogo2.t32 @1x
7 13 8 0x07010701 alpha-over(premul) 691.2 x 18.0 ptcopyright.t32 @1x
7 13 8 0x07010701 alpha-over(premul) 512.0 x 50.4 ptbtn00.t32 @1x
8 13 4 0x01010101 ADDITIVE 537.6 x 75.6 ptbtn00f.t32 @1x
12 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase2.t32 @2x
13 13 8 0x01010101 ADDITIVE 889.6 x 1134.0 (no match, nearest ptlogo_back2eff3.t32 @2x off 802)
13 13 8 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase2.t32 @2x off 602)
14 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase2.t32 @2x
15 13 8 0x07010701 alpha-over(premul) 1132.8 x 280.8 ptlogo_back2eff.t32 @1x
15 13 8 0x07010701 alpha-over(premul) 1120.0 x 262.8 ptlogo_back2.t32 @1x
16 13 8 0x07010701 alpha-over(premul) 915.2 x 115.2 ptlogo1.t32 @1x
16 13 8 0x07010701 alpha-over(premul) 38.4 x 18.0 ptlogo_tm.t32 @1x
17 13 4 0x07010701 alpha-over(premul) 992.0 x 104.4 ptlogo2.t32 @1x
18 13 8 0x07010701 alpha-over(premul) 691.2 x 18.0 ptcopyright.t32 @1x
18 13 8 0x07010701 alpha-over(premul) 512.0 x 50.4 ptbtn00.t32 @1x
19 13 4 0x01010101 ADDITIVE 537.6 x 75.6 ptbtn00f.t32 @1x
23 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase2.t32 @2x
24 13 8 0x01010101 ADDITIVE 883.2 x 1134.0 (no match, nearest ptlogo_back2eff3.t32 @2x off 795)
24 13 8 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase2.t32 @2x off 602)
25 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase2.t32 @2x
26 13 8 0x07010701 alpha-over(premul) 1132.8 x 280.8 ptlogo_back2eff.t32 @1x
26 13 8 0x07010701 alpha-over(premul) 1120.0 x 262.8 ptlogo_back2.t32 @1x
27 13 8 0x07010701 alpha-over(premul) 915.2 x 115.2 ptlogo1.t32 @1x
27 13 8 0x07010701 alpha-over(premul) 38.4 x 18.0 ptlogo_tm.t32 @1x
28 13 4 0x07010701 alpha-over(premul) 992.0 x 104.4 ptlogo2.t32 @1x
29 13 8 0x07010701 alpha-over(premul) 691.2 x 18.0 ptcopyright.t32 @1x
29 13 8 0x07010701 alpha-over(premul) 512.0 x 50.4 ptbtn00.t32 @1x
30 13 4 0x01010101 ADDITIVE 537.6 x 75.6 ptbtn00f.t32 @1x
CONTROL — the two rotated sweep strips measured independently at 1134 and 1303 px:
tall quads found: ['1134', '1303']
PASS
=== MAIN MENU, run 2 (a different session from ui-blend-mode-measured.txt) ===
draw prim idx blend state quad px (w x h) best name match
1 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x
2 13 8 0x01010101 ADDITIVE 883.2 x 1134.0 (no match, nearest pteff12.t32 @2x off 603)
2 13 8 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase.t32 @2x off 602)
3 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x
4 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x
5 13 4 0x01010101 ADDITIVE 819.2 x 720.0 (no match, nearest pteff12.t32 @2x off 125)
6 13 4 0x01010101 ADDITIVE 691.2 x 720.0 pteff12.t32 @2x
7 13 8 0x01010101 ADDITIVE 243.2 x 280.8 ptframe1.t32 @1x
7 13 8 0x01010101 ADDITIVE 256.0 x 309.6 ptframe2.t32 @1x
8 13 4 0x07010701 alpha-over(premul) 224.0 x 39.6 ptmsg.t32 @1x
9 13 24 0x07010701 alpha-over(premul) 44.8 x 46.8 ptbtneff01.t32 @1x
9 13 24 0x07010701 alpha-over(premul) 211.2 x 54.0 ptbtn01f.t32 @1x
13 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x
=== MAIN MENU, run 3 -- with the vertex dump cap raised from 8 to 64, so the
=== 24-index button batch shows all SIX of its quads instead of the first two
draw prim idx blend state quad px (w x h) best name match
1 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x
2 13 8 0x01010101 ADDITIVE 889.6 x 1134.0 (no match, nearest pteff12.t32 @2x off 610)
2 13 8 0x01010101 ADDITIVE 1299.2 x 1303.2 (no match, nearest ptbase.t32 @2x off 602)
3 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x
4 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x
5 13 4 0x01010101 ADDITIVE 819.2 x 720.0 (no match, nearest pteff12.t32 @2x off 125)
6 13 4 0x01010101 ADDITIVE 691.2 x 720.0 pteff12.t32 @2x
7 13 8 0x01010101 ADDITIVE 243.2 x 280.8 ptframe1.t32 @1x
7 13 8 0x01010101 ADDITIVE 256.0 x 309.6 ptframe2.t32 @1x
8 13 4 0x07010701 alpha-over(premul) 224.0 x 39.6 ptmsg.t32 @1x
9 13 24 0x07010701 alpha-over(premul) 64.0 x 61.2 (no match, nearest ptbtneff01.t32 @1x off 37)
9 13 24 0x07010701 alpha-over(premul) 211.2 x 54.0 ptbtn01f.t32 @1x
9 13 24 0x07010701 alpha-over(premul) 217.6 x 43.2 ptbtn02.t32 @1x
9 13 24 0x07010701 alpha-over(premul) 172.8 x 43.2 ptbtn03.t32 @1x
9 13 24 0x07010701 alpha-over(premul) 153.6 x 43.2 ptbtn05.t32 @1x
9 13 24 0x07010701 alpha-over(premul) 147.2 x 43.2 ptbtn05.t32 @1x
13 13 4 0x07010701 alpha-over(premul) 1280.0 x 720.0 ptbase.t32 @2x