#!/bin/bash
# Headless MAME test run. NEVER opens a window (no DISPLAY/Wayland, SDL dummy).
# usage: [ROM_TEST=file.bin] [GK=script.lua] [KEEP_NVRAM=1] ./run.sh cmds.txt [extra mame args]
. "$(dirname "$0")/config.sh"
C=$(realpath "$1"); shift
R=$(realpath "${ROM_TEST:-${ROM}}")
if [ -n "$GK" ] && [ "${GK:0:1}" != "/" ]; then [ -f "$TOOLS/lua/$GK" ] && GK="$TOOLS/lua/$GK" || GK=$(realpath "$GK"); fi
mkdir -p "$WORK/sta" "$WORK/snap"; cd "$WORK"
rm -rf snap/genesis
[ -z "$KEEP_NVRAM" ] && rm -rf nvram   # battery RAM starts empty unless KEEP_NVRAM=1 (MAME keeps it per ROM name)
GK="$GK" CMDS="$C" OUT="${C%.txt}.out" timeout 3000 env -u DISPLAY -u WAYLAND_DISPLAY SDL_VIDEODRIVER=dummy SDL_AUDIODRIVER=dummy \
  nice -n 19 mame genesis -video none -cart "$R" -sound none -nothrottle -seconds_to_run ${SECS:-100000} \
  -snapshot_directory snap -state_directory sta -nvram_directory nvram -autoboot_script "$TOOLS/h.lua" -skip_gameinfo -noplugin data "$@" 2>&1 \
  | grep -vE "LUA ERROR|load_dat|Average speed" | tail -5
ls snap/genesis 2>/dev/null | wc -l
