re(ui): settle 8AX vs ptbase statically -- the game draws the full-res one
I had parked this as "needs a per-draw capture recording texture base addresses". It did not. 8AX (1280x720) and ptbase (640x360 at 200%) are the SAME artwork at two resolutions, which is exactly why comparing either against a capture is inconclusive -- and why comparing their DIFFERENCE is not. Compute 8AX - upscale(ptbase), the detail only 8AX has, and ask whether the capture contains it. Both candidates are first mapped into the capture's tone domain with the measured gamma; without that the residual is dominated by the tone difference and the test is blind. main menu corr +0.0475 controls +0.0032 shift, -0.0075 flip 68% of ceiling title corr +0.0634 controls +0.0095 shift, +0.0086 flip 68% of ceiling Two independent screens, both at 68% of the theoretical ceiling (sd of the 8AX-only detail over sd of the capture residual), 7-15x their matched controls. The controls preserve spatial correlation and destroy only alignment, so they are what "no signal" looks like. So the recommendation changes: resolve the name and draw 8AX at 1:1. Upscaling ptbase 2x is wrong, not merely softer. Still do not draw both -- an opaque layer over an identical one costs fill and hides later changes, and ptbase's element is the one carrying the keyframes, so a consumer needs its timing with 8AX's pixels. Also recorded and withdrawn: a cruder pixel-pair test gave 0.00-0.72 for upscales, 0.98 native and 1.01 for the capture -- apparently decisive. Additive noise raises both terms of that ratio equally and drives any value toward 1; fitting a noise term, both "native + noise" and "bilinear + noise" reproduce the observed numbers. The conclusion is right, that test does not establish it, and it is in REFUTED because the number looks conclusive and is not. Not shown: whether ptbase is also drawn underneath. 8AX is ~86% opaque and carries the same art, so it would hide it either way.
This commit is contained in:
@@ -469,3 +469,16 @@ neighbourhood, not just the line.
|
||||
already retracted it and located three cues in `Static.slb` that decode to PCM.
|
||||
The retraction never reached the row the port agent reads. Handoff row fixed;
|
||||
`tools/re-capture/handoff_lint.py` now checks for this class.
|
||||
* "which of `8AX` and `ptbase` the game draws needs a per-draw capture recording
|
||||
texture base addresses" → **mine, and refuted — it is settled statically.** The
|
||||
two carry the same art at two resolutions, so neither compares usefully against
|
||||
a capture; their *difference* does. Correlating the capture's
|
||||
departure-from-upscale against the 8AX-only detail gives +0.0475 (main menu)
|
||||
and +0.0634 (title), both 68 % of ceiling against matched controls of ≤0.0095.
|
||||
The game draws the full-res `8AX`.
|
||||
[`ui-8ax-fullres-background.md`](structures/ui-8ax-fullres-background.md)
|
||||
* "the pixel-pair ratio shows the capture is native, not an upscale" → **mine,
|
||||
and withdrawn as evidence.** Upscales give 0.00–0.72, native 0.98, capture 1.01
|
||||
— but additive noise pushes any such ratio toward 1, and both "native + noise"
|
||||
and "bilinear upscale + noise" fit the observed values. The conclusion happens
|
||||
to be right; this test does not establish it.
|
||||
|
||||
Reference in New Issue
Block a user