Files
PS5_RetroArch/runtime
MihawkandClaude Opus 5.5 4af9c78fc1 Licences, notices and source for every build; what each release was built from
A licence audit found that no published ZIP carries the licence texts its parts
require, and that three release tags name commits older than the ones built.

- tooling/notices/components.json lists every part of the title, its licence,
  its licence texts and where its source is.
- tools/stage-notices.py (run by tools/build-title.sh before the manifest)
  writes licenses/ into the title folder, tying every executable to its
  source revision; tools/check-notices.py checks it in the integration gate.
- tools/source-bundle.py archives each part's source at that revision.
- LICENSE (GPLv3), docs/RELEASING.md, docs/releases/SOURCE_CORRESPONDENCE.md,
  README licence and trademark sections, docs/RPCS3_PORT.md licence facts,
  runtime/README.md (what libc.prx contains, as verified).

Evidence: stage-notices on a copy of the current 16-core build staged 28 parts,
every core equal to its build report; check-notices passes, --release fails on
uncommitted source; source-bundle built 10 archives whose sums verify;
make test-unit 83 OK; lint-shell PASS; libc.prx rebuilt from committed files is
byte-identical to every release's (e6ff45d1...).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 10:28:46 -04:00
..

The generated runtime module (libc.prx)

sce_module/libc.prx is the module a title carries where the console's loader expects a C library companion. It is generated, not copied: make libc (or tools/rebuild-libc.sh) builds tooling/native/libc_builder.cpp and runs it on the two manifests in tooling/native/runtime/, then signs the result as a fake SELF. The code is Copyright (C) 2026 BlackBearReloaded (ps5-native-app-boilerplate), GPL-3.0-or-later.

What the module contains:

  • a few dozen bytes of machine code written by the builder: an initializer that hands the title's malloc/free/posix_memalign to the kernel's heap hook and registers three thread callbacks, and functions that return zero;
  • loader metadata: the NIDs, ELF bindings, types and sizes of the symbols the console's libc exports (api-surface.txt, recorded by observing that module, as its header says), the imports it declares (imports.txt), and a segment layout that matches what the loader accepts.

It contains no instructions or data copied from a console module. That is established by the generator's source, and by reproduction: on 2026-09-29 the module rebuilt from this repository's committed files alone was byte-identical to the one below, which is also the libc.prx in every published PS5_RetroArch release (v0.1.0-alpha.1 to v0.5.0-alpha.5). The name "clean-room", used for this module elsewhere, is BlackBearReloaded's description of how it was written; this repository has no record of that process beyond the source itself.

The expected artifact has SHA-256:

e6ff45d16adf687855cc3b33b0c8a4132b6504360b221e0a34c7e99fb3ba0036

Generate it from the repository root with make libc, then verify it from this directory with sha256sum -c libc.prx.sha256. The generated file is ignored by Git; a normal build creates it too. The upstream description of the generator and its compatibility scope is ps5-native-app-boilerplate's docs/RUNTIME_SHIM.md.