Files
chimera-gfx-Public/docs/retroarch/phase-1.0b-smoke-candidate-design.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

82 lines
3.4 KiB
Markdown

# Phase 1.0B bounded RetroArch smoke candidate
Status: `BUILT_WITH_DECLARED_RISKS`; offline evidence only. Transfer,
installation and execution are not authorized.
## Scope
The candidate is the real RetroArch v1.22.2 frontend and runloop from the
separate `chimera-retroarch` fork. It statically binds `chimera_smokecore`,
uses the pinned PS5 SDL2 software framebuffer, and initializes VideoOut, one
Pad device and stereo AudioOut. It requires neither content nor a
configuration file. It is not a mini-frontend and contains no dynamic core.
The permitted existing smokecore software image is selected, so RGUI/menu
and their content browser are compiled out of this bounded variant.
The logical profile is `ps5-software-rgui-smoke-bounded`; the make selector is
`PS5_PROFILE=software-smoke`, and the output label is
`retroarch_ps5_software_smoke.elf`.
## Compile-time closure
Enabled:
- real RetroArch frontend and runloop;
- static Chimera smokecore, 320 x 240 XRGB8888 at 60 fps;
- SDL2 software video with double-buffered PS5 VideoOut;
- one SDL2 PS5 Pad and 15% deadzone;
- SDL2 PS5 48 kHz stereo AudioOut;
- on-screen bounded status record;
- 60,000 ms and 3,600-frame shutdown gates;
- post-teardown process `_Exit`;
- VFS and link-time libc write firewalls.
Disabled or garbage-collected from the final ELF:
- dynamic cores, content browser data, playlists/history, databases;
- networking, updater, achievements and command interfaces;
- screenshots, recording, shaders, filters and compressed content;
- SRAM, savestates, remap/autoconfig/config persistence;
- keyboard, IME, mouse, sensor, haptic, rumble and lightbar paths;
- GNM, OpenGL, Vulkan, RetroArch dynamic-core/module loading, installation,
autoload and retry.
SDL's dynamic API and runtime assertions are disabled in its smoke-specific
static build. The pinned SDK CRT remains a necessary startup component: it
resolves its own runtime loader primitives and may conditionally load
`libSceSysmodule`. This source-bound startup behavior is declared separately
and is not confused with a RetroArch dynamic-core path.
`HAVE_CONFIGFILE=0`, `HAVE_MENU=0` and `HAVE_RGUI=0` remove their read,
browser and save paths. Independently, the PS5 frontend sets
`RARCH_CTL_SET_BLOCK_CONFIG_READ`, provides no config path, and the smoke
firewall rejects every attempted write.
## Visible record
The static core draws `CHIMERA RETROARCH PS5 SMOKE TEST`, a build/manifest
label, phase, monotonic elapsed time, frame count, VideoOut and framebuffer
details, raw button/stick state, AudioOut counters, core state, shutdown
reason, first sticky error, write-firewall state and both hard limits.
Phases are stable `S00` through `S15`; errors are stable `E000` and
`E101` through `E123`. `S07 RUNNING` and a final rendered
`S08 SHUTDOWN_REQUESTED` are expected on screen. `S09` through `S15` occur
during teardown after the final present and therefore remain in the
in-memory record rather than being promised as visible frames.
## Bounded control
The first condition wins:
1. Options held for 2,000 ms;
2. 60,000 monotonic milliseconds;
3. 3,600 core frames;
4. a sticky runtime/write-firewall failure.
The pinned SDL mapping maps the PS5 Options bit to SDL Back, which RetroArch
exposes to the core as `RETRO_DEVICE_ID_JOYPAD_SELECT`. Shutdown is requested
once. There is no retry, second run or automatic extension.
No host test or static audit in this phase is hardware evidence.