re: the game never draws ptlogo_back2eff3 -- reproduced, with three explanations

ruled out

Last iteration I recorded eff3's absence as unexplained after withdrawing a bad
explanation for it. The previous capture survived on disk with 6907 frames, and
the attract loop returns to the title, so it contains a SECOND build-in at
frames 5942..7025. eff3 is absent there too.

Three alternative explanations tested and failed:

  * sampling phase -- eff3 is non-zero for t in (58,64), SIX units, against a
    2.23-unit step. A window wider than the step cannot be missed; frames 133
    (t=60.1) and 134 (t=62.3) sit inside it and draw eff2 and eff4 instead.
  * a draw the log cannot see -- exactly 2 draws per frame carry no geometry,
    on all 932 settled title frames, always the same full-screen-triangle
    shader, and present on frames where no wipe element is active.
  * a bad position guess -- dropping position entirely, ZERO quads anywhere on
    screen in either build-in window have a width within +-30 of 408. The width
    spectrum jumps straight from 262 to 748.

Draw counts across both entries: eff1 4, eff2 3, eff3 0, eff4 6, against ~5
expected each. The four are a right-aligned wipe (938+258, 788+408, 447+749,
64+1133, all ending at x~1196) -- a left-growing reveal in four widths, of
which the game draws three.

Why is NOT established: nothing in eff3's element record differs from its
neighbours. Classified measured, not decoded, and the port is told that
dropping eff3 means authoring a behaviour I cannot derive from the file.

Two further corrections, both to my own earlier claims:

  * "frame 107 is the title composited once" was an over-read. It binds NO
    texture and only 4 of its 27 draws log geometry. The second title entry
    has no such frame.
  * the two build-ins are NOT frame-identical. I had that from a coincidentally
    aligned pair of rows; aligned properly only 4 of 46 frames match. They are
    the same animation at different sampling phases -- which is precisely what
    makes the eff3 result robust.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsEPXWVaEpyfudtR6re1Pd
This commit is contained in:
sylph-decoder
2026-08-29 20:19:04 +00:00
parent 311bd16ad8
commit 69bc4cd1cd
3 changed files with 114 additions and 11 deletions

View File

@@ -43,14 +43,21 @@ rects, everything appears.
| frames | draws/frame | what |
|---|---|---|
| 2105 | 35 | splashes, then the intro movie |
| **107** | **27** | 🔴 the title **composited**, once |
| **107** | **27** | a transition frame — see the caveat below |
| 109167 | 6 → 14 | the build-in |
| 1681217 | 1011 | the settled title |
| 1218 | 45 | back to the attract loop |
The settled screen is 1011 draws that never name a sprite; the composite happens
in a single 27-draw frame. **A capture armed at the title therefore sees nothing**
which is why `ARM=early` exists.
The settled screen is 1011 draws that never name a sprite. **A capture armed at
the title therefore sees nothing** — which is why `ARM=early` exists.
⚠️ **What frame 107 is, is NOT established.** An earlier version of this page called
it "the title composited, once". It is a 27-draw spike sitting between the movie's
last frame (105) and the title's first (109), it **binds no texture at all**, and
only 4 of its 27 draws log any geometry. It marks the transition; calling it the
composite was an over-read. (The regression below independently puts t=0 at frame
106.1, which is consistent with the title's clock starting here — but that is a fit
landing nearby, not evidence about what the 27 draws do.)
## The flashes are real, and they are transient
@@ -72,12 +79,46 @@ a different element**, taking the composite spike (frame 107) as t=0:
other 155 frames sampled.** The two holders are present continuously from frame
134 onward. That is the decoded mechanism, observed.
🔴 **`eff3` was never drawn, and I do not know why. An earlier version of this
page said it was a sub-frame phase effect. That is WITHDRAWN.** `eff3`'s alpha is
non-zero for t ∈ (58, 64), and frames 133 and 134 sit at t = 60.0 and 62.2 —
squarely inside it, with `eff2` and `eff4` both drawn in those same frames. It
should have been submitted and was not. Whatever the reason, it is not sampling
phase.
## 🔴 The game does not draw `ptlogo_back2eff3`
**Reproduced over two title entries, 5 800 frames apart, in one run.** The disc
declares `ptlogo_back2eff3` — alpha 0 at t58, **255 at t6062**, 0 at t64, at
(788, 117), sprite 408×203 — and the running game never submits it.
The wipe family is right-aligned: `eff2` 938+258, `eff3` 788+408, `eff4` 447+749,
`eff5` 64+1133 all end at x≈1196. It is a left-growing wipe in four widths, and
**the game draws three of them.**
| element | width | draws across both build-ins | expected at ~2.23 units/frame |
|---|---|---|---|
| `eff1` | 167 | 4 | ~5 |
| `eff2` | 258 | 3 | ~5 |
| **`eff3`** | **408** | **0** | **~5** |
| `eff4` | 749 | 6 | ~5 |
⚠️ An earlier version of this page called this a **sub-frame phase effect**. That
was wrong and is withdrawn. Three explanations were tested and all fail:
* **Sampling phase.** `eff3`'s non-zero window is t ∈ (58, 64) — **six units**,
against a step of **2.23 units per presented frame**. A window wider than the
step *cannot* be missed: at least two frames must land inside it, and frames 133
(t = 60.1) and 134 (t = 62.3) do. Both draw `eff2` and `eff4`; neither draws
`eff3`.
* **A draw the log cannot see.** Exactly **2** draws per frame carry no geometry,
on all 932 settled title frames — always the same full-screen-triangle shader
(`prim=8 indices=3`, `vs=0x72CBCAA6A7984111`), present on frames where no wipe
element is active at all. `eff3` cannot be one of them.
* **A bad position guess on my side.** Dropping the position entirely and
searching *every* quad submitted anywhere on screen during both build-in
windows: **zero** have a width within ±30 of 408. The width spectrum jumps
straight from 262 to 748.
**Why the game skips it is not established.** Nothing in its element record
distinguishes it — same kind (`0x0`), same keyframe shape, same `u4`/`u8`, same
scale, as `eff2` and `eff4` either side of it.
🔴 **For the port: you draw `eff3` at t=6062 and the console does not.** That is
one extra frame of wipe, at the widest-but-one step. It is small, and it is real.
🔴 **A second thing this page previously claimed, also withdrawn: that a port
drawing all five flashes shows "more sweep than the console".** There is no
@@ -130,6 +171,20 @@ decoded direction.
detected at the first frame with a non-zero alpha, and the decoded curve leaves
zero part-way through a frame.
## Two entries, different phases
The attract loop returns to the title, so one capture contains **two** build-ins
(frames 1191220 and 59427025). They are the same animation and are **not**
frame-aligned: aligning them on `eff1`'s first frame, only **4 of 46** frames have
an identical quad list, and the draw-count sequences drift by a frame partway
through.
That is what makes the `eff3` result robust rather than weaker. Two independent
samplings of the same animation, at different phases, both miss it.
⚠️ Only the **first** entry has the 27-draw frame; the second goes straight from
36 draws into the build-in. Whatever frame 107 is, the re-entry does not repeat it.
## Reach and what is not settled
⚠️ **One run, one machine.** ~2.23 units per presented frame is *this run's*