mirror of
https://github.com/mihawk-99/PS5_RetroArch.git
synced 2026-10-18 23:09:29 -05:00
Replace payload dlfcn hooks with a bounded ELF loader and explicit native
runtime bindings. Separate core RX/R/RW segments, reject unsupported ELF
features, and release failed loads. Guard failed menu selection before
frontend teardown and stop polling drivers after failed initialization.
Read core files through mapped buffers and bounded POSIX reads. Convert
libretro XRGB8888 frames to matching RGBA8 staging/sampled textures so real
content uses the verified Vulkan copy path rather than the RGB565 compute
branch. Keep video_ps5 selectable and preserve frontend/audio/error logs.
Validation: tools/verify.sh passed all five gates (52 tests). Console command:
tools/run-title.sh --no-build --core-test --watch 180, with manual core/game
selection. Eight ELF load/unload cycles and live-menu failure recovery passed;
owner confirmed flawless gameplay. Zero GPU refusals/API failure records and
kernel fatal signals across captured launches. Return-to-menu shortcut and
repeated game unload/reload remain unverified; owner closed/reopened the app.
Evidence: evidence/native-core-loading/{capture,expectation,loader,recovery,
abi,iterations}.json; replay with tools/verify.sh evidence. Accepted title
identity 9b287ca7e0d4a04721c68d30fb88b678a62cc568c1f2d44b75716b464c21b6d5.
No PS5_Vulkan edits by this task; its independently advancing checkout is
not used as a substitute for the accepted title's archive-bound identity.
127 lines
2.2 KiB
JSON
127 lines
2.2 KiB
JSON
{
|
|
"sha256": "fec7dc4eb7ec6cae937ae778f0b59365d8bd7570927a73353424345e13589d9c",
|
|
"bytes": 4836368,
|
|
"elf": "ELF64 x86-64 ET_DYN FreeBSD/PS5",
|
|
"needed": [
|
|
"libkernel_web.sprx",
|
|
"libSceLibcInternal.sprx",
|
|
"libScePosixForWebKit.sprx"
|
|
],
|
|
"libretro_exports": [
|
|
"retro_api_version",
|
|
"retro_cheat_reset",
|
|
"retro_cheat_set",
|
|
"retro_deinit",
|
|
"retro_get_memory_data",
|
|
"retro_get_memory_size",
|
|
"retro_get_region",
|
|
"retro_get_system_av_info",
|
|
"retro_get_system_info",
|
|
"retro_init",
|
|
"retro_load_game",
|
|
"retro_load_game_special",
|
|
"retro_reset",
|
|
"retro_run",
|
|
"retro_serialize",
|
|
"retro_serialize_size",
|
|
"retro_set_audio_sample",
|
|
"retro_set_audio_sample_batch",
|
|
"retro_set_controller_port_device",
|
|
"retro_set_environment",
|
|
"retro_set_input_poll",
|
|
"retro_set_input_state",
|
|
"retro_set_video_refresh",
|
|
"retro_unload_game",
|
|
"retro_unserialize"
|
|
],
|
|
"undefined_symbols": [
|
|
"__error",
|
|
"__isthreaded",
|
|
"atan",
|
|
"atof",
|
|
"atoi",
|
|
"calloc",
|
|
"close",
|
|
"closedir",
|
|
"cos",
|
|
"exp",
|
|
"fclose",
|
|
"ferror",
|
|
"fflush",
|
|
"fileno",
|
|
"fopen",
|
|
"fread",
|
|
"free",
|
|
"fseeko",
|
|
"ftello",
|
|
"ftruncate",
|
|
"fwrite",
|
|
"isspace",
|
|
"isxdigit",
|
|
"ldexp",
|
|
"localtime",
|
|
"log",
|
|
"lseek",
|
|
"malloc",
|
|
"mbstowcs",
|
|
"memchr",
|
|
"memcmp",
|
|
"memcpy",
|
|
"memmove",
|
|
"memset",
|
|
"mkdir",
|
|
"open",
|
|
"opendir",
|
|
"pow",
|
|
"qsort",
|
|
"read",
|
|
"readdir",
|
|
"realloc",
|
|
"remove",
|
|
"rename",
|
|
"setlocale",
|
|
"setvbuf",
|
|
"sin",
|
|
"sincos",
|
|
"snprintf",
|
|
"sprintf",
|
|
"sscanf",
|
|
"stat",
|
|
"strchr",
|
|
"strcmp",
|
|
"strdup",
|
|
"strftime",
|
|
"strlen",
|
|
"strncmp",
|
|
"strncpy",
|
|
"strrchr",
|
|
"strstr",
|
|
"strtod",
|
|
"strtok",
|
|
"strtoul",
|
|
"time",
|
|
"tolower",
|
|
"toupper",
|
|
"vsnprintf",
|
|
"wcslen",
|
|
"wcstombs",
|
|
"write"
|
|
],
|
|
"load_segments": [
|
|
{
|
|
"flags": 5,
|
|
"alignment": 16384
|
|
},
|
|
{
|
|
"flags": 4,
|
|
"alignment": 16384
|
|
},
|
|
{
|
|
"flags": 6,
|
|
"alignment": 16384
|
|
}
|
|
],
|
|
"abi_passed": true,
|
|
"console_loading_verified": false
|
|
}
|