From 05096c1c12bc6a8833c99af1972d4de4449ef8a3 Mon Sep 17 00:00:00 2001 From: self_slaughter Date: Tue, 24 Sep 2019 22:34:35 +1000 Subject: [PATCH] Version 1.0 --- other_authors/build_mame_roms.sh | 152 +++++++++++++++++++++++++++++++ other_authors/flips | Bin 0 -> 78688 bytes 2 files changed, 152 insertions(+) create mode 100644 other_authors/build_mame_roms.sh create mode 100644 other_authors/flips diff --git a/other_authors/build_mame_roms.sh b/other_authors/build_mame_roms.sh new file mode 100644 index 0000000..ccabe13 --- /dev/null +++ b/other_authors/build_mame_roms.sh @@ -0,0 +1,152 @@ +#!/bin/bash + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Copyright 2019 "self_slaughter" + +# Version 1.0 - 2019-09-24 - First commit + +# Note: Some code taken from Locutus73's updater scripts found here: +# https://github.com/MiSTer-devel/Updater_script_MiSTer + + + +# Change MAME_DIR to point to where you have your mame roms mounted +MAME_DIR="/media/fat/Mame/MAME 0.213 ROMs (non-merged)" + +WORK_DIR="/media/fat/Scripts/.mame" +OUTPUT_DIR="/media/fat/bootrom" +CURL_RETRY="--insecure --connect-timeout 15 --max-time 120 --retry 3 --retry-delay 5" +MISTER_URL="https://github.com/MiSTer-devel/Main_MiSTer" + +setup_workspace() { + mkdir "$WORK_DIR" &>/dev/null + mkdir "$OUTPUT_DIR" &>/dev/null + curl $CURL_RETRY -sLF "https://github.com/MiSTer-devel/Scripts_MiSTer/raw/master/other_authors/flips" -o "/media/fat/linux/flip" +} + +cleanup() { + rm -rf "$WORK_DIR" &>/dev/null +} + +find_urls() { + echo "Searching for cores" + CORE_URL=($(curl $CURL_RETRY -sLf "$MISTER_URL/wiki"| awk '/(user-content-cores)|(user-content-computer-cores)/,/user-content-development/' | grep -io '\(https://github.com/[a-zA-Z0-9./_-]*_MiSTer\)' | grep 'Arcade.*')) + echo "${#CORE_URL[@]} cores found!" +} + +find_core_names() { + for url in ${CORE_URL[@]}; do + CORE_NAME+=($(echo "$url" | sed -e 's/https:\/\/github.com\/MiSTer-devel\/Arcade-//gI' -e 's/_MiSTer//gI')) + done +} + +grab_scripts() +{ + count=$(($1 + 1)) + echo -e "\n${CORE_NAME[$1]} ($count/$totalCount)" + mkdir "$WORK_DIR/${CORE_NAME[$1]}" &>/dev/null + echo "- Downloading Scripts" + + SCRIPT_URLS=$(curl $CURL_RETRY -sLf "${CORE_URL[$1]}/raw/master/releases/" | grep -io '\"\/MiSTer\-devel\/[a-zA-Z0-9].*\?\(\.ini\|\.sh\|\.bin\|\.1\|\.2\|\.3\|\.ips\)\"') + for buildFiles in $SCRIPT_URLS; do + buildFile=$(echo "$buildFiles" | sed -e 's/^"//' -e 's/"$//' | grep -io 'releases/.*' | grep -io '/.*' | sed -e 's/\///') + curl $CURL_RETRY -sLf "${CORE_URL[$1]}/raw/master/releases/$buildFile" -o "$WORK_DIR/${CORE_NAME[$1]}/$buildFile" + done +} + +grab_zips() +{ + zip="" + zips="" + cd "$WORK_DIR/${CORE_NAME[$1]}" + for iniFile in *.ini; do + if [ ! -f "$iniFile" ]; then + echo "- Nothing to build" + skipped+=("${CORE_NAME[$1]}") + return 1 + fi + source "$WORK_DIR/${CORE_NAME[$1]}/$iniFile" + if [ -f "$OUTPUT_DIR/${ofile}" ]; then + echo "- ROM Already Exists" + skipped+=("${CORE_NAME[$1]}") + return 1 + fi + echo "- Copying ZIPs" + for zipFile in "${zip:-${zips[@]:-default}}"; do + if [ ! -f "$MAME_DIR/$zipFile" ]; then + echo "- Can't find $zipFile" + failed+=("${CORE_NAME[$1]}") + return 1 + else + cp "$MAME_DIR/$zipFile" "$WORK_DIR/${CORE_NAME[$1]}/" + fi + done + done +} + +build_roms() +{ + cd "$WORK_DIR/${CORE_NAME[$1]}" + for buildScript in *.sh; do + source "$WORK_DIR/${CORE_NAME[$1]}/${buildScript%.*}.ini" + echo "- Building ROM" + chmod +x "$WORK_DIR/${CORE_NAME[$1]}/${buildScript}" &>/dev/null + bash "$WORK_DIR/${CORE_NAME[$1]}/${buildScript}" &>/dev/null + if [ $? -eq 0 ]; then + echo "- Success" + verified+=("${CORE_NAME[$1]}") + else + if [ -f "$WORK_DIR/${CORE_NAME[$1]}/${ofile}" ]; then + echo "- Success (MD5 Fail)" + unverified+=("${CORE_NAME[$1]}") + else + echo "- Build Failed" + failed+=("${CORE_NAME[$1]}") + return 1 + fi + fi + if [ "${ofile}" == "a.JT1943.rom" ] && [ ! -f "$OUTPUT_DIR/a.1943.rom" ]; then + cp "$WORK_DIR/${CORE_NAME[$1]}/${ofile}" "$OUTPUT_DIR/a.1943.rom" + fi + cp "$WORK_DIR/${CORE_NAME[$1]}/${ofile}" "$OUTPUT_DIR/${ofile}" + done +} + +show_stats() +{ + echo -e "\n*** FINISHED ***\n" + echo "Verified: ${#verified[@]}" + echo "Unverified: ${#unverified[@]}" + echo "Failed: ${#failed[@]}" + echo "Skipped: ${#skipped[@]}" +} + +find_urls +find_core_names +cleanup +setup_workspace + +totalCount=${#CORE_URL[@]} +for (( i=0; i<$totalCount; i++ )); +do + grab_scripts "$i" + grab_zips "$i" + if [ $? == 0 ]; then + build_roms "$i" + fi +done + +show_stats +cleanup diff --git a/other_authors/flips b/other_authors/flips new file mode 100644 index 0000000000000000000000000000000000000000..bd7b69337c8048324ce0a6a5db2b4a8481aaa0cf GIT binary patch literal 78688 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 Q;<1^I*uc$H+8KHO4ea&G>;M1& literal 0 HcmV?d00001