This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
# Phase 1.0R: SDL2main and packaging analysis
|
||||
|
||||
Status: `SOURCE_BOUND_NEGATIVE_RESULT`
|
||||
|
||||
## SDL2main
|
||||
|
||||
Pinned source: `ps5-payload-dev/SDL` commit
|
||||
`0baf4ac49382b537ba449901b5b6d0d189bb1fbb`, file
|
||||
`src/main/ps5/SDL_ps5_main.c`, 438 bytes, SHA-256
|
||||
`55953065bb81ec6f00224d54c19f667336936e55a6805e08b60f6dda126d6648`.
|
||||
|
||||
| Source location | Operation | Timing | Launch-context conclusion |
|
||||
|---|---|---|---|
|
||||
| lines 14-16 | normal `main`, splash hide | before `SDL_main` | duplicate of an action also performed by PS5 `VideoInit`; no registration |
|
||||
| line 17 | call `SDL_main(argc, argv)` | application entry | C entry-wrapper convention only |
|
||||
| line 18 | `sceSystemServiceLoadExec("exit", 0)` | after application return | cannot affect first VideoOut submit |
|
||||
|
||||
No application ID, title ID, LNC function, process creation, VideoOut export,
|
||||
module load, or persistent state appears in this file.
|
||||
|
||||
Pinned PS5 video source: `src/video/ps5/SDL_ps5video.c`, 12,162 bytes,
|
||||
SHA-256
|
||||
`44124546da132ea6e12b1f06a1808d61690c73460a65c3161e8453e8108684b6`.
|
||||
`PS5_VideoInit()` hides the splash at line 225 and opens VideoOut at line 226.
|
||||
It creates the event queue, adds the flip event, sets the flip rate, sets the
|
||||
opaque buffer attributes, and registers buffers. The update path submits
|
||||
`(handle, idx, 1, frame_id)` at line 145. No source-proven app registration or
|
||||
flip-owner acquisition precedes it.
|
||||
|
||||
## Exact RetroArch linkage
|
||||
|
||||
The artifact source is RetroArch commit
|
||||
`12cf1d783c41eb303987e49a5a920805a59ef7a4`. `Makefile.ps5` is 16,122 bytes,
|
||||
SHA-256
|
||||
`6d248aa2b77d5ccea3a8d1de02e939946b7e7764e5b012ef513c1eed4dcc6e27`.
|
||||
It links static `libSDL2.a` plus `SceSystemService`; it does not link
|
||||
`libSDL2main.a`.
|
||||
|
||||
The exact M evidence identities remain:
|
||||
|
||||
| Evidence | Size | SHA-256 |
|
||||
|---|---:|---|
|
||||
| `retroarch_ps5_write_diag.elf` | 1,845,208 | `c99a0856309a357ad2667d89b4924e4063ad214cae09c8a419457b0732f583cd` |
|
||||
| linker map | 637,728 | `6768ffc7267b9b362c3b953571e5dfeed1e70004a3e19f41ef500c3f26272719` |
|
||||
|
||||
The map binds `_start` to SDK `crt1.o` and binds the PS5 video functions to
|
||||
`libSDL2.a(SDL_ps5video.c.o)`. Searches for `SDL_ps5_main`, `libSDL2main`, and
|
||||
`sceSystemServiceLoadExec` are empty. Thus the tested artifact omitted the
|
||||
wrapper but not SDL's pre-VideoOut splash-hide call.
|
||||
|
||||
## PacBrew and official port packaging
|
||||
|
||||
PacBrew commit `c2abcfcb60f569128abd0e8e70ad03a67bee5ea7` builds and installs
|
||||
libraries and ordinary executables. Its SDL2 recipe fetches the same SDL fork
|
||||
without a pinned source checksum and installs the resulting SDK files.
|
||||
PacBrew recipes do not create PS5 application IDs or define the process that
|
||||
runs an installed executable. PacBrew is therefore `PACKAGE_METADATA_ONLY`,
|
||||
not a launch-context implementation.
|
||||
|
||||
The bounded official source set gives these results:
|
||||
|
||||
| Project | Relevant observation | Classification |
|
||||
|---|---|---|
|
||||
| LakeSnes | links SDL2main; `homebrew.js` returns path/args; README uses `hbldr` via shsrv | `SDL2MAIN_USER_LAUNCHER_PARTIAL_UNBOUND` |
|
||||
| pemu | PS5 packages use `homebrew.js`; its explicit `LoadExec("exit")` is guarded for PS4 only | `SDL_USER_LAUNCHER_PARTIAL_UNBOUND` |
|
||||
| FBNeo, Mednafen, DevilutionX, EDuke32 | PacBrew builds/install ordinary SDL executables | `PACKAGE_METADATA_ONLY` |
|
||||
| yquake2 | SDL consumer; no exact PS5 launched artifact/process contract | `SDL_CONSUMER_LAUNCH_CONTEXT_UNPROVEN` |
|
||||
|
||||
A `homebrew.js` object that returns `path` and `args` is not application
|
||||
registration. A README command naming `hbldr` is not source proof of how
|
||||
`hbldr` creates a process or which active-app/display state exists. No
|
||||
official-port success claim is used as firmware-9.60 hardware evidence.
|
||||
|
||||
## Fail-closed outcome
|
||||
|
||||
The exact pre-submit effect contributed by SDL2main is
|
||||
`EARLIER_HIDE_SPLASH_ONLY`. The exact post-return effect is
|
||||
`LOAD_EXEC_EXIT`. Neither is a source-proven correction for the observed
|
||||
submit failure. The launcher and active-app hypotheses remain unproven until
|
||||
the exact `hbldr`/`shsrv` implementation and launch provenance are bound in a
|
||||
separate offline phase.
|
||||
Reference in New Issue
Block a user