This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user