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

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.