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