re: the title's build-in measured in the guest's draw stream -- the flashes are real
The settle-time decode was confirmed only against a SETTLED frame, which shows the end state is right and says nothing about whether the five flashes ever happen. This runs the oracle: a draw capture armed before the title exists, so the window contains the frames in which the screen is built. The flashes fire in a six-frame window and are absent from all 155 other sampled frames. `ptlogo_back2eff1` is drawn in exactly two frames at t = 54.0 against a decoded peak of t54-56; `ptlogo1` first appears at t = 42.2 against a decoded t42. Units-per-frame was taken from the GLOW's period alone, a different element, so the timings are not circular. The two holders are continuous from frame 134. The plate glow's quad carries a per-vertex colour whose alpha IS the element's fade alpha, so the ramp is read straight out of the guest: observed range 0..80 against a decoded peak of 80, exact and unfitted; period 51.158 presented frames over 20 cycle starts. Fitting the decoded ramp gives RMS 13.16 alpha levels against 38.18 for the same ramp REVERSED -- if the shape carried no information those would be equal, so the asymmetry is real and correctly directed. Further controls: symmetric triangle 15.73, flat 31.13. `ptlogo_back2eff3` was never drawn, and that is expected rather than a miss: a 2-unit flash peak is 0.85 of a presented frame, so catching one is a matter of phase. A port drawing all five every time shows more sweep than the console. METHOD.md gains the trap this cost: a 2D draw's identity is its vertex geometry, not its bound texture. These sprites sample shared pages, and matching texture dimensions produced a false negative (no flash is ever drawn) and a false positive (the intro movie's 640x360 YUV planes read as `ptbase2`) in the same pass. Also records the top-level restriction on the settle window, which the port raised and which is verified here: top-level [160,236] width 76, including the `ptloop` leaves [269,540] width 271 -- an instant past the end of every top-level element's timeline. Evidence committed as a derived per-frame series, not the 7 MB raw log. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd
This commit is contained in:
@@ -73,6 +73,23 @@ This is a genuine test rather than a fit: the ring and the plate are different
|
||||
elements in different bundles, measured in separate runs, and the only thing tying
|
||||
them together is that both declare a 120-unit cycle.
|
||||
|
||||
## ✅ Measured in the running game
|
||||
|
||||
The glow's quad carries a per-vertex colour whose **alpha is the element's fade
|
||||
alpha**, so the ramp can be read straight out of the guest's draw stream
|
||||
([`ui-title-buildin-measured.md`](ui-title-buildin-measured.md)):
|
||||
|
||||
* **observed alpha range 0 … 80, against a decoded peak of 80** — exact, unfitted;
|
||||
* **period 51.158 presented frames** over 20 consecutive cycle starts;
|
||||
* the draw is **omitted entirely** while the glow is dark, which is the 11↔10
|
||||
draw alternation visible in the settled title;
|
||||
* fitting the decoded ramp gives RMS 13.16 alpha levels against **38.18 for the
|
||||
same ramp reversed** — the asymmetry is real and in the decoded direction.
|
||||
|
||||
This does not re-measure the period in seconds (the run's frame rate was not
|
||||
recorded), so the falsification below stands on the corpus's wall-clock timings
|
||||
rather than on this run.
|
||||
|
||||
## What this replaces
|
||||
|
||||
* 🔴 **105 is wrong** and the port should stop shipping it. The number is **120**,
|
||||
|
||||
Reference in New Issue
Block a user