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

139 lines
3.3 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,
"source_revision": "7a12d6d4b9acb14c0ae62c9166b6a2f3d08007f6",
"source_archive_sha256": "5cbf639e527fb586bf33e14d59037eab35f78f45154e0b79c784fff474c3bc37",
"info_revision": "5a74858ab2f7a50cebb5a6330895bc38899531c0",
"info_sha256": "64444beb8268d3a57d53a45564c55049f39ff621315401fef86e82f3849042d6",
"sdk_compiler_wrapper_sha256": "3dcf3139662db7b0f796c2073bc8f673a5557e48bc24d2e413896d33847a69db",
"port_inputs_sha256": {
"tooling/mgba/CMakeLists.txt": "71662780c9e21aa33f50a64d3302380fd5aef18e98f4881777fef9a38545250e",
"tooling/mgba/ps5-toolchain.cmake": "13d926e1c03d22eb111e7edc435cebbeeeb0405b43342a762d0023d94edb787c",
"tooling/native/ps5-core.ld": "5ffe0f0e99e23de5245afb46fa6dfda6dd860b53d942a5fe2f06eaf9e520df42",
"patches/mgba/native-locale-type.patch": "0090a7e1370e07fc795d429e812675bb7384a6234c7c8ab8f43169148c416ee9",
"patches/mgba/native-config-path.patch": "aff4c2795949269c788843406c334859c26967b1e64a34897ae852b42f663ac9",
"patches/mgba/native-xrgb-output.patch": "3e81cf749efa9a5e4a20ce7abce86e839425064d9a7250bdabe1a2e7c466666d",
"tooling/mgba/ps5-video.h": "df613d43609e52dca3d37b20803f316a3588fa2f9d7ef3221d9b3e4d49cba326"
}
}