Files
Sylpheed/docs/re/data/blend-bit-prediction-result.txt
sylph-decoder bac8e17a7f re: the blend mode IS on the disc -- T8aD +0x04 bit 0x02, DECODED
Reverses two of my own pages. t32-blend-mode-not-on-disc.md said the mode is not
on the disc; ui-blend-mode-measured.md classified it measured and told the port
that which field selects it was unknown. Both were honest and neither is current.

Bit 0x02 of +0x04 set means the game draws that sprite ADDITIVE
(RB_BLENDCONTROL0 = 0x01010101); clear means premultiplied alpha-over.

Fit: 35 elements over three screens, 16 set/additive and 19 clear/alpha-over,
zero errors, every label read out of the guest command stream rather than off a
render.

Control: of every bit of the first twelve header words, exactly one separates
those 35 without error. Nothing ties with it -- which is precisely what the
+0x08 = 0x8050 candidate failed.

Within-pair: ptbtn00 0x0110 alpha-over against ptbtn00f 0x0112 additive, same
screen, same bundle, adjacent draws, one bit apart. And other f variants are
bit-clear and alpha-over, so it is not 'focused variants are additive'.

Out of sample: a prediction committed at 088df91, before its capture, on a
different archive -- GP_OPTIONS entry 19, 3 additive of 16, falsified if any
other element drew additive. The game drew exactly po_menu_eff01/02/03 additive
and nothing else.

This revives a claim REFUTED.md killed. The refutation said blending those
sprites additively worsens every measure against the capture -- a claim about
our renderer, made while that renderer had a stale keyframe association, no leaf
geometry and no rotation. Recorded as a revival with its evidence;
check_refuted.py passes with 0 unmarked assertions.

Two other readings of the same bit stay refuted and are explicitly not revived:
'the name contains eff' and 'premultiplied storage'. Those were the bit's
meaning; this is its effect.

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

52 lines
3.7 KiB
Plaintext

# THE PREDICTION HELD. GP_OPTIONS, out of sample, a different archive.
# 2026-08-31.
#
# Committed before this capture, in data/blend-bit-prediction-gp-options.txt:
# "FALSIFIED IF: po_menu_eff01/02/03 draw alpha-over, or any other GP_OPTIONS
# element draws additive."
#
# GP_OPTIONS entry 19 -- the OPTIONS menu, reached from the main menu by (A) --
# declares 16 sprites: 3 predicted ADDITIVE, 13 predicted alpha-over.
#
# MEASURED: 39 draws over 3 frames. Exactly THREE additive quads per frame, and
# they are po_menu_eff01, po_menu_eff02 and po_menu_eff03. Every other draw is
# alpha-over. Zero errors.
=== GP_OPTIONS entry 19, the OPTIONS menu ===
draw prim idx blend state quad px (w x h) best name match
1 13 20 0x07010701 alpha-over(premul) 640.0 x 720.0 (no match, nearest po_menu_eff01.t32 [declared] off 2.5 quanta)
1 13 20 0x07010701 alpha-over(premul) 320.0 x 360.0 po_menu_eff01.t32 [texture@2x]
1 13 20 0x07010701 alpha-over(premul) 320.0 x 360.0 po_menu_eff01.t32 [texture@2x]
1 13 20 0x07010701 alpha-over(premul) 320.0 x 360.0 po_menu_eff01.t32 [texture@2x]
1 13 20 0x07010701 alpha-over(premul) 320.0 x 360.0 po_menu_eff01.t32 [texture@2x]
2 13 8 0x01010101 ADDITIVE 627.2 x 720.0 po_menu_eff01.t32 [declared]
2 13 8 0x01010101 ADDITIVE 486.4 x 511.2 po_menu_eff02.t32 [texture@2x]
3 13 4 0x07010701 alpha-over(premul) 345.6 x 39.6 po_menu_msg.t32 [texture]
4 13 4 0x01010101 ADDITIVE 358.4 x 388.8 po_menu_eff03.t32 [texture]
5 13 4 0x07010701 alpha-over(premul) 57.6 x 57.6 (no match, nearest po_menu_btneff01.t32 [texture] off 5.7 quanta)
6 13 8 0x07010701 alpha-over(premul) 256.0 x 54.0 po_menu_btn1f.t32 [texture]
6 13 8 0x07010701 alpha-over(premul) 281.6 x 43.2 po_menu_btn2.t32 [texture]
7 13 8 0x07010701 alpha-over(premul) 256.0 x 43.2 po_menu_btn3.t32 [texture]
7 13 8 0x07010701 alpha-over(premul) 268.8 x 43.2 po_menu_btn2b.t32 [texture]
8 13 4 0x07010701 alpha-over(premul) 102.4 x 43.2 po_menu_btn5.t32 [texture]
9 13 12 0x07010701 alpha-over(premul) 128.0 x 3.6 (no match, nearest po_menu_btn5.t32 [texture] off 14.9 quanta)
9 13 12 0x07010701 alpha-over(premul) 102.4 x 7.2 (no match, nearest po_menu_btn5.t32 [texture] off 10.0 quanta)
9 13 12 0x07010701 alpha-over(premul) 102.4 x 3.6 (no match, nearest po_menu_btn5.t32 [texture] off 11.0 quanta)
10 13 8 0x07010701 alpha-over(premul) 441.6 x 14.4 (no match, nearest po_menu_msg.t32 [declared] off 16.8 quanta)
10 13 8 0x07010701 alpha-over(premul) 217.6 x 68.4 (no match, nearest po_menu_btn5.t32 [texture@2x] off 6.7 quanta)
14 13 20 0x07010701 alpha-over(premul) 640.0 x 720.0 (no match, nearest po_menu_eff01.t32 [declared] off 2.5 quanta)
=== blend histogram over the whole capture ===
3 blend=0x00010001
6 blend=0x01010101
30 blend=0x07010701
⚠️ WHAT IS AND IS NOT IDENTIFIED HERE
* the three ADDITIVE quads are named, and they are the three predicted ones.
* the alpha-over side is a COUNT, not 13 individual identifications: draw 1 is
a 20-index batch of tiled background quads at 320x360, a size several
elements share, so the matcher's label on those rows is a candidate. What is
measured is that no draw on the screen carries 0x01010101 except the three.
* that asymmetry is the right way round for a falsification: the prediction
would have died if a fourth additive draw existed, and none does.