Files
AnyPS5/docs/dev/debt/libSceAudiodec.native.md
T
zaryabzip 91999d11d5 fix(libSceAudiodec.native): export GetAjmContext and UnregisterCodec from the native module only
On the console only libSceAudiodec.native exports sceAudiodecGetAjmContext
and sceAudiodecUnregisterCodec; libSceAudiodec does not. They move out of
the source shared by both libraries into the native module, and a new
test checks that libSceAudiodec no longer exports them.
2026-10-31 07:47:12 +05:00

2.0 KiB

libSceAudiodec.native technical debt

Unknown function info

  • libSceAudiodec.native pending exports - 14 named callable exports are listed in the PS5 3.20 export table and were cross-checked against the same module in PS5 firmware 13.60. Their signatures and behaviour are unverified; the declarations use the no-parameter unknown-signature convention and throw through NotImplemented_nid_no_patch.
  • sceAudiodecUnregisterCodec (libSceAudiodec.native) - throws on every call. @BunnyFl's firmware 13.42 run of libSceAudiodec.native.sprx under an emulator with imports stubbed gives (context, 32-bit type), a null context returning 0x807F0002 and an unknown type 0x807F0001, but every accepted type ends in an Ajm service call whose result it returns. Its parameterless int declaration is an import placeholder, not a verified prototype. Only this module exports it on the console, as the 13.60 inventory and the 13.42 module agree
  • sceAudiodecGetAjmContext (libSceAudiodec.native) - (context, uint32_t* ajmi, uint32_t* ajm) from the same 13.42 run, not measured on a console: a null context returns 0x807F0002 and writes nothing, otherwise the two 32-bit ids at offsets 0 and 4 of the context go to the outputs that are not null and the call returns 0, with no lock, no service call and no check that sceAudiodecInitialize filled the context. Only this module exports it, so libSceAudiodec does not