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 bbd85e9, 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
52 lines
3.7 KiB
Plaintext
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.
|