Files
Mihawk d2a91b395b Port native mGBA and fix core/menu lifecycle rendering
Build pinned mGBA with this PS5 SDK, official metadata and both GB/GBA engines.
Support validated C initializer arrays, native directory/time imports and an
explicit config path. Map large title/core allocations so GBA archives load.
Correct mGBA callback colours and cached frame ownership, crop padded core
textures during presentation, and use the native shell exit after cleanup.

Verified: bash tools/verify.sh (format, unit, build, integration, evidence;
58 tests), then bash tools/run-title.sh --no-build --core-test=mgba --watch 180.
Owner confirms GB/GBC/GBA loading, correct colours/native Quit, and clean menu
and next game. Final capture has zero Vulkan refusals, GPU failure records or
kernel fatal-signal reports; normal frontend exit occurred before window end.

Evidence: evidence/mgba-native/{capture,expectation,iterations,build,abi}.json,
loader/recovery reports and exact linked-driver hashes. Replay with
bash tools/verify.sh evidence. Final build identity:
82024b89e74bbad4ad2ce2e2916d1a49baf26ac325fef20fc71a2c168b862337.

Patch count is deliberately 139: archive diagnostics, menu/cache ownership and
padded-source sampling edits. PS5_Vulkan was not modified. Saves/states,
long-run timing and a fresh FCEUmm/XMB transition matrix remain unverified.
2026-09-19 16:00:01 -04:00

125 lines
2.2 KiB
JSON

{
"sha256": "feb1922c9fe9dd3424b42f538a80362d0574b4dfa0134980d3fd14c52593cff6",
"bytes": 3255056,
"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",
"abort",
"calloc",
"cbrtf",
"close",
"closedir",
"div",
"exp2f",
"fclose",
"fgets",
"fopen",
"free",
"fstat",
"fsync",
"ftruncate",
"futimes",
"gettimeofday",
"hypotf",
"isspace",
"localtime",
"localtime_r",
"lseek",
"malloc",
"memcmp",
"memcpy",
"memmove",
"memset",
"mkdir",
"mktime",
"mmap",
"msync",
"munmap",
"open",
"opendir",
"printf",
"putchar",
"qsort",
"read",
"readdir",
"realloc",
"realpath",
"remove",
"rewinddir",
"setlocale",
"sincosf",
"snprintf",
"sprintf",
"sscanf",
"stat",
"strcasecmp",
"strcat",
"strchr",
"strcmp",
"strcpy",
"strdup",
"strftime",
"strlcpy",
"strlen",
"strncat",
"strncmp",
"strncpy",
"strrchr",
"strtof",
"strtol",
"strtoul",
"time",
"vprintf",
"vsnprintf",
"write"
],
"load_segments": [
{
"flags": 5,
"alignment": 16384
},
{
"flags": 4,
"alignment": 16384
},
{
"flags": 6,
"alignment": 16384
}
],
"abi_passed": true,
"console_loading_verified": false
}