# 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.