Files
rijads 833e1811d9 Cross-build OpenRCT2 v0.5.5 into a PS5 module
Spike for the native PS5 title (PPSA99728). OpenRCT2 with the software renderer compiles and
links into a signed module; nothing has run on the console yet.

- tools/ps5-cc, ps5-c++ and ps5-link: clang 18 for x86_64-sie-ps5, and links that produce real
  PS5 modules (prospero-lld, native-app linker layout, ps5-native-tool), so configure checks see
  what the console offers.
- src/runtime: malloc from a direct-memory mspace, a sandbox-safe opendir family and scandir,
  and the libc functions libc++ and the libraries need that the console's libc lacks.
- tools/build-deps.sh: zlib, libpng, zstd, libzip, Ogg, Vorbis, FLAC, nlohmann/json, ICU 78.3
  (filtered to OpenRCT2's five code pages) and ps5-payload-dev's SDL2, pinned by SHA-256.
- tools/build-host.sh: the Linux build that makes OpenRCT2's data folder.
- patches/openrct2: the PS5 title supplies main.
2026-10-04 18:10:50 +02:00

20 lines
818 B
Bash

#!/usr/bin/env bash
# Fetches and builds the external native-app packaging tools at a pinned commit:
# ps5-native-tool (PIE to PS5 module converter, FSELF signer), libc.prx and the PS5 payload SDK.
set -euo pipefail
repo=https://github.com/blackbearreloaded/ps5-native-app-boilerplate.git
commit=b1315a9
root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
dest="$root/.deps/native-app"
if [[ ! -d $dest/.git ]]; then
git -c core.autocrlf=false clone -q "$repo" "$dest"
fi
git -C "$dest" -c advice.detachedHead=false checkout -q "$commit"
bash "$dest/tools/setup-native-dependencies.sh" >/dev/null
bash "$dest/tools/build-host-tools.sh" >/dev/null
[[ -f $dest/runtime/libc.prx ]] || bash "$dest/tools/rebuild-libc.sh" >/dev/null
(cd "$dest/runtime" && sha256sum --check --strict --quiet libc.prx.sha256)