re: the swoosh is solved -- the game draws it as rotated quads and our

blit cannot

Ran the route I corrected last iteration, and it answered the question I
had classified as undecodable.

First the ninth candidate died: every vertex colour in the whole capture
is <alpha>FFFFFF, white RGB with only alpha varying. The game passes no
colour, so that hypothesis is refuted from the running game rather than
from the file.

Then the geometry gave it away. Draw 2 submits TWO PARALLELOGRAMS,
neither axis-aligned -- edges (0.54,-0.56) and (0.44,0.79), roughly 45
and 61 degrees, both extending to y=+/-1.81 in NDC, well off screen.
That is the diagonal Z stroke. And ui_layout::blit walks rows and columns
of an axis-aligned rectangle; it has no rotation at all. So we blit the
sprite upright where the game draws it skewed, which is exactly the
signature I measured: right on average at +1.83, right in position with
the correlation peaking at zero shift, wrong in structure at 0.70.

Nine candidates, and the answer was never going to be a field, because
the difference is not in the sprite -- it is in how the quad is built.

Two things left open and written as such. The decoded keyframe carries
fade, scale, tint, x, y and time and NO rotation, so where the rotation
comes from is not decoded. And the pink-versus-white reading I have been
carrying was a visual comparison of two differently-shaped renderings; it
should be re-checked after geometry rather than treated as a separate
defect.
This commit is contained in:
Sylpheed RE agent
2026-08-28 22:13:50 +00:00
parent 6930d301c1
commit 0ecb20bdbc
4 changed files with 111 additions and 1 deletions

View File

@@ -109,6 +109,20 @@ authored version can be deleted.
test is to blend bit-`0x02` sprites additively and re-correlate the title
against the capture. Note `ptlogo_back2eff` is `0x8830` despite its name, so
this is a field and not a naming pattern. ❔ Not diagnosed.
✅ **SOLVED 2026-08-28 by draw capture — it is the GEOMETRY.** The game submits
the swoosh as **two rotated parallelograms** (edges `(0.54,−0.56)` and
`(0.44,0.79)`, ~45° and ~61°, extending to `y=±1.81` NDC).
`ui_layout::blit` draws **axis-aligned rectangles only**, so it blits the sprite
upright — right on average, right in position, wrong in shape, which is the
measured signature exactly. **A port that blits upright rects will have the same
defect.**
🔴 Vertex colour is refuted with it: every colour in the capture is
`<alpha>FFFFFF`, white RGB.
❔ **Format gap:** the decoded keyframe has `fade`/`scale`/`tint`/`x`/`y`/`time`
and **no rotation**, so where the rotation comes from is not decoded.
⚠️ The earlier "pink versus white" reading compared two differently-shaped
renderings and should be re-checked after geometry, not carried as a separate
defect.
❔ **Classified: undecodable from the disc, with reach.** Seven candidates
eliminated — pivot (inert at scale 100 *and* no measured displacement), `fade`,
`tint`, texture colour, additive blend via `+0x04` bit `0x02`, and