Files
PS5_RetroArch/tooling/README.md
T
Mihawk 4df5c68c11 Scaffold the native pipeline for RetroArch, with the display layer
Sets up this project as the native pipeline's scaffolding plus RetroArch's
sources, so RetroArch is compiled for the title pipeline rather than converted
into it.

- tools/scaffold-native.sh builds the scaffold from
  ../ps5-native-app-boilerplate-main: tooling, runtime (digest verified),
  Makefile and its tools, merged into this repository's tools/ rather than
  replacing them. An earlier version replaced tools/ wholesale and deleted this
  project's own scripts; the copy is now additive and the reason is in the file.
- tools/fetch-retroarch.sh clones the pinned upstream tag into vendor/ and
  records the revision, so "built from RetroArch 1.22.2" is checkable.
- src/display.{hpp,cpp} owns the console's display: VideoOut, direct memory, two
  registered buffers, present-and-wait. The sequence and its two load-bearing
  details come from the sibling application that proved it on hardware.
- src/main.cpp draws a moving bar: the cheapest thing that proves build, title
  format, launcher, VideoOut and the direct-memory path together.
- sce_sys/param.json is this project's identity, PPSA99169.

Evidence: src/display.cpp compiles through the pipeline's compiler
(tooling/prospero-clang18 with PS5_CLANG=/usr/bin/clang, -std=c++20), and a
RetroArch source file compiles the same way with its include paths.
2026-09-18 13:50:22 -04:00

1.1 KiB

Native host tooling

All repository-owned format tooling is C or C++. Make/Bash and PowerShell are thin platform-specific orchestrators. No C# or .NET runtime is required.

The root build performs four native stages:

  1. prospero-clang18 compiles application sources and native/app_crt.cpp.
  2. LLVM lld resolves objects, static archives, public SDK import stubs, constructors, TLS, and unwind information into an intermediate PIE.
  3. native/ps5-native-tool converts that PIE to the PS5 ELF layout and wraps it in a deterministic development FSELF.
  4. The requested folder or optional filesystem image is assembled.

native/libc_builder.cpp independently reproduces the generated clean-room runtime from the two manifests under native/runtime/. Run make libc on Linux/WSL or ../tools/rebuild-libc.ps1 on Windows to prove both hashes.

make deps fetches the pinned public payload SDK and static zlib archive into .deps/native/; neither is installed globally. The shell and PowerShell bootstrappers share the same cache layout.

See ../docs/NATIVE_TOOLING.md for the format boundary and low-level commands.