#!/bin/sh # Запускает MAME с локальным тестовым CHD как hard2 (D:) и заданным Lua. # Состояние эмулятора изолировано; каталог кадров задаёт вызывающий. set -eu if [ "$#" -lt 3 ] || [ "$#" -gt 4 ]; then echo "usage: $0 IMAGE.chd SCENARIO.lua SNAPSHOT_DIR [TIMEOUT]" >&2 exit 1 fi PROJECT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) if [ -z "${SPRINTER_ROOT:-}" ] && [ -f "$PROJECT_DIR/../../bin/sprinter-cc" ]; then SPRINTER_ROOT="$PROJECT_DIR/../.." fi if [ -z "${MAME_HOME:-}" ] && [ -f "$PROJECT_DIR/../../mame/v306/mame.arm" ]; then MAME_HOME="$PROJECT_DIR/../../mame/v306" fi : "${SPRINTER_ROOT:?задайте SPRINTER_ROOT для запуска теста}" export MAME_HOME IMAGE=$(CDPATH= cd -- "$(dirname -- "$1")" && pwd)/$(basename -- "$1") LUA=$(CDPATH= cd -- "$(dirname -- "$2")" && pwd)/$(basename -- "$2") SNAPSHOT_DIR=$(mkdir -p "$3" && CDPATH= cd -- "$3" && pwd) TIMEOUT=${4:-75} exec python3 "$SPRINTER_ROOT/toolchain/run_sprinter_mame.py" \ --hdd "$IMAGE" --script "$LUA" --snapshot-dir "$SNAPSHOT_DIR" \ --timeout "$TIMEOUT" --video opengl