mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 08:33:12 -05:00
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.
6.4 KiB
6.4 KiB
libSceRazorCpu technical debt
Silent stubs
- sceRazorCpuPushMarker (libSceRazorCpu) - signature (label, color, flags) from SharpProspero, the same as sceRazorCpuPushMarkerStatic's except that the label is copied; it does nothing without a capture and returns 0
- sceRazorCpuSync (libSceRazorCpu) - the
int(void)signature and its meaning, an unnamed frame-boundary event, come from SharpProspero. Without a capture there is no event to record, so it does nothing and returns 0, like the othersceRazorCpu*markers here and the shadPS4 stub. PRAGMATA (PPSA02530) continues on 0; the console's result with no capture attached is unverified - sceRazorCpuDisableFiberUserMarkers, sceRazorCpuBeginLogicalFileAccess and sceRazorCpuEndLogicalFileAccess (libSceRazorCpu) - signatures and meanings from SharpProspero (fiber markers, logical file access): the first makes later markers carry the thread instead of the fiber, the other two attribute the thread's file reads and writes to a named logical file. Both only change what a capture records, so without one they do nothing, and the two file-access calls return 0 for any arguments. Whether the console checks the operation (0 read, 1 write) or an unmatched end without a capture is unverified
- sceRazorCpuInitDataTags, sceRazorCpuShutdownDataTags, sceRazorCpuTagBuffer, sceRazorCpuTagArray, sceRazorCpuResizeTaggedBuffer and sceRazorCpuUnTagBuffer (libSceRazorCpu) - signatures from SharpProspero, which documents them as the data sampler's buffer-tag table and the tags in it. Without a capture there is no data sampler, so they neither read the caller's storage nor keep the tags, and return 0 for any arguments; the console's errors for a tag before
sceRazorCpuInitDataTags, an unknown buffer or a full table are unverified
Unknown function info
- sceRazorCpuFiberLogNameChange, sceRazorCpuFiberSwitch, sceRazorCpuGpuMarkerSync, sceRazorCpuInitializeGpuMarkerContext, sceRazorCpuInitializeInternal, sceRazorCpuSetPopMarkerCallback (libSceRazorCpu) - the list is the intersection of the export table of the console's libSceRazorCpu (function symbols only), the pinned aerolib names and the functions not yet defined anywhere in the repo. No credible prototypes were found; they are declared without parameters solely to resolve known imports, not as an ABI claim, and callers must not call them until signatures are verified.
- sceRazorCpuSetPushMarkerCallback, sceRazorCpuSetPushMarkerStaticCallback, sceRazorCpuStartCaptureInternal, sceRazorCpuStopCaptureInternal, sceRazorCpuWorkloadRunBegin, sceRazorCpuWorkloadRunEnd, sceRazorCpuWorkloadSubmit (libSceRazorCpu) - the list is the intersection of the export table of the console's libSceRazorCpu (function symbols only), the pinned aerolib names and the functions not yet defined anywhere in the repo. No credible prototypes were found; they are declared without parameters solely to resolve known imports, not as an ABI claim, and callers must not call them until signatures are verified.
- sceRazorCpuFlushOccurred (libSceRazorCpu) - signature and return values (1 = flush since the last call, 0 = none) from SharpProspero; without a capture nothing is flushed, so it returns 0 and writes 0 cycles to the optional out pointer (whether the real library writes it when nothing was flushed is unknown)
- sceRazorCpuPushMarkerStatic, sceRazorCpuPopMarker (libSceRazorCpu) - signatures from PPSA26344's calls; (name, color, flags) assumed for the push; both do nothing without a capture
- sceRazorCpuPlotValue, sceRazorCpuWriteBookmark (libSceRazorCpu) - signatures (series, float value) and (label, optional description) from SharpProspero, matching PPSA06320's calls; both do nothing without a capture and return 0
- sceRazorCpuNamedSync (libSceRazorCpu) - NID
XCuZoBSVFG8is named by shadPS4; the NID and a stub returning 0 come from there, but its stub declares no arguments; theconst char* labelparameter (NUL-terminated, up to 16384 bytes) comes from SharpProspero, which documents it as the frame-boundary label. Without a capture it does nothing and returns 0; the label is not read, and the capture behavior and the real return values are unverified - sceRazorCpuGetDataTagStorageSize (libSceRazorCpu) - throws: SharpProspero documents it as the byte size a tag table needs for a count of entries, but not the size of an entry