2.8 KiB
Phase 1.0A upstream analysis
Selected RetroArch base
| Field | Value |
|---|---|
| Official repository | https://github.com/libretro/RetroArch |
| Stable tag | v1.22.2 |
| Commit | 69a4f0ea1e8aaf442ae4858f2e7f2b31a1776576 |
| Tree | 33babf9eb7699b5d571a3063ea21c3e488c159fe |
| Commit date | 2025-11-20T00:17:08Z |
| Source archive | official GitHub tag archive |
| Archive size | 71629881 bytes |
| Archive SHA-256 | 245ef18c8fa8fbd9fbb5eb25cf43e17c6aace2f95c1ed99873cbd794012bb232 |
| License | GPL-3.0-or-later (COPYING and source notices) |
| Acquisition date | 2026-07-19 |
The local fork starts at that exact commit. Its upstream fetch remote names
the official repository and its push URL is disabled. Project pushes are
restricted to the private Gitea origin.
Areas inspected
The analysis covered Makefile.common, Makefile.griffin,
Makefile.orbis, frontend and driver registries, null/dummy drivers, RGUI,
static core glue, config/path startup, task queues, time/sleep, threads,
dynamic loading, VFS and logging. Reference platform implementations included
Orbis, Vita, Switch, PSP and null.
Relevant upstream mechanisms:
frontend_ctx_drivers[]selects the first compiled platform frontend;- video, audio and input arrays fall back to their null drivers;
Makefile.commonconditionally adds SDL2 video, input/joypad and audio;- a static build resolves the global libretro API symbols at link time;
- configuration defaults derive driver names from compiled feature macros;
- RGUI is the smallest software-oriented menu driver;
- generic file/VFS/task code is widely shared even when persistent features are disabled.
Fork delta
The port adds:
Makefile.ps5with explicit headless and software profiles;frontend/drivers/platform_ps5.c;cores/chimera_smokecore/;- host tests and PS5 build validation;
pkg/ps5/for the pinned SDL build and reviewed overlay;- PS5 port documentation.
Small generic-source changes register the platform, block static Salamander config I/O and normal shutdown saves for this profile, and add headers or fallback locals required by the unusually small feature matrix. No proprietary header, NID, syscall, firmware offset or device path is introduced.
Static and dynamic core decisions
The static smoke core is linked into both ELFs and exports the real libretro entrypoints consumed by RetroArch. Dynamic loading is deliberately disabled: there is no proven native PS5 shared-core file/relocation/unload contract yet. A later milestone must separately specify format, symbol binding, executable memory, directory/VFS policy, ABI compatibility, error cleanup and unload.
No additional libretro-samples acquisition was needed because the required
deterministic input, video, audio and no-content behaviour was implemented in
the small GPL-compatible Chimera core and verified by a host harness.