diff --git a/romm/populate-roms.sh b/romm/populate-roms.sh index 992067d..6f01342 100755 --- a/romm/populate-roms.sh +++ b/romm/populate-roms.sh @@ -2,12 +2,33 @@ set -euo pipefail NO_INTRO_BASE="/mnt/nas_games/[No-Intro] PropeR 1G1R Collection (2024)/ROMs" +FBNEO_ARCADE="/mnt/nas_games/FBNeo 1.0.0.2 ROMs (split)/arcade" ROMS_DEST="/mnt/nas_games/roms" extracted=0 skipped=0 not_found=0 +copy_arcade() { + local src_dir="$1" + local dest_dir="$2" + local rom="$3" + + if [[ -f "$dest_dir/$rom" ]]; then + echo " [SKIP] $rom" + (( skipped++ )) || true; return 0 + fi + + if [[ ! -f "$src_dir/$rom" ]]; then + echo " [MISSING] $rom" + (( not_found++ )) || true; return 0 + fi + + echo " [COPY] $rom" + cp "$src_dir/$rom" "$dest_dir/$rom" + (( extracted++ )) || true +} + extract_game() { local platform_zip="$1" local inner_prefix="$2" @@ -400,6 +421,154 @@ else done fi +# --------------------------------------------------------------------------- +# Arcade (FBNeo) +# --------------------------------------------------------------------------- +ARCADE_DEST="$ROMS_DEST/arcade" + +if [[ ! -d "$FBNEO_ARCADE" ]]; then + echo "[WARN] FBNeo arcade directory not found: $FBNEO_ARCADE" +else + echo "==> Arcade (FBNeo) -> $ARCADE_DEST" + mkdir -p "$ARCADE_DEST" + + ARCADE_ROMS=( + # Pac-Man / Namco classics + "pacman.zip" + "mspacman.zip" + "galaga.zip" + "galaxian.zip" + "digdug.zip" + "btime.zip" + "pengo.zip" + # Nintendo classics + "dkong.zip" + "dkongjr.zip" + "popeye.zip" + "punchout.zip" + "spnchout.zip" + # Early arcade classics + "invaders.zip" + "centiped.zip" + "frogger.zip" + "qbert.zip" + "zaxxon.zip" + "arkanoid.zip" + # Sega + "outrun.zip" + "aburner2.zip" + # Shooters / Shmups + "1942.zip" + "1943.zip" + "19xx.zip" + "gradius.zip" + "gradius2.zip" + "gradius3.zip" + "raiden.zip" + "raiden2.zip" + "contra.zip" + # Capcom beat-em-ups + "ffight.zip" + "knights.zip" + "kod.zip" + "wof.zip" + "dino.zip" + "avsp.zip" + "ddsom.zip" + "ddtod.zip" + "batcir.zip" + "msword.zip" + "strider.zip" + # Konami beat-em-ups + "tmnt.zip" + "tmnt2.zip" + "simpsons.zip" + "xmen.zip" + "captaven.zip" + "punisher.zip" + "aliens.zip" + "ssriders.zip" + # Double Dragon / Technos + "ddragon.zip" + "ddragon2.zip" + "ddragon3.zip" + # Platform / action + "ghouls.zip" + "pang.zip" + "spang.zip" + "bublbobl.zip" + "pbobble.zip" + "rbisland.zip" + "snowbros.zip" + "slammast.zip" + "gauntlet.zip" + "gaunt2.zip" + # Street Fighter + "sf2.zip" + "sf2ce.zip" + "sf2hf.zip" + "ssf2t.zip" + "sfa.zip" + "sfa2.zip" + "sfa3.zip" + "sfiii3.zip" + # Mortal Kombat + "mk.zip" + "mk2.zip" + "mk3.zip" + # Marvel / Capcom crossovers + "xmvsf.zip" + "msh.zip" + "mvsc.zip" + "nwarr.zip" + # King of Fighters + "kof94.zip" + "kof95.zip" + "kof96.zip" + "kof97.zip" + "kof98.zip" + "kof99.zip" + "kof2000.zip" + "kof2001.zip" + "kof2002.zip" + "kof2003.zip" + # Fatal Fury / Garou + "fatfury1.zip" + "fatfury2.zip" + "fatfursp.zip" + "fatfury3.zip" + "rbff1.zip" + "rbff2.zip" + "garou.zip" + # Samurai Shodown + "samsho.zip" + "samsho2.zip" + "samsho3.zip" + "samsho4.zip" + "samsho5.zip" + # Metal Slug + "mslug.zip" + "mslug2.zip" + "mslug3.zip" + "mslug4.zip" + "mslug5.zip" + "mslugx.zip" + # Neo Geo misc + "blazstar.zip" + "wjammers.zip" + "turfmast.zip" + "lastbld2.zip" + "rotd.zip" + "neobombe.zip" + "kabukikl.zip" + "matrim.zip" + ) + + for rom in "${ARCADE_ROMS[@]}"; do + copy_arcade "$FBNEO_ARCADE" "$ARCADE_DEST" "$rom" + done +fi + # --------------------------------------------------------------------------- # Summary # ---------------------------------------------------------------------------