Files
chimera-gfx-Public/docs/retroarch/phase-1.0a-port-plan.md
T
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

3.2 KiB

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.