Sweep 1: ring_row.py scans x 500:542, the main menu's gutter. EXTRAS happened to put its ring there; LOAD GAME, TUTORIAL and OPTIONS do not, so the reader found a static element and all three voided on 'the ring did not move'. Differencing S1 against S2 shows the cursors moved at x 97..231, 338..1099 and 153..479. Sweep 2: replaced the reader with a whole-frame comparison, controlled on the EXTRAS frames whose answer is known. Then the guest crashed -- the already documented STL map/set erase at PC 0x82307128, firing early in the boot, not something B did -- and Xenia's crash dialog covers the screen centre, so a whole-frame identity test can never match again. The narrow ring column the dialog does not cover was reading correctly the whole time. I traded one blindness for another, and did it because the first instrument had just failed. Refutation attempt on 'B on a submenu restores the parent's focus' (4/4): it SURVIVES, and the run I had written off is what corroborates it. The stuck frame has the ring at y 303.5 = LOAD GAME, the item entered from. A fifth instance. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wuu56cE8vJGTBtn1ppsk8v
26 lines
1.4 KiB
Bash
Executable File
26 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Boot and run extras_focus_persistence.py. Plate-pulse path, not skip_intro.
|
|
set -u
|
|
export HOME=/sylph-home/re SDL_AUDIODRIVER=dummy DISPLAY=:98
|
|
SD="$(cd "$(dirname "$0")" && pwd)"
|
|
OUT="${OUT:-/sylph-home/re/extrasfocus}"; mkdir -p "$OUT"
|
|
LOG="$OUT/canary.stdout"
|
|
bash "$SD/ensure_single_emulator.sh"
|
|
if ! xdpyinfo -display "$DISPLAY" >/dev/null 2>&1; then
|
|
rm -f "/tmp/.X${DISPLAY#:}-lock" 2>/dev/null || true
|
|
nohup bash -c 'Xvfb "$0" -screen 0 1280x720x24 -ac -nolisten tcp \
|
|
+extension GLX +extension RANDR >/tmp/xvfb98.log 2>&1' "$DISPLAY" </dev/null >/dev/null 2>&1 &
|
|
for _ in $(seq 1 50); do xdpyinfo -display "$DISPLAY" >/dev/null 2>&1 && break; done
|
|
nohup env DISPLAY="$DISPLAY" HOME=/sylph-home openbox </dev/null >/tmp/openbox98.log 2>&1 &
|
|
fi
|
|
XUID="${SYLPH_XUID:-$(ls "${XENIA_CONTENT:-$HOME/.local/share/Xenia/content}" 2>/dev/null | head -1)}"
|
|
[ -n "$XUID" ] || { echo "NO PROFILE"; exit 2; }
|
|
echo "── EFFECTIVE CONFIG ──"; echo " out=$OUT profile=$XUID gate=plate pulse"
|
|
cd /sylph-home/re
|
|
nohup run-canary --apu=sdl --log_mask=13 --log_level=2 \
|
|
--logged_profile_slot_0_xuid="$XUID" </dev/null >"$LOG" 2>&1 &
|
|
# reach the title and the menu with the probe that already does it
|
|
python3 "$SD/focus_persistence.py" "$LOG" "$OUT/reach" 900 >"$OUT/reach.log" 2>&1
|
|
echo "-- reached the menu; now the EXTRAS question --"
|
|
python3 "${SWEEP:-$SD/extras_focus_persistence.py}" "$LOG" "$OUT" 600
|