71 lines
3.2 KiB
Markdown
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`.
|