mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 00:22:57 -05:00
Ruffle (PPSA68091), VLC (PPSA85300) and XPSemu (PPSA97358) read app0/imports.txt, whose import slot addresses assume the executable's lowest ELF load page at 0x400000, and dereference them at once. macOS output always placed that page at 0x140010000, so all three fault on their first slot read. Linux and Windows have --linux-fixed-base and --windows-fixed-base for this; macOS had no equivalent. --macos-fixed-base <address> builds the load image so that the lowest ELF load page is at the address, as --windows-fixed-base does. The Mach-O header takes the 64 KiB below it and __PAGEZERO ends there. The executable is MH_EXECUTE without MH_PIE, so dyld does not slide it. The address must be 64 KiB aligned, from 0x20000 through 0x7fffffff0000, and an image ending past the macOS user address space is refused.