Files
Chimera GFX release export a6037502d7
phase0-ci / build-and-audit (push) Successful in 2m14s
Publish Chimera GFX source
2026-09-03 03:27:14 +02:00

71 lines
3.2 KiB
Markdown

# Phase 1.0A native RetroArch PS5 port plan
Date: 2026-07-19
## Outcome and boundary
Phase 1.0A creates a real native RetroArch target in the separate
`chimera-retroarch` repository. It does not add RetroArch source to
`chimera-gfx`. The implementation has three profiles:
| Profile | Purpose | Target result |
| --- | --- | --- |
| `ps5-headless-smokecore` | Real RetroArch frontend/runloop with null drivers | `retroarch_ps5_headless.elf` |
| `ps5-software-rgui-smokecore` | RGUI and SDL2 software video, Pad input and 48 kHz AudioOut | `retroarch_ps5_software.elf` |
| `host-smokecore-integration` | 600 deterministic libretro frames under ASan/UBSan | Host executable, removed after test |
The target outputs are offline research artifacts. They are not installation
or execution packages and carry no device authority.
## Layering
1. Upstream RetroArch remains the generic frontend, runloop, menu and driver
registry.
2. The PS5 layer adds the platform frontend, compile-time profiles and static
smoke core. The software profile selects existing RetroArch SDL2 drivers.
3. Chimera owns dependency locks, reproducible builds, artifact audits,
manifests, guardrails and a later human-reviewed smoke-test proposal.
## Work sequence
1. Pin the official stable RetroArch release and source archive.
2. Add the PS5 frontend and a warnings-as-errors headless build.
3. Add and host-test a deterministic, contentless static libretro core.
4. Cross-link the real headless RetroArch ELF.
5. Build the pinned PS5 SDL fork with a reviewed overlay.
6. Cross-link RGUI plus software video, input and audio.
7. Perform two clean builds of every successful profile and compare bytes.
8. Audit ELF headers, dynamic dependencies, symbols, relocations, executable
segments, map files, startup/shutdown disassembly, strings and policy
markers.
9. Commit the port to its separate private branch and record only identities,
results and safety evidence here.
## Compile-time safety policy
- networking, achievements, updater, core download and dynamic cores are off;
- no GNM, OpenGL, Vulkan, shaders or hardware libretro context is present;
- configuration reads are blocked by the PS5 frontend;
- no content, core, SRAM, state, config or data path is supplied;
- Salamander config and the normal shutdown save event are compiled out;
- the static smoke core has no filesystem, network, JIT, thread or hot-path
allocation code;
- build rules contain no sender, deploy, install or run action.
Generic RetroArch filesystem functions remain linkable and some libc write
imports remain in the ELFs. The safety claim is limited to the fixed default
launch control flow, not global absence of all write-capable library code.
Hardware behaviour on firmware 9.60 remains unproven.
## Non-goals
Dynamic libretro cores, persistent VFS paths, savestates, SRAM, playlists,
history, screenshots, multiple controllers, rumble, touchpad, gyro, shaders,
GNM acceleration, OpenGL/Vulkan contexts, packaging, installation and device
execution are outside Phase 1.0A.
The five explicit offline source/build/audit/private-push authorizations are
recorded as true for this phase. PS5 connection, device transfer, device
execution, installation, lifecycle, autoload and device writes remain false;
`automatic_retry=false`.