mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
The console's libSceLibcInternal.sprx (measured on firmware 12.70 in #7549) prints %p as bare lowercase hex without a 0x prefix, prints 0 for a null pointer, ignores #, + and the space flag, counts only the digits towards the width, pads with spaces on the left (on the right for - and with zeros for 0 when there is no precision), treats the precision as the minimum number of digits, prints nothing for a null pointer under %.0p, and accepts the l length. FormatPointer instead followed FreeBSD and printed 0x..., which is what a title does not see on hardware. FormatPointer now prints the digits alone, the narrow Windows formatter accepts %lp, and Linux routes %p and %lp to the guest formatter instead of glibc, which prints the FreeBSD form and (nil) for a null pointer. The wide family still refuses %lp, because the console's swprintf was not measured with it; it returns -1 as it does for any other conversion the formatter rejects. The debt note records the pointer cases the console was not measured with and what the Linux routing means for a format that mixes %p with a refused conversion.