mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-30 12:25:49 +00:00
19 lines
8.0 KiB
Markdown
19 lines
8.0 KiB
Markdown
# libSceNpTrophy technical debt
|
|
|
|
### Unknown function info
|
|
|
|
- [sceNpTrophyRegisterContext, sceNpTrophyGetTrophyUnlockState, sceNpTrophyUnlockTrophy](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy, PS4) - the trophy definitions in `TROPCONF.ESFM` are encrypted, so the trophy count is the number of consecutive `TROPnnn.PNG` icons in the title's `/app0/sce_sys/trophy/trophyNN.trp`. Unlocks are kept per user and service label in `_trophy/trophyNN.<user id>` under the working directory, no platinum trophy is reported (`platinumId` is -1), and a locked trophy's icon fails with `TROPHY_NOT_UNLOCKED`. None of it is checked on a console.
|
|
- [sceNpTrophyAbortHandle](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy, PS4) - measured on a PS4 Pro (firmware 10.71): after an abort, `sceNpTrophyGetTrophyUnlockState` and `sceNpTrophyGetGameIcon` through that handle answer 0x80551607, before the not-registered check, and `sceNpTrophyRegisterContext` answers 0x80551607 before the missing trophy package (0x80551626 for a live handle); aborting again answers 0. The other calls that take the handle are assumed to answer 0x80551607 the same way, as `libSceNpTrophy.sprx` of firmware 10.71 maps the service's abort answer to it on the shared request path. On the console `sceNpTrophyRegisterContext` checks the process's NP title id before it reaches the service, so a title without one gets the NP title id error instead; AnyPS5 has no NP title id and does not model that step
|
|
- [sceNpTrophyCaptureScreenshot, sceNpTrophyConfigGetTrophyDetails, sceNpTrophyConfigGetTrophyFlagArray, sceNpTrophyConfigGetTrophyGroupArray, sceNpTrophyConfigGetTrophyGroupDetails, sceNpTrophyConfigGetTrophySetInfo, sceNpTrophyConfigGetTrophySetInfoInGroup, sceNpTrophyConfigGetTrophySetVersion, sceNpTrophyConfigGetTrophyTitleDetails, sceNpTrophyConfigHasGroupFeature, sceNpTrophyGroupArrayGetNum, sceNpTrophyIntAbortHandle, sceNpTrophyIntCheckNetSyncTitles, sceNpTrophyIntCreateHandle](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - names and NIDs are present in the [PS5 3.20 export inventory](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceNpTrophy.c), but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
|
|
- [sceNpTrophyIntDestroyHandle, sceNpTrophyIntGetLocalTrophySummary, sceNpTrophyIntGetProgress, sceNpTrophyIntGetRunningTitle, sceNpTrophyIntGetRunningTitles, sceNpTrophyIntGetTrpIconByUri, sceNpTrophyIntNetSyncTitle, sceNpTrophyIntNetSyncTitles, sceNpTrophyNumInfoGetTotal, sceNpTrophySetInfoGetTrophyFlagArray, sceNpTrophySetInfoGetTrophyNum, sceNpTrophyShowTrophyList, sceNpTrophySystemAbortHandle, sceNpTrophySystemBuildGroupIconUri, sceNpTrophySystemBuildNetTrophyIconUri, sceNpTrophySystemBuildTitleIconUri](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - names and NIDs are present in the [PS5 3.20 export inventory](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceNpTrophy.c), but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
|
|
- [sceNpTrophySystemBuildTrophyIconUri, sceNpTrophySystemCheckCallback, sceNpTrophySystemCheckNetSyncTitles, sceNpTrophySystemCheckRecoveryRequired, sceNpTrophySystemCloseStorage, sceNpTrophySystemCreateContext, sceNpTrophySystemCreateHandle, sceNpTrophySystemDbgCtl, sceNpTrophySystemDebugLockTrophy, sceNpTrophySystemDebugUnlockTrophy, sceNpTrophySystemDestroyContext, sceNpTrophySystemDestroyHandle, sceNpTrophySystemDestroyTrophyConfig, sceNpTrophySystemGetDbgParam, sceNpTrophySystemGetDbgParamInt](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - names and NIDs are present in the [PS5 3.20 export inventory](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceNpTrophy.c), but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
|
|
- [sceNpTrophySystemGetGroupIcon, sceNpTrophySystemGetLocalTrophySummary, sceNpTrophySystemGetNextTitleFileEntryStatus, sceNpTrophySystemGetProgress, sceNpTrophySystemGetTitleFileStatus, sceNpTrophySystemGetTitleIcon, sceNpTrophySystemGetTitleSyncStatus, sceNpTrophySystemGetTrophyConfig, sceNpTrophySystemGetTrophyData, sceNpTrophySystemGetTrophyGroupData, sceNpTrophySystemGetTrophyIcon, sceNpTrophySystemGetTrophyTitleData, sceNpTrophySystemGetUserFileInfo, sceNpTrophySystemGetUserFileStatus](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - names and NIDs are present in the [PS5 3.20 export inventory](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceNpTrophy.c), but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
|
|
- [sceNpTrophySystemIsServerAvailable, sceNpTrophySystemNetSyncTitle, sceNpTrophySystemNetSyncTitles, sceNpTrophySystemOpenStorage, sceNpTrophySystemPerformRecovery, sceNpTrophySystemRegisterTitleSyncedCallback, sceNpTrophySystemRegisterTitleUpdateCallback, sceNpTrophySystemRemoveAll, sceNpTrophySystemRemoveTitleData, sceNpTrophySystemRemoveUserData, sceNpTrophySystemSetDbgParam, sceNpTrophySystemSetDbgParamInt, sceNpTrophySystemUnregisterTitleSyncedCallback, sceNpTrophySystemUnregisterTitleUpdateCallback](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - names and NIDs are present in the [PS5 3.20 export inventory](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceNpTrophy.c), but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
|
|
- [sceNpTrophySystemWrapDebugLockTrophy, sceNpTrophySystemWrapDebugUnlockTrophy, sceNpTrophySystemWrapGetGroupDetails, sceNpTrophySystemWrapGetPlayedTrophyTitles, sceNpTrophySystemWrapGetTitleDetails, sceNpTrophySystemWrapGetTrophyDetailsArray, sceNpTrophySystemWrapGetTrophyTitleIdsByNpTitleId, sceNpTrophySystemWrapRemoveAll, sceNpTrophySystemWrapRemoveTitleData, sceNpTrophySystemWrapRemoveUserData](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - names and NIDs are present in the [PS5 3.20 export inventory](https://github.com/DNNDHH/PS5-3.20_Libs/blob/b2a77c09cd71c01f34c790cfbe98c751a13262ad/libSceNpTrophy.c), but no credible prototypes were found. The declarations have no parameters solely to resolve known imports; this is not an ABI claim and callers must not call them until signatures are verified
|
|
|
|
### Functional
|
|
|
|
- [sceNpTrophyGetGameInfo](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - the trophy configuration `TROPCONF.ESFM` is encrypted and not read, so the game details report the trophy count taken from the `TROPnnn.PNG` icons and the group count taken from the `GRnnn.PNG` icons of the trophy package; the per-grade counts are 0, the title and description are empty, and the progress percentage is unlocked trophies over all trophies instead of the console's grade-weighted points
|
|
- [sceNpTrophyGetGroupInfo](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - only the base game group (id -1) is answered, with the same counts as the game; an id past the `GRnnn.PNG` icons returns `INVALID_GROUP_ID`, and an existing group throws because the trophies of a group are listed only in the encrypted configuration
|
|
- [sceNpTrophyGetTrophyInfo](../../../core/libs/prx/libSceNpTrophy/Export.cpp) (libSceNpTrophy) - the grade is reported as unknown, the trophy is never hidden, the name and description are empty and the unlock timestamp is 0; a package with groups throws, since a trophy's group is listed only in the encrypted configuration
|