mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-18 23:09:29 -05:00
The core is rebuilt from the v1.20.4 release as one patch (patches/ppsspp/ps5-port.patch; tools/build-ppsspp.sh, PPSSPP_DEV=1 builds the tree as it stands). Vulkan through the frontend's device (no GL, no GLEW), the x86-64 JIT, and FFmpeg 3.0.2 cross-built from the tree's own submodule for video. In the core: executable memory is mapped read-write then made executable (the console's working order), guest memory is an anonymous shared object mapped into a 4 GiB reserved range at 0x6_0000_0000 (outside the GPU's window at high word 2), the fault handler reads the console's machine context six words past the SDK header's, and the libretro surface path is VK_KHR_display. In the title, what a core needs that the console did not give it: - core thread creation and thread-specific data go through title frames (src/core_threads_ps5.cpp): libkernel resolves the caller to a module and faults on the core's anonymous mapping. Core threads get a 2 MiB minimum stack (glslang's parser overflowed the default). - a core allocates from an overflow heap in direct memory first (src/overflow_heap.c, dlmalloc 2.8.6 MIT, 32-byte aligned as the target's default new alignment): PPSSPP filled libc's small heap, after which libkernel's own condition variables and sceAgcInit failed. - gmtime_r and arc4random shims (src/libc_shims.c). - a crash report in trace.txt (rip, rsp, return address, stack words). - patch 0087: the log file is line-buffered, so a fault keeps its lines. Console: GoW boots, loads, plays its intro video and menu and renders its real-time intro cutscene correctly at 60 FPS content; the menu's background still renders wrong (driver depth sampling is the lead). Driver ../PS5_Vulkan 8d61168. verify.sh PASS (patch count 193 -> 194). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>