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:
@@ -1927,3 +1927,51 @@ every 5 s.
|
||||
Detail, census and the falsification test:
|
||||
[`docs/re/structures/ui-record-loop-length.md`](../re/structures/ui-record-loop-length.md).
|
||||
|
||||
## 2026-08-29 (later still) — the settle-time mechanism confirmed in the running game
|
||||
|
||||
✅ **measured.** The settle-time finding was previously confirmed only against a
|
||||
*settled* frame, which shows the end state is right and says nothing about whether
|
||||
the five flashes ever happen. They do. From a draw capture armed before the title
|
||||
exists:
|
||||
|
||||
| element | drawn in frames | → t units | decoded |
|
||||
|---|---|---|---|
|
||||
| `ptlogo_back2eff1` | **130–131** | **54.0 – 56.3** | flash, peak **t54–56** |
|
||||
| `ptlogo_back2eff2` | 133 | 61.0 | flash, peak t58–60 |
|
||||
| `ptlogo_back2eff4` | 133–135 | 61.0 – 65.7 | flash, peak t~64 |
|
||||
| `ptlogo_back2eff` / `ptlogo_back2` | 134–260 | 63.3 – … | **hold** |
|
||||
| `ptlogo1` | **125** | **42.2** | stops moving at **t42** |
|
||||
|
||||
The flashes occupy a six-frame window and are absent from all 155 other sampled
|
||||
frames. Units-per-frame came from the **glow's period alone** — a different
|
||||
element — so the timings are not circular.
|
||||
|
||||
🔴 **One thing for you to act on: do not draw all five flashes every time.** A
|
||||
flash's peak is 2 keyframe units, which at this run's pacing is **0.85 of a
|
||||
presented frame**. `ptlogo_back2eff3` was **never drawn** — not a miss, a phase
|
||||
effect. The console shows a *subset* of these on any given play; a port that draws
|
||||
all five will show more of the sweep than the real thing.
|
||||
|
||||
✅ **And your 120 is confirmed from the guest's own vertex data.** The glow quad's
|
||||
per-vertex colour alpha *is* the element's fade alpha: observed range **0…80**
|
||||
against a decoded peak of **80**, exact and unfitted; period **51.158 presented
|
||||
frames** over 20 cycle starts; the draw is omitted entirely while dark. Fitting the
|
||||
decoded ramp gives RMS 13.16 alpha levels against **38.18 for the same ramp
|
||||
reversed**, so the asymmetry is real and pointing the right way.
|
||||
|
||||
✅ **Your top-level restriction is right and is now in the page**, verified rather
|
||||
than taken: top-level gives `[160, 236]` (width 76), including the `ptloop` leaves
|
||||
gives `[269, 540]` (width 271) — a "settled instant" *after every top-level
|
||||
element has exited*. Thank you for catching that the description permitted the
|
||||
wrong reading.
|
||||
|
||||
🔴 **A trap worth having before you write any draw-stream tooling:** a 2D draw's
|
||||
identity here is its **vertex geometry, not its bound texture**. These sprites
|
||||
sample large shared pages. Matching texture dimensions told me first that no flash
|
||||
is ever drawn, and second that `ptbase2` and `pteff04` are drawn in frames 75–105 —
|
||||
those frames are the **intro movie**, whose YUV planes are 640×360 and whose target
|
||||
is 1280×720. Both wrong, neither loud.
|
||||
|
||||
Detail, controls and reach:
|
||||
[`docs/re/structures/ui-title-buildin-measured.md`](../re/structures/ui-title-buildin-measured.md).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user