65816-llvm-mos/scripts/installMame.sh
Scott Duensing 873eab4922 Checkpoint.
2026-04-25 17:07:28 -05:00

46 lines
1.5 KiB
Bash
Executable file

#!/usr/bin/env bash
# Install MAME (via apt) and fetch Apple IIgs ROM sets into the project-local
# rompath. Self-contained — MAME is launched with -rompath to point here, so
# this does not touch the user's ~/.mame directory.
set -euo pipefail
source "$(dirname "$0")/common.sh"
MAME_ROMS="$TOOLS_DIR/mame/roms"
ROM_BASE="https://archive.org/download/mame-0.240-roms-split_202201/MAME%200.240%20ROMs%20(split)"
install -d "$MAME_ROMS"
# 1. MAME binary via apt. Ubuntu noble ships 0.264.
if ! haveCmd mame; then
log "installing mame"
sudo apt-get install -y --no-install-recommends mame mame-tools
else
log "mame already installed: $(mame -version 2>/dev/null | head -1 || true)"
fi
# 2. ROM sets. apple2gs is current ROM 03; apple2gsr1 is ROM 01 (many 1986-era
# titles require this variant). Pull both so we can test against either.
for romName in apple2gs.zip apple2gsr1.zip; do
dest="$MAME_ROMS/$romName"
if [ -s "$dest" ]; then
log "rom already present: $romName"
continue
fi
log "downloading $romName"
curl -fL --retry 3 --progress-bar \
-o "$dest.part" "$ROM_BASE/$romName"
mv "$dest.part" "$dest"
done
# 3. Quick Lua capability check — we rely on -console for the test harness.
if mame -showusage 2>&1 | grep -q -- '-console'; then
log "mame Lua console available"
else
warn "mame binary does not appear to support -console / Lua scripting"
fi
log "mame install done"
log " binary: $(command -v mame)"
log " rompath: $MAME_ROMS"
log " launch: mame -rompath $MAME_ROMS apple2gs"