#!/usr/bin/env bash # Headless Ninja Volley (Master System, Haroldo O. Pinheiro, v0.9, Unlicense): tira a ROM do pacote que o autor publicou no # SMS Power e completa o arquivo com bytes 0xFF ate 16 KiB. A ROM do autor tem 12.453 bytes (o z88dk grava so o que o jogo usa), # e o Gearsystem recusa arquivo que nao seja multiplo de 1 KiB; num cartucho de verdade o resto do chip tambem fica em 0xFF. # Nenhum byte do jogo muda. # src/FredGames.Bundler/Builds/build-headless-ninja-volley.sh # Saida: artifacts/build/headless-ninja-volley/headless-ninja-volley-0.9.sms set -euo pipefail here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel)" out="$root/artifacts/build/headless-ninja-volley" zip="$out/HeadlessNinjaVolley-SMS-0.9.zip" mkdir -p "$out" [ -f "$zip" ] || curl -fsSL -A "Mozilla/5.0" https://www.smspower.org/uploads/Homebrew/HeadlessNinjaVolley-SMS-0.9.zip -o "$zip" echo "9861297a7294bccb3523d8d4dbd7256633d318621a1f0bcdcbb832854f9aa622 $zip" | shasum -a 256 -c - >/dev/null python3 -I - "$zip" "$out/headless-ninja-volley-0.9.sms" <<'EOF' import sys, zipfile, hashlib rom = zipfile.ZipFile(sys.argv[1]).read('Headless Ninja Volley v0.9.sms') assert hashlib.sha256(rom).hexdigest() == 'b2deb3257cc145319b4232d8706124d2ffef32b3e4ff219c50df54da58880281' open(sys.argv[2], 'wb').write(rom + b'\xff' * (16384 - len(rom))) EOF shasum -a 256 "$out/headless-ninja-volley-0.9.sms"