The port measures four elements as rendering too dark against the capture -- ptframe1/2 on the main menu, ptframe3/4 on EXTRAS -- with the shortfall correlating +0.77/+0.80 with the BACKGROUND and only +0.24 with the element's own contribution. That is the signature of a blend that scales what is already there. It asked whether the disc selects one. Three examples, one negative, wider than the one I gave last iteration: * frame_alpha_census -- every T8aD sprite on builds 5 and 6 by alpha. It REFUTES the port's own sharpener: 'neither frame has a single fully-opaque pixel, against ptbase's 99.1 %' is true, and pteff10 (max alpha 130, 100 % partial, no opaque pixel) is measured by the port as NEARLY EXACT. So being wholly semi-transparent is not what makes the frames special. * frame_vs_accurate_words -- all 12 T8aD header words for both screens, plus a per-BIT sweep of +0x04 and +0x08. NO word and NO bit puts the four frames on one side and pteff10 on the other. It also kills my own remaining candidate a second time: +0x08 = 0x8050 is shared with pteff21/22/23 on EXTRAS. * frame_keyframe_unknowns -- the keyframe record's fade, tint, rotation and its two unexplained signed words. unknown_4 and unknown_8 are ZERO on every keyframe of both screens, so they carry nothing here; no frame takes a value of any field that another element does not. Reach: the 60-byte declaration entry, the T8aD header word-wise and bit-wise, and the keyframe record. Four elements, two screens. Not the executable's draw path, which is the next commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
64 lines
3.8 KiB
Plaintext
64 lines
3.8 KiB
Plaintext
# Does ANY per-element field on the disc separate the four too-dark frames from
|
|
# the elements the port renders accurately, on the same two screens?
|
|
# cargo run -p sylpheed-formats --example frame_vs_accurate_words (SYLPHEED_DISC=/disc)
|
|
# and --example frame_keyframe_unknowns
|
|
|
|
sprite build +0x04 +0x08 +0x1C +0x2C
|
|
ptbase.t32 5 00008830 00008000 00000006 00000044
|
|
ptbtn01.t32 5 00008130 00008110 00000001 00000030
|
|
ptbtn01f.t32 5 00008130 00008112 00000001 00000030
|
|
ptbtn02.t32 5 00008130 00008110 00000001 00000030
|
|
ptbtn02b.t32 5 00000810 00008110 00000001 00000030
|
|
ptbtn02f.t32 5 00008130 00008112 00000001 00000030
|
|
ptbtn03.t32 5 00008130 00008110 00000001 00000030
|
|
ptbtn03f.t32 5 00008130 00008112 00000001 00000030
|
|
ptbtn04.t32 5 00008130 00008110 00000001 00000030
|
|
ptbtn04f.t32 5 00008130 00008112 00000001 00000030
|
|
ptbtn05.t32 5 00008130 00008110 00000001 00000030
|
|
ptbtn05f.t32 5 00008130 00008112 00000001 00000030
|
|
ptbtneff01.t32 5 00008130 00008112 00000001 00000030
|
|
pteff03.t32 5 00008832 00008010 00000002 00000034
|
|
pteff03a.t32 5 00008832 00008010 00000002 00000034
|
|
pteff05.t32 5 00008830 00008020 0000000F 00000068
|
|
pteff10.t32 5 00008832 00008040 00000002 00000034
|
|
pteff12.t32 5 00008832 00008041 00000004 0000003C
|
|
ptframe1.t32 5 00008832 00008050 00000002 00000034 <- TOO DARK
|
|
ptframe2.t32 5 00008832 00008050 00000004 0000003C <- TOO DARK
|
|
ptmsg.t32 5 00008830 00008100 00000001 00000030
|
|
ptbase.t32 6 00008830 00008000 00000006 00000044
|
|
ptbtn11.t32 6 00008130 00008110 00000001 00000030
|
|
ptbtn11f.t32 6 00008130 00008112 00000002 00000034
|
|
ptbtn12.t32 6 00008130 00008110 00000001 00000030
|
|
ptbtn12f.t32 6 00008130 00008112 00000002 00000034
|
|
ptbtn13.t32 6 00008130 00008110 00000001 00000030
|
|
ptbtn13f.t32 6 00008130 00008112 00000001 00000030
|
|
ptbtneff02.t32 6 00008130 00008112 00000001 00000030
|
|
pteff03.t32 6 00008832 00008010 00000002 00000034
|
|
pteff03a.t32 6 00008832 00008010 00000002 00000034
|
|
pteff05.t32 6 00008830 00008020 0000000F 00000068
|
|
pteff10.t32 6 00008832 00008040 00000002 00000034
|
|
pteff20.t32 6 00008832 00008041 00000004 0000003C
|
|
pteff21.t32 6 00008832 00008050 00000002 00000034
|
|
pteff22.t32 6 00008832 00008050 00000002 00000034
|
|
pteff23.t32 6 00008832 00008050 00000002 00000034
|
|
ptframe3.t32 6 00008832 00008050 00000001 00000030 <- TOO DARK
|
|
ptframe4.t32 6 00008832 00008050 00000001 00000030 <- TOO DARK
|
|
ptmsg2.t32 6 00008830 00008100 00000002 00000034
|
|
pttitle.t32 6 00008830 00008100 00000001 00000030
|
|
|
|
words where every ptframe* agrees and NO other sprite takes that value:
|
|
NONE — no header word separates the four frames from the rest
|
|
|
|
per-bit check on +0x04 and +0x08 (a bit that is 1 on all frames, 0 on all others):
|
|
NONE
|
|
|
|
=== keyframe record: fade / tint / rotation / the two unexplained words ===
|
|
pteff00.prm 6 3 0 0 FF000000 FFFFFFFF 0
|
|
|
|
frame keyframes: 28 other keyframes: 116
|
|
unknown_4 frames take {0} others take 1 distinct values; frame-only values: []
|
|
unknown_8 frames take {0} others take 1 distinct values; frame-only values: []
|
|
fade frames take {16777215, 2164260863, 3238002687, 4294967295} others take 7 distinct values; frame-only values: []
|
|
tint frames take {4294967295} others take 1 distinct values; frame-only values: []
|
|
rotation frames take {0} others take 1 distinct values; frame-only values: []
|