docs: retract "reference renderer" -- sylpheed-cli is not the oracle
A framing correction from the human, and it runs through everything I have written, so it is a retraction rather than a silent edit. Reborn "was/is just a GUI explorer and extraction CLI for verifying the decoding of the various files. It may very well be wrong." The oracle is the Xenia Canary capture and the game. So verify-screen is a CONSISTENCY check between two decoders that share their assumptions, plus a regression detector -- not a correctness check, and agreement in it is not evidence of correctness. Its header now says so, it calls the CLI the COMPARISON renderer, and DIFFERS means "we moved apart, find out which of us moved". The uncomfortable part, recorded because it is the actual failure mode: this file already contained the sentence "two renderers reading one field through one decoder agreeing is not evidence that the field is right", written after the ptframe1 case -- and I then went on quoting 3/255 against sylpheed-cli as though it meant the port was right. Having the principle written down did not stop me leaning on the agreement. Three times both renderers agreed and both were wrong, each caught only by a capture: pteff05 (menu screens had no background), scale-0 (drawn full size instead of collapsed), rest() (the menu bracket missing). Correctness moves to the captures -- nine of them, indexed at docs/re/captures/ORACLE-CAPTURES.md, covering all five screens in scope. Three cautions travel with them: not gamma-neutral (there is a floor, don't chase it), geometry IS sound (a positional disagreement is real), and each is one moment of a still-animating screen. verify-screen keeps running over all 16 screens every iteration. It is still worth having -- total, cheap, and it catches a divergence introduced on the RE side. It is just not a grade.
This commit is contained in:
19
README.md
19
README.md
@@ -47,18 +47,25 @@ assuming a value is on the disc.
|
||||
|
||||
## Verifying
|
||||
|
||||
`sylpheed-cli screen render` -- built from the same `sylpheed-formats` revision
|
||||
the exporter is pinned to -- is the reference renderer. `tools/verify-screen`
|
||||
draws every exported screen both ways and reports the largest per-channel
|
||||
difference in the frame:
|
||||
**The oracle is the Xenia Canary capture and the game**, not either renderer.
|
||||
`sylpheed-cli screen render` is an explorer and extraction CLI for verifying
|
||||
decodes, and it can be wrong -- three times both it and the port agreed and both
|
||||
were wrong, each caught only by a capture.
|
||||
|
||||
So `tools/verify-screen` is a **consistency check and a regression detector**,
|
||||
not a grade. It draws every exported screen both ways -- built from the same
|
||||
`sylpheed-formats` revision the exporter is pinned to -- and reports the largest
|
||||
per-channel difference in the frame:
|
||||
|
||||
```
|
||||
tools/verify-screen # every screen in the manifest
|
||||
tools/verify-screen main_menu # one of them
|
||||
```
|
||||
|
||||
Where the two disagree, one of them is wrong; `docs/DECISIONS.md` says which and
|
||||
why, rather than tuning the port until the number goes down.
|
||||
A difference means the two moved apart; `docs/DECISIONS.md` says which one moved
|
||||
and why, rather than tuning the port until the number goes down. Correctness is
|
||||
checked against the captures indexed at `docs/re/captures/ORACLE-CAPTURES.md` --
|
||||
mind that they are not gamma-neutral, so RMSE against them has a floor.
|
||||
|
||||
## Status
|
||||
|
||||
|
||||
Reference in New Issue
Block a user