mirror of
https://github.com/bryanthaboi/gen1recomp.git
synced 2026-08-20 20:50:21 +02:00
ec9dc29646
Silver: derived import manifest (tools/make_silver_manifest.py re-resolves the Gold manifest's symbols from pokesilver.sym), silver GameVersion row, generation-keyed extractor routing, required-files override, edition save stamping (a Silver playthrough no longer writes into the Gold save), checkver-driven edition data, SILVER/KAMON/OSCAR/MAX presets, GOLD rival default, edition credits banner, Lugia title screen (OAM layouts, bob, trail, palettes as title.lua data keys with Gold defaults so old caches need no re-import), packaging for every build target, docs, and tests. Launcher: the installed-mods list is one continuous scroll (rows culled to the viewport) instead of a pager with an inner scroll viewport; the pad cursor's edge-scroll no longer runs it to the bottom. The game dropdown shows just the initial and caret. Find-tab behavior unchanged. Title tempo: a sprite-anim frame shows duration+1 ticks (engine/sprite_anims/core.asm GetSpriteAnimFrame), which locks both editions' 64-tick wing beat to the 64-tick sine bob; the title screens no longer run fast and out of phase.
47 lines
1.6 KiB
Bash
Executable File
47 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run the LÖVE2D Pokémon Red port (macOS-friendly).
|
|
#
|
|
# Assumes scripts/setup.sh has been run once for at least one game (generated
|
|
# data present and LÖVE installed). Extra arguments are passed through to LÖVE.
|
|
#
|
|
# Link play is peer-to-peer (lua-enet, bundled with LÖVE): one player
|
|
# picks HOST A GAME in START > LINK and reads out the address shown;
|
|
# the other picks JOIN A GAME and types it in. UDP port 7777 by
|
|
# default (override with POKEPORT_LINK_PORT on both sides).
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
|
|
fail() { printf '\033[1;31merror:\033[0m %s\n' "$*" >&2; exit 1; }
|
|
|
|
if [ ! -f "$ROOT/data/generated/maps.lua" ] \
|
|
&& [ ! -f "$ROOT/blue/data/generated/maps.lua" ] \
|
|
&& [ ! -f "$ROOT/yellow/data/generated/maps.lua" ] \
|
|
&& [ ! -f "$ROOT/gold/data/generated/maps.lua" ] \
|
|
&& [ ! -f "$ROOT/silver/data/generated/maps.lua" ]; then
|
|
fail "generated data missing, run scripts/setup.sh first"
|
|
fi
|
|
|
|
find_love() {
|
|
command -v love >/dev/null 2>&1 && { echo "love"; return; }
|
|
for app in "/Applications/love.app" "$HOME/Applications/love.app"; do
|
|
if [ -x "$app/Contents/MacOS/love" ]; then
|
|
echo "$app/Contents/MacOS/love"
|
|
return
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
LOVE_BIN="$(find_love)" \
|
|
|| fail "LÖVE not found, run scripts/setup.sh (or install from https://love2d.org)"
|
|
|
|
# SDL2 on Wayland crashes during desktop drag-and-drop in certain compositors;
|
|
# default to X11/XWayland when available to ensure rock-solid drag-drop stability.
|
|
if [ -n "${WAYLAND_DISPLAY:-}" ] && [ -z "${SDL_VIDEODRIVER:-}" ]; then
|
|
export SDL_VIDEODRIVER=x11
|
|
fi
|
|
|
|
exec "$LOVE_BIN" "$ROOT" "$@"
|