From f9d93ee1177d4173318a634601228527e05c2682 Mon Sep 17 00:00:00 2001 From: Sylpheed RE agent Date: Mon, 24 Aug 2026 01:37:28 +0000 Subject: [PATCH] tools: give launch_mission a boot-timeout knob and an extra-flags hook Both exist for one diagnostic. KeWaitForSingleObject is declared kHighFrequency, so it is silent even at LOG_LEVEL=3 unless --log_high_frequency_kernel_calls=true is passed - and that flag writes ~157 MB in ten minutes and slows the emulator so far that the title had still not appeared when skip_intro's fixed 600 s budget ran out. The run was then scored "BOOT FAILED" when it was only slow. EXTRA_FLAGS passes one-off diagnostic cvars without making them defaults; SKIP_INTRO_TIMEOUT lets a deliberately-slowed run have the time it needs. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PMRJjbxLqZtsb5Vb7KunPE --- tools/re-capture/launch_mission.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/tools/re-capture/launch_mission.sh b/tools/re-capture/launch_mission.sh index cd9411c4..b69e99a1 100755 --- a/tools/re-capture/launch_mission.sh +++ b/tools/re-capture/launch_mission.sh @@ -58,10 +58,20 @@ XUID="${SYLPH_XUID:-$(ls "${XENIA_CONTENT:-$HOME/.local/share/Xenia/content}" 2> [ -n "$XUID" ] || { echo "NO PROFILE on disc"; exit 2; } LOG="${LAUNCH_MISSION_LOG:-$SHOTS/launch_mission-canary.stdout}" echo "signing in profile $XUID; emulator log: $LOG" +# EXTRA_FLAGS is for one-off diagnostics that should not become defaults -- +# e.g. --log_high_frequency_kernel_calls=true, which is the only way to see +# KeWaitForSingleObject at all (it is declared kHighFrequency and is therefore +# silent even at LOG_LEVEL=3). +# shellcheck disable=SC2086 nohup run-canary --apu=sdl --log_mask="${LOG_MASK:-13}" --log_level="${LOG_LEVEL:-2}" \ - --logged_profile_slot_0_xuid="$XUID" "$LOG" 2>&1 & + --logged_profile_slot_0_xuid="$XUID" ${EXTRA_FLAGS:-} "$LOG" 2>&1 & sleep 5 -"$SD/skip_intro.sh" 600 || { echo "BOOT FAILED (skip_intro exit $?)"; exit 1; } +# The boot budget is a knob because one diagnostic blows straight through the +# default: --log_high_frequency_kernel_calls=true writes ~157 MB in ten minutes +# and the title had still not appeared, so skip_intro timed out and the run was +# scored a BOOT FAILED when it was only slow. +"$SD/skip_intro.sh" "${SKIP_INTRO_TIMEOUT:-600}" \ + || { echo "BOOT FAILED (skip_intro exit $?)"; exit 1; } sleep 14 # main menu is not input-ready before this step down # NEW GAME -> LOAD GAME