mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
The firmware version comes from the SDK 0x13600007 recorded in each module's module-param segment. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_013XFS3FUfBtqCVfwmBrRQ6q
1.6 KiB
1.6 KiB
libSceJpegDec technical debt
Functional
- libSceJpegDec: work-memory size, alignment, creation checks, image-info fields, progressive coefficient-buffer capacity, row-buffer capacity and scaled dimensions are recovered from the native module. The host still allocates its decoder storage separately rather than using the guest work and coefficient regions. Malformed-header diagnostics and output mutation on failure are not fully matched.
- sceJpegDecDecode: decode mode 1 and pixel formats 9, 10 and 11 remain unimplemented and throw. Exact decoded pixel values and color conversion are not verified against the native decoder.
- sceJpegDecDecodeWithInputControl (libSceJpegDec): input is requested from the callback in 2048-byte blocks until the frame header (parse) or the end-of-image marker (decode) is buffered. libSceJpegDec.sprx (firmware 13.60, read from disassembly, not measured on a console) refills its 2 KiB buffer whenever fewer than 0x3F0 bytes are left, so the callback can be called a different number of times. Decode mode 1, pixel formats 9 to 11, an unlisted parse down scale, decoding without a parse and decoding at another down scale than the parse throw. A stream that ends before the frame header, or whose buffered bytes can no longer form one, returns 0x80650010, as
sceJpegDecParseHeaderdoes; the console code and how far it reads are not known. Streamed bytes are kept in host memory, not in the work memory; a stream whose work memory is freed withoutsceJpegDecDeletestays there.