mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-27 00:28:14 +00:00
15 KiB
15 KiB
libSceNpCommon technical debt
Unknown function info
The 34 declarations below use names mapped from the local libSceNpCommon.sprx export table. Each NID was verified against that table and recomputed from its name with tools/nid_names.py. The public PS5 3.20 libSceNpCommon export list contains all 150 symbol names. No prototype or behavior is claimed. Each declaration uses the no-parameter unknown-signature convention solely for import resolution and throws if called.
- sceNpCloseSema (NID
8hPzfjZzV88) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpGetNavSdkVersion (NID
QmDEFikd3VA) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpIntGetPlatformType (NID
G6qytFoBJ-w) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpIntSetPlatformType (NID
X6emt+LbSEI) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpJsonParse (NID
vJGDnNh4I0g) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpJsonParseBuf (NID
RgfCYkjW7As) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpJsonParseBufInit (NID
SnAdybtBK3o) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpJsonParseEx (NID
p5ZkSMRR7AU) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpJsonParseExInit (NID
nhgjiwPUIzI) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpJsonParseInit (NID
teVnFAL6GNY) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpOpenSema (NID
-blITIdtUd0) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpServerErrorJsonGetErrorCode (NID
0lZHbA-HRD0) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpServerErrorJsonMultiGetErrorCode (NID
cRabutqUG7c) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpServerErrorJsonParse (NID
WSQxnAVLKgw) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpServerErrorJsonParseInit (NID
UbStlMKTBeU) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpServerErrorJsonParseMultiInit (NID
hbe+DdooIi4) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpSetPlatformType (NID
m9JzZSoDVFY) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilCanonicalizeNpIdForPs4 (NID
4mEAk-UKVNw) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilCanonicalizeNpIdForPsp2 (NID
N3FB4r8JoRE) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetDateSetAuto (NID
owm52JoZ8uc) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetDbgCommerce (NID
1Gfhi+tZ9IE) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetEnv (NID
kBON3bAtfGs) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetFakeDisplayNameMode (NID
MUj0IV6XFGs) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetFakeRateLimit (NID
O86rgZ2azfg) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetIgnoreNpTitleId (NID
FrxliFYAO8Y) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetNpDebug (NID
GRvK1ZE+FEQ) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetNpTestPatch (NID
OA8f3KF9JsM) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetShareTitleCheck (NID
fB5hE65pzbU) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetSystemLanguage (NID
SXUNKr9Zkv0) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetTrcNotify (NID
AjzLvR0g5Zs) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetWebApi2FakeRateLimit (NID
pmHBFJyju9E) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetWebApi2FakeRateLimitTarget (NID
ZRxKp9vjcNc) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilGetWebTraceSetting (NID
4CqfNm3pisU) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch. - sceNpUtilJidToNpId (NID
458yjI+OECI) - the signature and behavior are unknown. The no-parameter declaration only resolves the import; it makes no ABI claim. Calls throw throughNotImplemented_nid_no_patch.
Functional
- Online ID and NpId utilities (libSceNpCommon) -
sceNpCmpOnlineId,sceNpCmpNpIdInOrder,sceNpGetPlatformTypeandsceNpIntIsValidOnlineIdare not measured on a console; their signatures, checks and results follow shadPS4, including the platform tags read fromopt[4..7]and the 3 to 16 character online ID rule. - Mutex, condition and thread wrappers (libSceNpCommon) - the
sceNpMutex*,sceNpLwMutex*,sceNpCond*andsceNpJoinThreadwrappers forward to the libkernelscePthread*calls as in shadPS4 and are not measured on a console. OnlyEBUSYfrom try-lock andETIMEDOUTfrom a timed wait are mapped to NP errors; every other kernel error is returned unchanged. Theflagsargument ofsceNpCondInitis ignored. - sceNpGetSdkVersion (libSceNpCommon) - writes the libkernel system software version as
major.minorinto an 8-byte buffer without checking it, as shadPS4 does; that version is the fixed1.00, not the SDK version a title was built with. - The exports in Runtime.cpp and Strings.cpp follow
libSceNpCommon.sprxfrom firmware 13.60, read from disassembly and not measured on a console. - sceNpCreateThread always applies an explicit priority when one is given; the firmware picks between explicit and inherited scheduling from the title's compiled SDK version, which is not available here.
- sceNpCalloutStartOnCtx and sceNpCalloutStartOnCtx64 look for the callout in the queue before writing it and return
0x80558006with the entry and the queue unchanged. Firmware 13.60, read from disassembly and not measured on a console, clears and fills the entry before it takes the lock and checks the queue, so restarting a queued callout returns the same error but drops every callout queued after it. - sceNpArchInit and sceNpArchTerm keep a reference count under a lock and create the global heap once. Firmware 13.60, read from disassembly and not measured on a console, uses no lock and never sets its count on the first call, so every call made while the count is zero creates the heap again, and a call to sceNpArchTerm at zero destroys the heap and leaves the count negative.
- sceNpGetRandom draws from a 32-bit Mersenne Twister seeded once per process; the console uses SFMT-19937 with a seed set inside the module, so the sequences differ.
- sceNpHeapShowStat and sceNpDbgDumpBinary print the same information as the console in a different layout.
- The string-to-integer exports clear
errnobefore parsing; the firmware reads whatevererrnoheld before the call when the result saturates. - The integer-to-string exports return
0x80558008when the hexadecimal prefix does not fit; the firmware writes the prefix without checking the size. The base64 decoders treat bytes above 0x7F as invalid; the firmware indexes its table with them as signed values. sceNpUtilJsonGetOneChar checks that a\uescape and a surrogate pair fit in the input; the firmware reads past it. - sceNpUtilGetNpDebug, sceNpUtilGetNpTestPatch, sceNpUtilGetTrcNotify, sceNpUtilGetIgnoreNpTitleId, sceNpUtilGetFakeDisplayNameMode, sceNpUtilGetWebTraceSetting, sceNpUtilGetWebApi2FakeRateLimit, sceNpUtilGetWebApi2FakeRateLimitTarget, sceNpUtilGetFakeRateLimit, sceNpUtilGetDbgCommerce, sceNpUtilGetSystemLanguage, sceNpUtilGetEnv, sceNpUtilGetDateSetAuto and sceNpUtilGetShareTitleCheck read system and debug registry keys through libSceRegMgr, whose
sceRegMgrNonSysGetIntand string reads still throw; they throw until those exist. - sceNpOpenSema and sceNpCloseSema forward to the libkernel open and close calls for named semaphores, which still throw.
- sceNpSetPlatformType, sceNpIntGetPlatformType, sceNpIntSetPlatformType, sceNpUtilCanonicalizeNpIdForPs4, sceNpUtilCanonicalizeNpIdForPsp2, sceNpUtilJidToNpId and sceNpGetNavSdkVersion depend on console platform tags, network domain names or a version string of the console; they throw.
- sceNpJsonParse, sceNpJsonParseInit, sceNpJsonParseBuf, sceNpJsonParseBufInit, sceNpJsonParseEx, sceNpJsonParseExInit and the sceNpServerErrorJson exports are a streaming, schema-checked JSON parser whose event and error rules are not yet specified; they throw.