This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
# 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`.
|
||||
Reference in New Issue
Block a user