Files
PS5_RetroArch/tools/build-neocd.sh
T
Mihawk 8c6e8911ae Four cores: 3DO, Commodore Amiga, Neo Geo CD and ScummVM
Each from my local fork with a PS5 platform commit, through
tools/core-fork.sh:
- Opera (PS5_Opera, 3DO): FreeDO's modified LGPL forbids commercial use,
  so it joins the non-commercial parts (text from its sources' headers,
  tooling/notices/texts/opera-freedo.txt).
- PUAE (PS5_PUAE, Amiga): GPL-2.0-or-later; it boots Kickstart 1.3 from
  system/kick34005.A500, AROS without one.
- NeoCD (PS5_NeoCD, Neo Geo CD): LGPL-3.0-or-later; BIOS in system/neocd/.
- ScummVM (PS5_ScummVM: scummvm/scummvm v2026.3.0, every engine, no
  OpenGL): GPL-3.0-or-later. Its Makefile empties LDFLAGS, so the title's
  link flags go in as PS5_LDFLAGS (without them the wrapper linked
  libSceNet, which the core loader refuses); AR carries its flags (ar cru);
  its pinned libretro deps are kept across clean checkouts.
build-title.sh stages the four; notices list them; README: systems, forks,
credits, licences (thirty-three cores).

Verified on the base PS5 (13.40), runs 224859-230600: BattleSport (from
its .iso: the archive's .cue names a file it does not hold), 3D Pool,
Metal Slug and Day of the Tentacle load, run and exit with 0
(evidence/four-cores-2026-10-06). Disc images inside archives do not load:
RetroArch extracts only the .cue; unpacked into folders on the console
they do. tools/verify.sh format, unit and evidence PASS (91 captures).
Before a release: publish the four forks.
2026-10-06 23:09:36 -04:00

29 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Cross-build NeoCD's libretro core (Neo Geo CD), from my fork ../PS5_NeoCD
# (github.com/mihawk-99/PS5_NeoCD) at its pinned revision (tools/core-fork.sh).
#
# Output: build/cores/stage/{cores,info}/neocd_libretro.{so,info}; build-title.sh
# stages those in /app0. It renders in software. Games need a Neo Geo CD BIOS and
# 000-lo.lo in system/neocd/.
set -euo pipefail
root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
cd "$root"
core_name=neocd
source "$root/tools/core-stamp.sh"
source "$root/tools/core-fork.sh"
core_stamp_skip neocd \
"$root/build/cores/stage/cores/neocd_libretro.so" \
"$root/build/cores/stage/info/neocd_libretro.info" \
-- "$root/tools/build-neocd.sh" "$root/tools/core-fork.sh"
[[ $# == 0 ]] || { echo "usage: ${0##*/}" >&2; exit 2; }
revision=b9b13d7760336fec2089989e1bdbe98454dece6c # ../PS5_NeoCD main
core_fork_setup
core_fork_checkout PS5_NeoCD "$revision"
core_fork_info neocd_libretro.info 6ea290bc3814131091c08eec089386492264fc3aaa3f678b7b130874cac0cc37
# LDFLAGS goes in the environment: the makefiles add their own to it.
LDFLAGS="$core_ldflags $core_libs" make -C "$source_dir" -j"${JOBS:-16}" platform=ps5 \
CC="$core_cc" CXX="$core_cxx" AR="$AR"
core_fork_stage "$source_dir/neocd_libretro.so" "$core_info" "$revision" tools/build-neocd.sh