29 lines
1.2 KiB
Bash
Executable File
29 lines
1.2 KiB
Bash
Executable File
#!/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
|