re: fix wait_title.sh's stale oracle; the JP title still is not reached

Last iteration's "never reached the title in 787 s" was a broken tool
reporting on the world. wait_title.sh was still sampling the single pixel
(625,618) that is_title.py had already been written to replace -- its
docstring says why: a 1280x720 coordinate sampled against the 1279x675
game surface, so it always reads the copyright line. The replacement sat
in the same directory. wait_title.sh now delegates to it.

is_title.py passes its own controls before being trusted here: 753
green-glyph pixels on the committed English title capture, 327 on the
main menu, threshold 400.

Re-ran with the working oracle and the profile flag the English captures
use. The game STILL did not present the interactive title -- but that is
now a measurement rather than an artefact: not one frame showed a single
green-(A) glyph pixel, and content correlation against either build-7
render never exceeded 0.22. Canary was alive and polling
XamInputGetKeystrokeEx (601 calls), sitting in the attract movie.

So the open question narrowed again, and is written into MISSION.md:
whether the attract loop returns to the INTERACTIVE title without a pad
press. title_states_capture.sh claims it does on the English boot with no
pad input; if that holds, the difference is the locale.

Nothing decided about the keyframe-time association or the rest() rule.
Emulator stopped, lock cleared, locale restored to English.
This commit is contained in:
Sylpheed RE agent
2026-08-29 00:21:44 +00:00
parent 948273883f
commit 23f12a3710
4 changed files with 49 additions and 12 deletions

View File

@@ -442,3 +442,12 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
landmarks, no offset assumed, and the check re-runs every invocation — so the
tool fails loudly if the layout moves instead of silently patching a
neighbouring field.
* **A stale oracle reports the world, not itself.** A 787 s run concluded "the
game never reached the title". It had, repeatedly: `wait_title.sh` was still
sampling the single pixel (625,618) that `is_title.py` had already been written
to replace — a 1280×720 coordinate against a 1279×675 game surface, always
reading the copyright line. The replacement existed *in the same directory*,
with a docstring naming the bug. Before believing a negative from a probe,
check whether something in the toolkit already supersedes it, and run the probe
against a known-positive capture first — `is_title.py` scores 753 on a real
title frame and 327 on the main menu, which takes one command to confirm.