From e483f7d073a01438d9f7927401ee8fda8d024dfd Mon Sep 17 00:00:00 2001 From: Kyon Date: Tue, 27 Oct 2026 17:05:39 +0000 Subject: [PATCH] feat(libSceNpManager): declare 6 additional exports --- .../prx/libSceNpManager/AdditionalExports.cpp | 30 +++++++++++++++++++ core/libs/prx/libSceNpManager/CMakeLists.txt | 1 + .../include/AdditionalExports.hpp | 14 +++++++++ .../prx/libSceNpManager/libSceNpManager.hpp | 1 + docs/dev/debt/libSceNpManager.md | 11 +++++++ 5 files changed, 57 insertions(+) create mode 100644 core/libs/prx/libSceNpManager/AdditionalExports.cpp create mode 100644 core/libs/prx/libSceNpManager/include/AdditionalExports.hpp diff --git a/core/libs/prx/libSceNpManager/AdditionalExports.cpp b/core/libs/prx/libSceNpManager/AdditionalExports.cpp new file mode 100644 index 0000000000..9f3f484912 --- /dev/null +++ b/core/libs/prx/libSceNpManager/AdditionalExports.cpp @@ -0,0 +1,30 @@ +#include "prx/libSceNpManager/include/AdditionalExports.hpp" +#include "prx/libc/include/General.hpp" + +extern "C" { + +int APS5_VABI sceNpAsmClientExtAbortRequest() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceNpAsmClientExtCreateRequest() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceNpAsmClientExtDeleteRequest() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceNpAsmClientExtGetPlayingTitleNpTitleToken() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceNpAsmClientExtInitialize() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceNpAsmClientExtTerminate() { + NotImplemented_nid_no_patch(__func__); +} + +} diff --git a/core/libs/prx/libSceNpManager/CMakeLists.txt b/core/libs/prx/libSceNpManager/CMakeLists.txt index cd99c36b34..ff2213e55b 100644 --- a/core/libs/prx/libSceNpManager/CMakeLists.txt +++ b/core/libs/prx/libSceNpManager/CMakeLists.txt @@ -1,6 +1,7 @@ add_library(libSceNpManager SHARED EXCLUDE_FROM_ALL Export.cpp) target_include_directories(libSceNpManager PRIVATE ${LIBS_INCLUDE_DIR}) configure_windows_unwind(libSceNpManager) +target_sources(libSceNpManager PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/AdditionalExports.cpp) if(MINGW) foreach(runtimeLinkFlag IN ITEMS -static-libgcc -static-libstdc++ -static) diff --git a/core/libs/prx/libSceNpManager/include/AdditionalExports.hpp b/core/libs/prx/libSceNpManager/include/AdditionalExports.hpp new file mode 100644 index 0000000000..a3e871a2d2 --- /dev/null +++ b/core/libs/prx/libSceNpManager/include/AdditionalExports.hpp @@ -0,0 +1,14 @@ +#pragma once + +#include "SceTypes.hpp" + +extern "C" { + +int APS5_VABI sceNpAsmClientExtAbortRequest(); +int APS5_VABI sceNpAsmClientExtCreateRequest(); +int APS5_VABI sceNpAsmClientExtDeleteRequest(); +int APS5_VABI sceNpAsmClientExtGetPlayingTitleNpTitleToken(); +int APS5_VABI sceNpAsmClientExtInitialize(); +int APS5_VABI sceNpAsmClientExtTerminate(); + +} diff --git a/core/libs/prx/libSceNpManager/libSceNpManager.hpp b/core/libs/prx/libSceNpManager/libSceNpManager.hpp index 5fa5fa4390..07c45ea0c6 100644 --- a/core/libs/prx/libSceNpManager/libSceNpManager.hpp +++ b/core/libs/prx/libSceNpManager/libSceNpManager.hpp @@ -1,3 +1,4 @@ #pragma once #include "prx/libSceNpManager/include/Api.hpp" +#include "prx/libSceNpManager/include/AdditionalExports.hpp" diff --git a/docs/dev/debt/libSceNpManager.md b/docs/dev/debt/libSceNpManager.md index 8afcb90846..f2ec604dad 100644 --- a/docs/dev/debt/libSceNpManager.md +++ b/docs/dev/debt/libSceNpManager.md @@ -6,6 +6,17 @@ ### Unknown function info +- [libSceNpManager additional exports](../../../core/libs/prx/libSceNpManager/AdditionalExports.cpp) - these name/NID pairs are present in the 13.60 export inventory. Parameter lists, return types and behavior are unverified. Parameterless `int` declarations are import-resolution placeholders, not verified ABI prototypes; every entry throws through `NotImplemented_nid_no_patch`. No runtime functionality is implemented. + +| Name | NID | +| --- | --- | +| `sceNpAsmClientExtAbortRequest` | `Xi517rrV8MU` | +| `sceNpAsmClientExtCreateRequest` | `yB12TC6fbPo` | +| `sceNpAsmClientExtDeleteRequest` | `yuQrMTiR28k` | +| `sceNpAsmClientExtGetPlayingTitleNpTitleToken` | `zj5wKSAva+Y` | +| `sceNpAsmClientExtInitialize` | `kKCa1japBxI` | +| `sceNpAsmClientExtTerminate` | `yODgcWKSa8Q` | + - [sceNpWaitAsync](../../../core/libs/prx/libSceNpManager/Export.cpp) (libSceNpManager, NID `jyi5p9XWUSs`) - the public PS5 3.20 inventory identifies this as a function. Its signature, request completion, output and error behavior are not verified for PS5, so the no-parameter placeholder throws instead of reporting a fabricated completion result. - [libSceNpManager pending exports](../../../core/libs/prx/libSceNpManager/Export.cpp) - 144 named callable exports are present in the local `libSceNpManager.sprx` export table and the public PS5 3.20 symbol list. Their signatures and behavior are unverified; each declaration uses the no-parameter unknown-signature convention and throws through `NotImplemented_nid_no_patch`.