82 lines
3.4 KiB
Markdown
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.
|