#!/usr/bin/env bash # Compila RealSports Curling (homebrew de Atari 5200 de Ryan Witmer / Average Software, GPL-3.0-or-later) do pacote # que o proprio autor publica em phasercat.com (rs_curling.zip: License.txt, source/ e rs_curling.bin) com o # dasm 2.20.14.1, pelo comando do Makefile dele: "dasm rs_curling.s -f3 -ors_curling.bin -ssyms" dentro de source/. # Antes de montar aplica curling-5200/remove-realsports.patch, que troca o titulo "RealSports Curling" por # "Curling" nas telas (data.s: o texto largo do alto da abertura some, o titulo da configuracao e o aviso da # licenca); "RealSports" e marca antiga de terceiros. A ROM nao e mais igual a rs_curling.bin do pacote. # Dois builds seguidos dao o mesmo sha256. O site hospeda o zip inteiro, o dasm e este script. # # src/FredGames.Bundler/Builds/build-curling-5200.sh # # Saida: artifacts/build/curling-5200/curling-5200.a52 set -euo pipefail DASM=2.20.14.1 DASM_SHA256=ec71ffd10eeaa70bf7587ee0d79a92cd3f0a017c0d6d793e37d10359ceea663a GAME_URL=https://phasercat.com/wp-content/uploads/2020/08/rs_curling.zip GAME_SHA256=13b805a4d43b207ee95e14d805ff445e90e569f34a2dad49081c9080d6e5f2ea ROM_SHA256=6ed2c9182957e5f769b2ff52fea9d691311baf9b4f92f7cf5857227d39c0115b here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/curling-5200" cache="$root/artifacts/build/cache" tools="$root/artifacts/tools/dasm-$DASM" mkdir -p "$cache" fetch() { [ -f "$2" ] || curl -fsSL --retry 4 "$1" -o "$2"; echo "$3 $2" | shasum -a 256 -c -; } fetch "https://github.com/dasm-assembler/dasm/archive/refs/tags/$DASM.tar.gz" "$cache/dasm-$DASM.tar.gz" "$DASM_SHA256" fetch "$GAME_URL" "$cache/rs-curling-phasercat.zip" "$GAME_SHA256" if [ ! -x "$tools/src/dasm" ]; then rm -rf "$tools" && mkdir -p "$tools" tar -xzf "$cache/dasm-$DASM.tar.gz" -C "$tools" --strip-components 1 make -C "$tools/src" dasm >/dev/null 2>&1 fi rm -rf "$out" && mkdir -p "$out/tree" unzip -q "$cache/rs-curling-phasercat.zip" -d "$out/tree" patch -s -d "$out/tree/rs_curling" -p1 < "$here/curling-5200/remove-realsports.patch" (cd "$out/tree/rs_curling/source" && "$tools/src/dasm" rs_curling.s -f3 -o"$out/curling-5200.a52" >/dev/null) rm -rf "$out/tree" echo "$ROM_SHA256 $out/curling-5200.a52" | shasum -a 256 -c -