#!/usr/bin/env bash # Compila o Tic Tac DS (Jonatan Schneevoigt, GPL-3.0, commit a5680d6 de 2021-08-17) com o BlocksDS 1.25.0 # (Builds/blocksds/). O projeto traz um Makefile do devkitARM; usamos o Makefile padrao do BlocksDS (rom_arm9) # com o fonte do jogo e uma linha a mais (tic-tac-ds/touch-release.patch, ver abaixo). # src/FredGames.Bundler/Builds/blocksds/install-toolchain.sh # uma vez # src/FredGames.Bundler/Builds/build-tic-tac-ds.sh # Saida: artifacts/build/tic-tac-ds/tic-tac-ds-a5680d6.nds set -euo pipefail here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" . "$here/blocksds/env.sh" SLUG=tic-tac-ds SRC_URL=https://github.com/Jonatan6/Tic-Tac-DS/archive/a5680d64d087686e7e0e3bfa94776abfe2b2e270.tar.gz SRC_SHA256=f17fbca8a99c9fbe6ee353031c0ffd9de25e745140ec262365be4a34ed761dcf SRC_NAME=tic-tac-ds-a5680d6.tar.gz # o bash 3.2 do macOS com "set -u" falha com a lista de audio vazia do bds_build; o jogo nao tem som, entao a busca # numa pasta sem audio so passa SOURCES_AUDIO vazio ao make AUDIO_DIRS=source # Na libnds do BlocksDS o touchRead devolve o estado lido pelo ultimo scanKeys(); o laco do jogo que espera o dedo # sair da tela so chamava touchRead e travava no primeiro toque. O patch chama scanKeys() dentro desse laco. PATCH="$here/tic-tac-ds/touch-release.patch" # iprintf (newlib do devkitARM) nao existe na picolibc do BlocksDS: e o printf comum (o Makefile acrescenta os seus -D) export DEFINES=-Diprintf=printf MAKE_ARGS=(-f "$BLOCKSDS/sys/default_makefiles/rom_arm9/Makefile" NAME=tic-tac-ds "GAME_TITLE=Tic Tac DS" "GAME_SUBTITLE=By Jonatan!" GAME_AUTHOR= GAME_ICON=icon.bmp SOURCEDIRS=source) NDS_NAME=tic-tac-ds.nds OUT_NAME=tic-tac-ds-a5680d6 bds_build a="$(shasum -a 256 "$bds_root/artifacts/build/$SLUG/$OUT_NAME.nds" | cut -d' ' -f1)" bds_build b="$(shasum -a 256 "$bds_root/artifacts/build/$SLUG/$OUT_NAME.nds" | cut -d' ' -f1)" [ "$a" = "$b" ] || { echo "Dois builds deram ROMs diferentes ($a x $b)" >&2; exit 1; } rm -rf "$bds_root/artifacts/build/$SLUG/tree" echo "$a (dois builds iguais)"