re: the port was still being told SE audio is undecodable -- it is not
A resolve-check on HANDOFF's own rows. Q8 read "SE audio is undecodable
from the disc -- no XACT container exists anywhere". menu-audio-cues.md
retracted exactly that ("### Retracting 'cannot be extracted'") and
locates three cues in Static.slb that decode to PCM: d-pad move 0x1ec0
(4 packets), (B) back 0x0ec0 (2), (A) confirm 0x5d6c0 (6), all mono
48 kHz. The retraction landed in docs/re/ and the page the port reads
kept the superseded text -- the fourth time in this corpus.
Writing the rule down has not worked, so there is a tool now.
handoff_lint.py flags every HANDOFF line making a strong negative claim
that links a doc containing retraction language. First run: found the Q8
row, plus one benign false positive (Q3 links a doc whose retraction is
about a sprite count, not about the tie-break -- checked, and HANDOFF
repeats none of the retracted figures). The lint also caught its own bug
first: it reported existing docs as missing because it joined a guessed
repo root, so it now resolves links relative to the file as markdown does.
Separately, EXTRAS's paint-order risk narrows twice more. Of its 15 tied
pairs only 2 overlap, and of those, ptloop01 x ptloop02 are loop*
animations compose skips by default -- so exactly ONE tie can be drawn:
ptframe3 x ptframe4, overlapping 102x132 px. Against live-extras.png that
contested region correlates +0.9622, better than the whole frame (+0.9440)
and inside the range of regions where order cannot matter (+0.8502 /
+0.9903). Consistent with our order, not proof: correlation cannot see a
swap between locally similar art.
15 -> 2 -> 1 -> consistent is now the whole paint-order risk on the five
screens, and HANDOFF says so.
This commit is contained in:
@@ -126,3 +126,44 @@ So Q3 resolves as: the layer key is ✅ **decoded** and orders 4 of the 5 measur
|
||||
bundles exactly; the **tie-break within a key is ❔ undecodable**, and a consumer
|
||||
must either use a measured order or accept declaration index as an arbitrary
|
||||
stand-in.
|
||||
|
||||
---
|
||||
|
||||
## ✅ `EXTRAS`'s exposure narrows to ONE pair — and the capture is consistent with it
|
||||
|
||||
The 15 tied pairs on `EXTRAS` reduce twice.
|
||||
|
||||
**2 of the 15 overlap** (only an overlapping tie can paint differently):
|
||||
|
||||
```
|
||||
[0] ptframe3.t32 x [1] ptframe4.t32 key 32848 overlap 102x132
|
||||
[14] ptloop01.rat x [15] ptloop02.rat key 32784 overlap 400x180
|
||||
```
|
||||
|
||||
**1 of those 2 can be drawn.** `ptloop01`/`ptloop02` are `loop*` sprite
|
||||
animations, which `compose` skips unless `--animated` is passed, so their tie is
|
||||
unreachable in a default render. The real exposure is `ptframe3` × `ptframe4`,
|
||||
overlapping **102 × 132 px** at x 584–686, y 318–450.
|
||||
|
||||
### The capture is consistent with our order
|
||||
|
||||
Correlating our render against
|
||||
[`live-extras.png`](../captures/title-builds/live-extras.png):
|
||||
|
||||
| region | correlation |
|
||||
|---|---|
|
||||
| **the contested overlap** (x 584–686, y 318–450) | **+0.9622** |
|
||||
| `ptframe3` alone, outside the overlap | +0.8502 |
|
||||
| `ptframe4` alone, outside the overlap | +0.9903 |
|
||||
| whole frame | +0.9440 |
|
||||
|
||||
The contested region matches **better than the frame as a whole** and sits inside
|
||||
the range of regions where order *cannot* matter. Were our tie-break wrong, that
|
||||
region should correlate worse than its neighbours.
|
||||
|
||||
🟡 **Consistent with, not proof.** Correlation cannot see a swap if the two
|
||||
frames happen to be locally similar. But it is a real check, and it removes the
|
||||
"entirely unverified" character of the one tie the port can actually hit.
|
||||
|
||||
**So the chain is: 15 tied pairs → 2 overlapping → 1 drawable → consistent with
|
||||
the capture.** That is the whole paint-order risk on the port's five screens.
|
||||
|
||||
Reference in New Issue
Block a user