Files
AnyPS5/docs/dev/debt/libSceAppContent.md
T
juanpimg 1f1add461e feat(prx): declare the missing PS5 3.20 system exports in the next tier of libraries
AnyPS5 resolves a title's imports by NID, so a title that imports a system
function that no AnyPS5 library provides fails to load with an unresolved
import. This declares 222 such exports across 11 PS5 system libraries that
AnyPS5 implements but does not provide.

Each declaration calls NotImplemented_nid_no_patch and returns 0; none of
them implements the function. A declaration with a credible prototype uses
it and cites the source with a pinned commit; the rest are declared without
parameters, which resolves the import without making an ABI claim. The
technical-debt files record the limitation per library.

The list is the intersection of the export table of the console's library
(function symbols only), the pinned aerolib names and the functions not yet
defined anywhere in the repo. Every name recomputes to its NID with
tools/nid_names.py.

libSceAudio3d and libSceVoice are left out because #8331 declares them.
2026-10-20 23:22:17 +02:00

5.3 KiB

libSceAppContent technical debt

Unknown function info

Functional

  • Additional content (libSceAppContent) is not installed or mounted: sceAppContentAddcontMount answers NOT_FOUND for every entitlement label and sceAppContentAddcontUnmount for every mount point, as no add-content mount is ever handed out; sceAppContentGetAddcontInfo answers DRM_NO_ENTITLEMENT for every label and sceAppContentGetAddcontInfoList reports 0 entries; sceAppContentAddcontEnqueueDownload answers PARAMETER for a null label and NOT_FOUND otherwise, since no download is ever queued; sceAppContentAddcontDelete answers PARAMETER for a null label and NOT_FOUND otherwise, since no additional content is ever installed. sceAppContentGetAddcontDownloadProgress answers PARAMETER for a null label or progress and NOT_FOUND otherwise, as dlc_emu does for a label that is not installed additional content, and never writes the progress. Its 16-byte layout (DataSize, then DownloadedSize, both 64-bit) follows SharpProspero and is unused here. The signatures of sceAppContentAddcontEnqueueDownload and sceAppContentGetAddcontDownloadProgress follow SharpProspero, and the signature of sceAppContentAddcontDelete follows dlc_emu; dlc_emu is not a console measurement and no console source gives the error codes, so the signatures and the error codes are unverified
  • Temporary app-content storage tracks one /temp0 mount, preserves its files on unmount, and rejects new path resolutions until remount. Mount, format, space-query and unmount errors follow fpPS4; the pointer ABI is also declared by SharpProspero. Existing open host descriptors remain usable after unmount; console behaviour with open files is unverified. Host filesystem failures still throw.