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

8 lines
2.0 KiB
Markdown

# libSceAudiodec.native technical debt
### Unknown function info
- [libSceAudiodec.native pending exports](../../../core/libs/prx/libSceAudiodec.native/Export.cpp) - 14 named callable exports are listed in the [PS5 3.20 export table](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceAudiodec.native.c) 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](../../../core/libs/prx/libSceAudiodec.native/Export.cpp) (libSceAudiodec.native) - throws on every call. @BunnyFl's [firmware 13.42 run](https://github.com/boykopovar/AnyPS5/issues/13680#issuecomment-6537745276) 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](https://github.com/xdCloudy/PS5-13.60-Function-Stub-Library/blob/bfec40deb4c47a17d7603ee2bc79aa6862c0c56b/data/firmware-13.60/libsceaudiodec-2dbab67864.jsonl) and the 13.42 module agree
- [sceAudiodecGetAjmContext](../../../core/libs/prx/libSceAudiodec.native/Export.cpp) (libSceAudiodec.native) - `(context, uint32_t* ajmi, uint32_t* ajm)` from the same [13.42 run](https://github.com/boykopovar/AnyPS5/issues/13680#issuecomment-6537745276), 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