AnyPS5/docs/dev/debt/libSceZlib.md

1.4 KiB

libSceZlib technical debt

Functional

  • libSceZlib completes RFC1950 decompression during submission and supports one outstanding request, null-timeout waits and one result retrieval. Timed waits, multiple outstanding requests, repeated retrieval and finalization with an unread result throw. The 64-bit initialization length and 64 KiB output limit with 2 KiB destination alignment follow SharpProspero; the PS4 initialization length is 32 bits. shadPS4 also requires the output length to be a multiple of 2 KiB and returns 0x81120016 for invalid arguments; this implementation accepts any length up to 64 KiB (SharpProspero documents only the pointer alignment) and throws on invalid arguments. Scratch memory is not used, and its firmware size/alignment requirements are unknown. The initialization errors follow SharpProspero; malformed/checksum/truncated streams report 0x811200FF and insufficient output 0x8112001C as in shadPS4. PS5 error precedence, scheduling, completion selection, result consumption and cancellation are unverified. The payload SDK's FreeBSD kernel z_stream and host errno are not this library's ABI.