From 36fa04c77b4844501c8706250ffae9c56da6bb89 Mon Sep 17 00:00:00 2001 From: Codex Date: Fri, 30 Oct 2026 00:44:21 +0200 Subject: [PATCH] feat(nppartner): add missing subscription-abort inventory export --- core/libs/prx/libSceNpPartner001/Export.cpp | 4 ++++ core/libs/prx/libSceNpPartner001/include/Api.hpp | 1 + docs/dev/debt/libSceNpPartner001.md | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/core/libs/prx/libSceNpPartner001/Export.cpp b/core/libs/prx/libSceNpPartner001/Export.cpp index 2a4635c7c858..b6b4567cb06d 100644 --- a/core/libs/prx/libSceNpPartner001/Export.cpp +++ b/core/libs/prx/libSceNpPartner001/Export.cpp @@ -30,4 +30,8 @@ int APS5_VABI sceNpHasEAAccessSubscription(int userId, bool* result) { return 0; } +int APS5_VABI sceNpHasEAAccessSubscriptionAbortRequest() { + NotImplemented_nid_no_patch(__func__); +} + } diff --git a/core/libs/prx/libSceNpPartner001/include/Api.hpp b/core/libs/prx/libSceNpPartner001/include/Api.hpp index 7254f2101087..5a7c21305f91 100644 --- a/core/libs/prx/libSceNpPartner001/include/Api.hpp +++ b/core/libs/prx/libSceNpPartner001/include/Api.hpp @@ -7,5 +7,6 @@ extern "C" { int APS5_VABI sceNpEAAccessInitialize(void); int APS5_VABI sceNpEAAccessTerminate(void); int APS5_VABI sceNpHasEAAccessSubscription(int userId, bool* result); +int APS5_VABI sceNpHasEAAccessSubscriptionAbortRequest(); } diff --git a/docs/dev/debt/libSceNpPartner001.md b/docs/dev/debt/libSceNpPartner001.md index 27edb961fb93..9c6fb3fc20bf 100644 --- a/docs/dev/debt/libSceNpPartner001.md +++ b/docs/dev/debt/libSceNpPartner001.md @@ -1,5 +1,9 @@ # libSceNpPartner001 technical debt +### Unknown function info + +- [sceNpHasEAAccessSubscriptionAbortRequest](../../../core/libs/prx/libSceNpPartner001/Export.cpp) has an unknown signature and behaviour. The parameterless `int` declaration is an import-resolution placeholder, not a confirmed ABI signature, and every call throws through `NotImplemented_nid_no_patch`. Only its name and NID `pQfYTZHznMc` are established by the [13.60 export inventory](https://github.com/xdCloudy/PS5-13.60-Function-Stub-Library/blob/bfec40deb4c47a17d7603ee2bc79aa6862c0c56b/data/firmware-13.60/libscenppartner001-b5ae22d388.jsonl); not measured on a console. + ### Functional - [sceNpEAAccessInitialize, sceNpEAAccessTerminate](../../../core/libs/prx/libSceNpPartner001/Export.cpp) (libSceNpPartner001) - initialization marks the library initialized without contacting the server and termination clears it, as in [shadPS4](https://github.com/shadps4-emu/shadPS4/blob/main/src/core/libraries/np/np_partner.cpp); whether the console fails initialization while signed out is unknown. Termination without initialization throws where shadPS4 returns the PS4 error `0x819D0001`, whose PS5 value is unverified, and a second initialization throws where shadPS4 returns 0 without checking. PPSA23566 imports both, not confirmed on its start-up path