Files
Sylpheed/docs/re/data/fade-three-transitions.txt
sylph-decoder d9accf9403 re: (B) from EXTRAS DOES go black -- "(B) has no black interval" refuted
sylpheed-port's BLOCKED.md ask #1. They declined to suppress their uniform
black_hold on the cancel path because (B) menu->title was one transition. The
test says they were right.

EXTRAS -> main menu, also via (B): the outgoing quad ramps frames 34-38 (5
frames, exactly build 6's declared 10 units), then frames 39 AND 40 are
completely empty -- 3 draws, zero textured, a harder black than either earlier
capture -- then the incoming menu's quad decays 41-45. So (B) does not imply a
cross-fade; menu->title is the outlier of three, and the generalisation I was one
step from publishing is false.

The screen was verified, not assumed. screen_id.py cannot separate EXTRAS from
the main menu, so which_title_screen.py checked the armed frame: extras 18.58 vs
main_menu 29.85, margin 11.27, inside the 9.9-11.7 band its control sets on four
known captures.

Three transitions now agree on one thing and disagree on another:

  outgoing ramp = the declared final ramp, THREE FOR THREE, against three
  different declared values (10u/5f, 8u/4f, 10u/5f), and exactly linear where
  nothing overlaps it. Authorable from the file.

  black gap = none / 3 frames / 2 frames. Not a per-button property, not a
  per-direction property, not a constant. black_hold_units should not be
  authored as one.

Build 5's incoming ramp is confirmed at 12 units by its RATE rather than its
count: the count came out 5 against a predicted 6 in both runs -- reproducible,
so not noise -- but capture 3's steps are -21, -42, -43, -42, i.e. 255/6 per
frame after a half-step start. Capture 2's decay does not fit that and is
unexplained.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
2026-08-30 14:15:58 +00:00

89 lines
5.5 KiB
Plaintext

# THREE screen changes, per frame, from the running game. 2026-08-30.
# tools/re-capture/fade_decompose.sh (WHERE=menu | title | extras)
#
# Declared, per build (corrected keyframe association):
# build 4 title pteff00 [0:a255 16:a0 261:a0 269:a255] open 16u=8f close 8u=4f
# build 5 menu pteff00 [0:a255 12:a0 70:a0 80:a255] open 12u=6f close 10u=5f
# build 6 EXTRAS pteff00 [0:a255 12:a0 64:a0 74:a255] open 12u=6f close 10u=5f
#
# Capture 3's screen identity was checked, not assumed: which_title_screen.py
# on the armed frame gives extras rmse=18.58 vs main_menu 29.85, margin 11.27,
# inside the 9.9-11.7 band its control establishes on four known captures.
############ CAPTURE 1 -- menu -> title, via (B) ############
frame untextured full-screen textured (distinct) draws tex
28 [64] [142, 146, 192, 255] 12 10
29 [64] [143, 146, 192, 255] 12 10
30 [64] [143, 147, 192, 255] 12 10
31 [64] [143, 147, 192, 255] 12 10
32 [64] [144, 148, 192, 255] 12 10
34 [64, 255, 64] [144, 148, 169, 191, 254, 255] 15 12
35 [64, 223, 64] [84, 143, 145, 149, 191, 255] 15 12
36 [64, 207, 64] [42, 119, 145, 149, 159, 255] 15 12
37 [64, 175, 64] [71, 95, 145, 149, 191, 255] 14 11
39 [64, 95, 64] [146, 150, 255] 11 8
40 [64, 31, 64, 102] [146, 151, 255] 12 6
41 [64, 15, 64, 127] [146, 151, 255] 12 6
43 [64, 64, 255] [147, 152, 255] 12 6
44 [64, 64, 255] [147, 152, 255] 12 6
45 [64, 64, 255] [148, 152, 255] 12 6
46 [64] [255] 6 2
47 [64] [32, 255] 8 6
49 [64] [32, 96, 255] 8 6
50 [64] [48, 128, 255] 8 6
############ CAPTURE 2 -- title -> menu, via (A) ############
frame untextured full-screen textured (distinct) draws tex
55 [] [204, 221, 255] 10 9
57 [] [204, 221, 255] 10 9
58 [] [84, 135, 147, 254, 255] 10 9
59 [] [42, 118, 128, 212, 254, 255] 10 9
60 [] [42, 50, 55, 84, 255] 9 8
61 [] [16, 18, 255] 8 7
62 [] [235, 255] 7 6
63 [] [196, 255] 7 6
64 [] [156, 255] 7 6
65 [] [117, 255] 7 6
66 [] [78, 255] 7 6
67 [63] [19, 255] 8 4
68 [127] [255] 6 2
69 [191] [255] 6 2
70 [255] [255] 6 2
71 [255] [255] 6 2
72 [255] [255] 6 2
73 [64, 255] [255] 7 3
75 [64, 127] [2, 252, 255] 7 3
76 [64, 84] [3, 251, 255] 7 3
77 [64, 63] [3, 251, 255] 7 3
78 [64] [5, 249, 255] 7 3
79 [64] [5, 249, 255] 7 3
80 [64] [7, 32, 247, 255] 8 6
81 [64] [8, 96, 246, 255] 8 6
82 [64] [8, 160, 246, 255] 8 6
############ CAPTURE 3 -- EXTRAS -> menu, via (B) ############
frame untextured full-screen textured (distinct) draws tex
28 [64] [128, 171, 181, 255] 11 9
29 [64] [128, 172, 182, 255] 11 9
30 [64] [111, 127, 172, 182, 185, 255] 11 9
31 [64] [42, 79, 139, 172, 183, 223, 255] 11 9
32 [64] [31, 69, 127, 173, 183, 255] 10 8
33 [64] [31, 173, 184, 255] 9 7
34 [64, 51] [174, 184, 255] 8 4
35 [64, 102] [174, 184, 255] 8 4
36 [64, 178] [174, 185, 255] 8 4
37 [64, 229] [174, 185, 255] 8 4
38 [64, 255] [175, 186, 255] 8 4
39 [] [] 3 0
40 [] [] 3 0
41 [64, 169] [1, 253, 255] 7 3
42 [64, 148] [2, 252, 255] 7 3
43 [64, 106] [2, 252, 255] 7 3
44 [64, 63] [3, 251, 255] 7 3
45 [64, 21] [4, 250, 255] 7 3
46 [64] [5, 249, 255] 7 3
47 [64] [6, 248, 255] 7 3
48 [64] [7, 32, 247, 255] 8 6
49 [64] [8, 96, 246, 255] 8 6
50 [64] [9, 192, 245, 255] 8 6