re: the title capture is not reachable here either; stopping this line
Run 3 used the proven path rather than my own probe: launched exactly as
boot_menu.sh does (DISPLAY=:98, --apu=sdl, /dev/shm/xenia_* cleared, the
existing profile signed in) and drove skip_intro.sh, the detector that is
documented to work and that is stricter than mine (glyph >= 800 AND a
static frame).
It classified every one of 20 samples over 604 s as "movie", waited them
all out, and timed out. A direct check at 604 s says it was right: zero
green-glyph pixels, screen_id = other, warm mean (69,53,40), correlation
0.09 with build 7. The game really was playing attract movies for ten
minutes.
Three runs, two locales, two launch paths, ~35 minutes of emulator time,
no interactive title. Either the attract loop is far longer than the
600-780 s windows tried, or something regressed since
live-title-press-a.png was captured -- that one came from a pad-driven
boot (88b3ce9, "booting to the main menu and walking it").
Also settled a discrepancy I had flagged without checking: there is no
contradiction with title_states_capture.sh. It waits on screen_id.py, a
LOOSER oracle than is_title.py, and was written precisely to test whether
the interactive title draws ptbtn00 and the attract one does not. It
never claimed to reach the interactive title.
Stopping this line. The capture blocks none of the five menu screens and
has now cost five iterations. The locale mechanism, the fixed oracle and
the launch recipe are all committed, so what remains is patience with the
attract loop, not tooling. METHOD line on knowing when to stop paying for
a non-blocking answer.
Emulator stopped, lock cleared, locale English.
This commit is contained in:
@@ -137,12 +137,26 @@ the frame at 734 s has content but correlates only **0.15** with build 4's rende
|
|||||||
and 0.05 with the main menu, i.e. it is an attract-movie frame, not title art.
|
and 0.05 with the main menu, i.e. it is an attract-movie frame, not title art.
|
||||||
|
|
||||||
So the Japanese run was **not** failing because of the locale — neither locale
|
So the Japanese run was **not** failing because of the locale — neither locale
|
||||||
reaches the interactive title in ~12 minutes of no pad input. 🟡 What remains
|
reaches the interactive title in ~12 minutes of no pad input. **🔴 Tried the proven path too, and I am stopping this line (2026-08-29).**
|
||||||
untested is a **pad press**: `pad.py` and `nav_to_flight.sh` exist, and
|
Run 3 launched exactly the way `boot_menu.sh` does — `DISPLAY=:98`, `--apu=sdl`,
|
||||||
`title_states_capture.sh` reaches title states with its own flag set
|
`/dev/shm/xenia_*` cleared, the existing profile signed in — and drove
|
||||||
(`--log_ui_draws --ui_draw_capture_frames`, plus xdotool window focus) which this
|
`skip_intro.sh`, the detector that is documented to work. It classified **every
|
||||||
probe did not replicate. That is the next thing to try, and it is a capture
|
one of 20 samples over 604 s as "movie"** and waited them all out, then timed
|
||||||
problem, not a locale one.
|
out. A direct check at 604 s confirms it was right: zero green-glyph pixels,
|
||||||
|
`screen_id` = other, warm mean (69,53,40), correlation **0.09** with build 7. The
|
||||||
|
game really was playing attract movies for ten minutes.
|
||||||
|
|
||||||
|
So: **three runs, two locales, two launch paths, ~35 minutes of emulator time, no
|
||||||
|
interactive title.** Either the attract loop is far longer than the 600–780 s
|
||||||
|
windows tried, or something has regressed since `live-title-press-a.png` was
|
||||||
|
captured (that one came from a pad-driven boot — commit `88b3ce9`, "booting to
|
||||||
|
the main menu and walking it").
|
||||||
|
|
||||||
|
⚠️ **Not worth more loop iterations.** This capture does not block any of the
|
||||||
|
five menu screens, and it has now cost five. It is written down so a later
|
||||||
|
session with a reason to spend an hour on the boot path can pick it up; the
|
||||||
|
locale mechanism, the fixed oracle and the launch recipe are all in place, so
|
||||||
|
what is left is patience with the attract loop, not tooling.
|
||||||
|
|
||||||
The locale is restored to English; `set_console_language.py ja` flips it back in
|
The locale is restored to English; `set_console_language.py ja` flips it back in
|
||||||
one command.
|
one command.
|
||||||
|
|||||||
@@ -463,3 +463,10 @@ agent's loop prompt, i.e. nowhere durable. See [`README.md`](README.md) for the
|
|||||||
ran. Printing the oracle's value each tick turns "no title" into "75 samples,
|
ran. Printing the oracle's value each tick turns "no title" into "75 samples,
|
||||||
max glyph 0", which is a measurement — and it is what showed the black-screen
|
max glyph 0", which is a measurement — and it is what showed the black-screen
|
||||||
and attract-movie phases were being sampled correctly all along.
|
and attract-movie phases were being sampled correctly all along.
|
||||||
|
* **Know when to stop paying for a non-blocking answer.** A capture that would
|
||||||
|
settle two 🟡 residuals — neither of which blocks the deliverable — absorbed
|
||||||
|
five iterations. Each one produced a real finding (a broken oracle, a wrong
|
||||||
|
"impossible", a locale red herring), so none was wasted, but the *question*
|
||||||
|
never moved. The signal to stop is not "this is hard", it is "the thing this
|
||||||
|
unblocks is not blocking anything". Write down the recipe you built and leave
|
||||||
|
it for a session with a reason to spend the time.
|
||||||
|
|||||||
Reference in New Issue
Block a user