#!/usr/bin/env bash # Compila Qulqy (homebrew de Game Boy Color de Mateusz Teklak "plyr0", BSD-3-Clause) do commit 6d1e676 # do Codeberg com o GBDK-2020 4.4.0, sem a tela do logo da GB Compo 2025 (marca de terceiros). Sem o # patch, esta build sai identica byte a byte ao qulqy_jam.gbc do itch.io (sha256 bd133d95...). # # O patch Builds/qulqy/no-compo-logo.patch tira a tela do logo (e a espera pelo Start que vinha com # ela) e ressemeia o gerador aleatorio no primeiro lance depois de carregar um jogo salvo (sem a # espera, a semente do clock() seria sempre a mesma); o script apaga os arquivos do logo. # # src/FredGames.Bundler/Builds/build-qulqy.sh # # Saida: artifacts/build/qulqy/qulqy.gbc set -euo pipefail GBDK=4.4.0 GBDK_SHA256=0c67b5cafff8a617729b77f9383ea41eb864b34f52c2391686c94427936db2df COMMIT=6d1e67647614b9961c04c08fb1679509211df2b5 GAME_SHA256=94f1065ba3cf8f1dfd495e84a9e92c5494dfce3f92247b87c66519b956bdd819 ROM_SHA256=dd9971e1011f8dcaa089c6fa41dc732b2112fc74901aff226f87db2bd81e5b58 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/qulqy" cache="$root/artifacts/build/cache" gbdk="$root/artifacts/tools/gbdk-$GBDK" mkdir -p "$cache" fetch() { [ -f "$2" ] || curl -fsSL --retry 4 "$1" -o "$2"; echo "$3 $2" | shasum -a 256 -c -; } fetch "https://github.com/gbdk-2020/gbdk-2020/releases/download/$GBDK/gbdk-macos-arm64.tar.gz" "$cache/gbdk-$GBDK-macos-arm64.tar.gz" "$GBDK_SHA256" fetch "https://codeberg.org/plyr0/qulqy/archive/$COMMIT.tar.gz" "$cache/qulqy-$COMMIT.tar.gz" "$GAME_SHA256" if [ ! -x "$gbdk/bin/lcc" ]; then rm -rf "$gbdk" && mkdir -p "$gbdk" tar -xzf "$cache/gbdk-$GBDK-macos-arm64.tar.gz" -C "$gbdk" --strip-components 1 xattr -dr com.apple.quarantine "$gbdk" 2>/dev/null || true fi rm -rf "$out" && mkdir -p "$out/tree" tar -xzf "$cache/qulqy-$COMMIT.tar.gz" -C "$out/tree" --strip-components 1 patch -s -p1 -d "$out/tree" < "$here/qulqy/no-compo-logo.patch" rm "$out/tree/src/res/gbcompo2c.c" "$out/tree/src/res/gbcompo2c.h" \ "$out/tree/res/gbcompo2c.png" "$out/tree/res/old/gbcompo2.png" "$out/tree/res/png.txt" make -C "$out/tree" GBDK_HOME="$gbdk/" >/dev/null cp "$out/tree/_bin/qulqy.gbc" "$out/" echo "$ROM_SHA256 $out/qulqy.gbc" | shasum -a 256 -c -