#!/usr/bin/env bash # Compila Cat Fish (homebrew de Game Boy Advance de Auberon Lopez e Matt Phan, GBA Jam 2026, MIT; audio CC0) # do commit 3b99b74 do repositorio alope107/pounce, com o Butano 21.8.0 (zlib), a engine que o jogo usa. O # repositorio nao traz ROM. Toolchain: ver gba-butano-toolchain.sh (GCC arm-none-eabi 14.3.rel1 com as regras # e o crt0 do devkitARM, no lugar do pacote do devkitPro, que nao baixa neste ambiente). # Mudancas nossas: graphics/fritobag.* fica de fora (e uma sacola de salgadinho com a marca Fritos, e o codigo # nunca a usa) e o titulo do cabecalho da ROM vira CATFISH (o Makefile deixou "SCENE"). # # src/FredGames.Bundler/Builds/build-cat-fish.sh # # Saida: artifacts/build/cat-fish/cat-fish.gba set -euo pipefail COMMIT=3b99b744de9856b685d761a19333ad759de48baf GAME_SHA256=c640cd5f8cd3cd9857efd306d6d39f9f2367f73b16f4a9a4100a5a59a69d97f7 BUTANO=21.8.0 BUTANO_SHA256=bd34a379ccdebbdc77b5e4f18c0c76a4431083952c9810f8c02c017000ab6dee here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/cat-fish" cache="$root/artifacts/build/cache" dkp="$root/artifacts/tools/devkitpro-compat" "$here/gba-butano-toolchain.sh" mkdir -p "$cache" fetch() { [ -f "$2" ] || curl -fsSL --retry 4 "$1" -o "$2"; echo "$3 $2" | shasum -a 256 -c -; } fetch "https://github.com/GValiente/butano/archive/refs/tags/$BUTANO.tar.gz" "$cache/butano-$BUTANO.tar.gz" "$BUTANO_SHA256" fetch "https://github.com/alope107/pounce/archive/$COMMIT.tar.gz" "$cache/pounce-3b99b74.tar.gz" "$GAME_SHA256" rm -rf "$out" && mkdir -p "$out/butano" "$out/tree" tar -xzf "$cache/butano-$BUTANO.tar.gz" -C "$out/butano" --strip-components 1 tar -xzf "$cache/pounce-3b99b74.tar.gz" -C "$out/tree" --strip-components 1 cd "$out/tree" rm graphics/fritobag.bmp graphics/fritobag.json export DEVKITPRO="$dkp" DEVKITARM="$dkp/devkitARM" export PATH="$dkp/devkitARM/bin:$dkp/tools/bin:$PATH" make -j8 LIBBUTANO="$out/butano/butano" PYTHON=python3 ROMTITLE=CATFISH ROMCODE=CTF >/dev/null 2>&1 cp tree.gba "$out/cat-fish.gba" 2>/dev/null || cp "$(basename "$PWD").gba" "$out/cat-fish.gba" shasum -a 256 "$out/cat-fish.gba"