57 lines
2.7 KiB
Markdown
57 lines
2.7 KiB
Markdown
# Phase 1.0A PacBrew and PS5 SDL analysis
|
|
|
|
## Identities
|
|
|
|
| Source | Identity |
|
|
| --- | --- |
|
|
| PacBrew repository | `c2abcfcb60f569128abd0e8e70ad03a67bee5ea7` |
|
|
| PS5 SDL fork | `0baf4ac49382b537ba449901b5b6d0d189bb1fbb` |
|
|
| SDL reported revision | `SDL-2.30.12-g0baf4ac4` |
|
|
| SDL license | Zlib |
|
|
|
|
The PacBrew SDL2 recipe builds the PS5 fork and enables OpenGL and LOADSO.
|
|
Those two options are intentionally disabled here. PacBrew recipes were also
|
|
reviewed for SDL2_image, SDL2_mixer, SDL2_ttf, freetype, zlib, libpng, OpenAL,
|
|
elfldr and representative emulator ports. None is needed by the two Phase
|
|
1.0A binaries beyond SDL2 itself.
|
|
|
|
## Native backend inventory
|
|
|
|
| Area | PS5 SDL implementation | APIs/dependencies | Phase 1.0A use |
|
|
| --- | --- | --- | --- |
|
|
| Video | Software surface, tiled direct-memory buffers, double buffer, VideoOut flip/equeue | `SceVideoOut`, kernel equeue/direct memory, user/system service | Enabled |
|
|
| Render | SDL software renderer targeting the window framebuffer | SDL core software renderer | Enabled |
|
|
| Input | Up to four PS5 Pad users, buttons, axes, connect/disconnect polling | `ScePad`, `SceUserService` | Enabled for one controller |
|
|
| Audio | 48 kHz, mono/stereo, S16 or F32, bounded 256-2048 sample buffers | `SceAudioOut` | Enabled, RetroArch requests stereo |
|
|
| Keyboard/IME | PS5 keyboard and IME dialog | `SceKeyboard`, `SceImeDialog` | Removed by reviewed overlay |
|
|
| Filesystem | PS5 implementation exists | user service/filesystem | Disabled |
|
|
| OpenGL/OSMesa | Optional source exists | Mesa/OSMesa | Disabled |
|
|
| LoadSO | Optional | dynamic loader | Disabled |
|
|
|
|
## Reviewed overlay
|
|
|
|
The fork carries only a patch, not SDL source. The patch:
|
|
|
|
- removes keyboard/IME initialization and event pumping;
|
|
- replaces twelve freshly created worker threads per frame with a checked
|
|
single-thread tile copy;
|
|
- rejects non-positive or non-tile-aligned framebuffer dimensions;
|
|
- passes a 100,000 microsecond timeout to `sceKernelWaitEqueue`;
|
|
- propagates copy and timeout errors to SDL.
|
|
|
|
SDL is configured with video, render, events, joystick, threads, timers and
|
|
audio on; filesystem, file, loadso, OpenGL, Vulkan, haptic, sensor, locale,
|
|
misc, libsamplerate, disk audio and dummy audio are off.
|
|
|
|
## Classification
|
|
|
|
`PS5_SDL_PARTIAL_CANDIDATE`
|
|
|
|
The source contains real PS5 video, controller and audio backends and the
|
|
software RetroArch profile links them. It is not `FULL` because firmware-9.60
|
|
runtime behaviour, VideoOut ownership, error cleanup, disconnect recovery,
|
|
audio underrun/overrun reporting, exact flip timeout semantics and shutdown
|
|
after partial initialization have not been verified on hardware.
|
|
|
|
Static build and host audits are not runtime evidence.
|