Files
chimera-gfx-Public/docs/retroarch/phase-1.0a-upstream-analysis.md
T
Chimera GFX release export fee37cd9b5
phase0-ci / build-and-audit (push) Failing after 1m41s
Publish Chimera GFX source
2026-09-03 02:53:36 +02:00

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.common conditionally 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.ps5 with 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.