Files
AnyPS5/docs/dev/debt/libSceAcm.md
T
2026-11-03 05:26:34 +01:00

6.6 KiB

libSceAcm technical debt

Silent stubs

  • libSceAcm batches execute as silent no-ops, and do not execute encoded panner, FFT, reverb and priority commands (the priority job layout and checks are read from libSceAcm.sprx, firmware 13.40, not measured on a console).

Unknown function info

  • Additional ACM exports - the eleven name/NID pairs below are defined exports in the firmware 13.60 inventory. Their ABIs and behaviour are unknown. Parameterless int declarations are import-resolution placeholders, not established signatures; every call throws NotImplemented_nid_no_patch. No audio-chain, reverb or telemetry behaviour is implemented.
Name NID
sceAcmChain_Audio3dPO1_Clear +o6KUwnCB+0
sceAcmChain_Audio3dPO1_RenderObject 0P2PH7lou4g
sceAcmChain_Audio3dPO1_Activate 5pi7bGbV7JM
sceAcmChain_Audio3dPO1_Output 7EGMt3d6RAk
sceAcm_ConvReverb_SharedIr_2 PVx9oQUaDdk
sceAcmChain_Audio3dPO1_RenderAmbisonicsChannel ZViifnXeAUc
sceAcmChain_Audio3dPO2_Activate aUfAPcEySHU
sceAcmChain_Audio3dPO1_RenderPassthroughObject eU9FRHNi+xU
sceAcmChain_Audio3dPO2_RenderDelay p23f04CznHs
sceAcmGetTelemetry vQb-lO9SzEI
sceAcm_ConvReverb_SharedInput_2 wM41Cc+ieog
  • libSceAcm context creation, batch submission and waiting use host identifiers instead of the native device and ioctl requests. Batch identifiers, timeout handling, DSP scheduling and service-side errors remain unimplemented. Panner source parameter and matrix payloads are forwarded by the native library; their DSP interpretation remains unverified.

  • sceAcm_ConvReverb_SharedIr (libSceAcm) - its name and NID are in the PS5 3.20 export inventory, but no credible prototype was found. It is declared without parameters solely to resolve known imports; this is not an ABI claim

  • sceAcm_FFT and sceAcm_IFFT encode their jobs as libSceAcm.sprx does on firmware 13.40, where both exports call one encoder with a direction flag (read from the module's code and compared with that code run on x86-64, not measured on a console). PPSA14632 imports sceAcm_FFT; no known title imports sceAcm_IFFT. The DSP meaning of the job words is unverified.

  • sceAcmBatchJobNotification is a parameterless pending declaration for import resolution. Its signature and behavior are unverified; it throws through NotImplemented_nid_no_patch.

  • sceAcm_ConvReverb_SharedInput encodes the reverb jobs as libSceAcm.sprx does on firmware 13.40 (read from the module's code and compared with that code run on x86-64, not measured on a console). PPSA01317 calls it during boot with 512-sample blocks. Its input stage appends one sceAcm_FFT job of twice the block size (256 points for 128-sample blocks). The meaning of the reverb descriptor's block metadata for the DSP is unverified.

Additional callable exports

  • Additional callable exports - 5 entries present in both version-labelled images are import-resolution declarations only. Neither label independently authenticates retail firmware provenance. Parameter lists, return types and behavior are unverified; parameterless int declarations are placeholders, not verified ABI contracts. Every entry throws through NotImplemented_nid_no_patch. Unidentified names use literal NID aliases. No runtime functionality is implemented. Data exports require separate layout and ownership analysis. Identified candidate names match their NIDs in the public symbol database or supplemental catalog.
Name NID
Unknown 9+f3tPdeyP0
Unknown DvsnlQr4yyk
Unknown PLNywpi1zR4
Unknown YpYvibqaqz0
Unknown ngDRON91+-Y
  • Unnamed firmware 13.42 exports - 44 function NIDs that firmware 13.42's system/common/lib/libSceAcm.sprx exports (read from its export table) are import-resolution declarations only. The firmware 13.60 inventory lists the same NIDs as defined function exports with no name, and none is in the public symbol database. Names, parameter lists, return types and behavior are unknown; parameterless int declarations are placeholders, not verified ABI contracts, and every entry throws through NotImplemented_nid_no_patch.
Name NID
Unknown +GEfQURRfNQ
Unknown +v8StWu8ce0
Unknown 05vZ-d35iOU
Unknown 29f5DNJTpME
Unknown 2IuXRVnP+E4
Unknown 3odf3m8-sTA
Unknown 3ukt3-zPLo4
Unknown 3v8OJlWuVoI
Unknown 7aoLbYKdti0
Unknown ADVHzAQRzvI
Unknown BKv16PL+en4
Unknown FcV33YZNrZY
Unknown HRzaZ03MB4c
Unknown Jd95if4IDsc
Unknown KUQB9006te4
Unknown KeUzwnv2znk
Unknown LOAWrRdCsuI
Unknown NLMqc049bmY
Unknown Nir1S45p+k0
Unknown OXsTjBOwUcs
Unknown QGrI0Du9IYs
Unknown RJGnXst7vUQ
Unknown RbJwbKtBy48
Unknown S+W03U2x0VU
Unknown UK03t9UoOWU
Unknown UnPujhtY1e4
Unknown VG31URxchBE
Unknown Zea6TpIIcuw
Unknown cMDARlsd0IU
Unknown cQlAR2dYW1U
Unknown dLDAIKe6QPI
Unknown l2XvCIV50-Q
Unknown lbezsUkPojs
Unknown mXntN6cqsj4
Unknown n4spvEiudjI
Unknown ozmQIEUnkNE
Unknown p8H6QiaoXnY
Unknown reqnnLJj9lo
Unknown sAxJPDwmsBg
Unknown sSI1ZHQh9as
Unknown sYPAONMjsz4
Unknown sn178+KL4FI
Unknown vsxwtmT9mbY
Unknown zzN06JMvPFc