port: the splash floor is glyph-edge antialiasing; off edges the port is ~1 RMSE from the game
The splash rows have no free-running element, so their residual is chaseable without a phase term. It is not tonal: max 255 with 0.012-0.017% of pixels over 8/255, in opposite directions on the two screens. That is the edge-antialiasing signature. Tested against an edge mask from the capture, with coverage checked first because an earlier attempt on title failed by classifying 92% of the frame as edge: publisher_logo mask 0.67%, residual 18.30 on edges against 1.42 off; developer_logos mask 1.44%, 12.66 against 0.82. Non-degenerate masks, 13-15x concentration. The 1.92 whole-frame floor is glyph-edge antialiasing. Off the edges the port matches the game at 0.82-1.42 RMSE -- the cleanest port-versus-game statement in the corpus, and confirmation of verify-capture's long-standing note that the port is +9 to +12 on sprite edges, measured rather than observed in passing. Not everything is explained: 0.82-1.42 is still 15-25x the rasterisation floor, consistent with the binned tone table leaving about a level of error, but not shown to be that. Also records the contamination check after their withdrawal of the A result: nothing in authored/, docs/port/ or port/ cites it or the '2 of 2' run count. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -9,7 +9,7 @@ dies, which is what this file is for.
|
|||||||
|
|
||||||
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
|
<!-- INDEX: generated by tools/port/index-decisions -- do not hand-edit -->
|
||||||
|
|
||||||
181 sections. Search this before re-deriving anything.
|
182 sections. Search this before re-deriving anything.
|
||||||
|
|
||||||
* [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28)
|
* [P0 — the exporter, 2026-08-28](#p0--the-exporter-2026-08-28)
|
||||||
* [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28)
|
* [P1 — Godot draws the screen, 2026-08-28](#p1--godot-draws-the-screen-2026-08-28)
|
||||||
@@ -192,6 +192,7 @@ dies, which is what this file is for.
|
|||||||
* [Their masking rule, implemented — and it does not transfer to my screens](#their-masking-rule-implemented--and-it-does-not-transfer-to-my-screens)
|
* [Their masking rule, implemented — and it does not transfer to my screens](#their-masking-rule-implemented--and-it-does-not-transfer-to-my-screens)
|
||||||
* [Their "the game may not draw these leaves" hypothesis — my curves say *sometimes*](#their-the-game-may-not-draw-these-leaves-hypothesis--my-curves-say-sometimes)
|
* [Their "the game may not draw these leaves" hypothesis — my curves say *sometimes*](#their-the-game-may-not-draw-these-leaves-hypothesis--my-curves-say-sometimes)
|
||||||
* [Using the clean splash rows to measure the tone curve — and repeating a documented mistake](#using-the-clean-splash-rows-to-measure-the-tone-curve--and-repeating-a-documented-mistake)
|
* [Using the clean splash rows to measure the tone curve — and repeating a documented mistake](#using-the-clean-splash-rows-to-measure-the-tone-curve--and-repeating-a-documented-mistake)
|
||||||
|
* [Localising the 1.92 splash floor: it is glyph edges, and off them the port is ~1 RMSE from the game](#localising-the-192-splash-floor-it-is-glyph-edges-and-off-them-the-port-is-1-rmse-from-the-game)
|
||||||
|
|
||||||
<!-- /INDEX -->
|
<!-- /INDEX -->
|
||||||
## P0 — the exporter, 2026-08-28
|
## P0 — the exporter, 2026-08-28
|
||||||
@@ -10333,3 +10334,51 @@ residual bottoms at **1.92** with no phase term and no free-running element, so
|
|||||||
that number is a real floor for those screens rather than an artefact — and it is
|
that number is a real floor for those screens rather than an artefact — and it is
|
||||||
still 30× the noise, which says the port and the capture differ by something the
|
still 30× the noise, which says the port and the capture differ by something the
|
||||||
tone curve alone does not explain.
|
tone curve alone does not explain.
|
||||||
|
|
||||||
|
## Localising the 1.92 splash floor: it is glyph edges, and off them the port is ~1 RMSE from the game
|
||||||
|
|
||||||
|
The splash rows carry no free-running element, so their residual is the one I can
|
||||||
|
chase without a phase term. It is **not tonal** — max **255** with only
|
||||||
|
**0.012–0.017 %** of pixels over 8/255. About a hundred catastrophically wrong
|
||||||
|
pixels, not a diffuse mismatch, and in opposite directions on the two screens
|
||||||
|
(capture brighter on `publisher_logo`, render brighter on `developer_logos`).
|
||||||
|
|
||||||
|
That is the signature of edge antialiasing, so I tested it against an edge mask
|
||||||
|
from the **capture** — with the mask's coverage checked first, because my earlier
|
||||||
|
edge attempt on `title` failed exactly by classifying 92 % of the frame as edge:
|
||||||
|
|
||||||
|
| | edge mask covers | residual **on** edges | residual **off** edges |
|
||||||
|
|---|---|---|---|
|
||||||
|
| `publisher_logo` | **0.67 %** | 18.30 | **1.42** |
|
||||||
|
| `developer_logos` | **1.44 %** | 12.66 | **0.82** |
|
||||||
|
|
||||||
|
✅ Non-degenerate masks, and a **13–15× concentration** on edges. The 1.92
|
||||||
|
whole-frame floor is glyph-edge antialiasing.
|
||||||
|
|
||||||
|
📌 **Off the edges, the port matches the game at 0.82–1.42 RMSE.** That is the
|
||||||
|
cleanest port-versus-game statement in this corpus: on the two screens with no
|
||||||
|
free-running element, away from high-contrast boundaries, the difference is
|
||||||
|
roughly one level. It also confirms `verify-capture`'s own long-standing note that
|
||||||
|
*"the port is uniformly +9 to +12 on sprite edges"* — measured here rather than
|
||||||
|
observed in passing.
|
||||||
|
|
||||||
|
⚠️ Not everything is explained. 0.82–1.42 is still 15–25× the 0.06 rasterisation
|
||||||
|
floor. That is consistent with the binned tone table — a single gamma leaves about
|
||||||
|
a level of error because the implied exponent varies with render level — but I
|
||||||
|
have not shown it *is* that, and a per-level correction is the test I have not
|
||||||
|
run.
|
||||||
|
|
||||||
|
### Contamination check after their withdrawal
|
||||||
|
|
||||||
|
They withdrew the Ⓐ result (three emulators live at once, one shared pad file, one
|
||||||
|
shared display) and flagged their earlier menu probes as suspect for the same
|
||||||
|
reason. ✅ **Nothing in my tree rests on either** — checked `authored/`,
|
||||||
|
`docs/port/` and `port/` for anything citing the Ⓐ delivery or the "2 of 2" run
|
||||||
|
count, and there is nothing. I had mentioned it in a message as *interesting* and
|
||||||
|
never authored from it, which is the distinction the message/repository split
|
||||||
|
exists to preserve.
|
||||||
|
|
||||||
|
📌 Their framing is the transferable part: **when a guard blocks you, the question
|
||||||
|
is whether the condition it guards against is present, not how to remove the
|
||||||
|
guard.** `rm -f` on the lock unblocked the immediate run and disabled the
|
||||||
|
one-emulator rule for every later one.
|
||||||
|
|||||||
Reference in New Issue
Block a user