diff --git a/scripts/mkdata.sh b/scripts/mkdata.sh new file mode 100755 index 0000000..39328ad --- /dev/null +++ b/scripts/mkdata.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Create the data partition image with ROM directory structure. +set -e + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +image="$1" + +if [ -z "$image" ]; then + echo "Usage: $0 IMAGE" + exit 1 +fi + +# Build guestfish commands to create exFAT filesystem with ROM dirs +script=( + "run" + "mkfs vfat /dev/sda label:ROMS" + "mount /dev/sda /" +) + +# Create ROM directories +while IFS= read -r dir; do + [ -z "$dir" ] && continue + [[ "$dir" =~ ^# ]] && continue + script+=("mkdir \"/roms/$dir\"") +done < "$script_dir/rom-dirs.txt" + +# Create support directories +script+=("mkdir \"/roms/bios\"") +script+=("mkdir \"/roms/saves\"") +script+=("mkdir \"/roms/screenshots\"") + +for cmd in "${script[@]}"; do + echo "$cmd" +done | guestfish --format=raw -a "$image" + +echo "Data partition image created at $image" diff --git a/scripts/rom-dirs.txt b/scripts/rom-dirs.txt new file mode 100644 index 0000000..b5e24a3 --- /dev/null +++ b/scripts/rom-dirs.txt @@ -0,0 +1,88 @@ +3do +amiga +amigacd32 +amstradcpc +amstradgx4000 +arcade +astrocde +atari2600 +atari5200 +atari7800 +atari800 +atarijaguar +atarilynx +atarist +atarixegs +atomiswave +c128 +c16 +c64 +channelf +coleco +daphne +doom +dos +dreamcast +easyrpg +famicom +fbneo +fds +gamegear +gb +gba +gbc +genesis +intellivision +lowresnx +mame +mastersystem +megadrive +megaduck +msx +msx2 +n64 +naomi +nds +neogeo +neogeocd +nes +ngp +ngpc +odyssey2 +openbor +pc +pc98 +pcengine +pcenginecd +pcfx +pico8 +pokemini +ports +psp +psx +satellaview +saturn +scummvm +sega32x +segacd +sfc +sg1000 +snes +sufami +supergrafx +supervision +tg16 +tg16cd +tic80 +uzebox +vectrex +vic20 +videopac +virtualboy +wonderswan +wonderswancolor +wolf3d +x1 +x68000 +zx81 +zxspectrum