diff --git a/core/libs/prx/libSceRnpsBundle/Export.cpp b/core/libs/prx/libSceRnpsBundle/Export.cpp new file mode 100644 index 0000000000..eca7dbffdc --- /dev/null +++ b/core/libs/prx/libSceRnpsBundle/Export.cpp @@ -0,0 +1,26 @@ +#include "prx/libSceRnpsBundle/include/InventoryExports.hpp" +#include "prx/libc/include/General.hpp" + +extern "C" { + +int APS5_VABI sceRnpsBundleInit() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceRnpsBundleInitEx() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceRnpsBundleTerm() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceRnpsBundleVerifyAndDecrypt() { + NotImplemented_nid_no_patch(__func__); +} + +int APS5_VABI sceRnpsBundleVerifyChain() { + NotImplemented_nid_no_patch(__func__); +} + +} diff --git a/core/libs/prx/libSceRnpsBundle/include/InventoryExports.hpp b/core/libs/prx/libSceRnpsBundle/include/InventoryExports.hpp new file mode 100644 index 0000000000..3f988a4d4d --- /dev/null +++ b/core/libs/prx/libSceRnpsBundle/include/InventoryExports.hpp @@ -0,0 +1,13 @@ +#pragma once + +#include "SceTypes.hpp" + +extern "C" { + +int APS5_VABI sceRnpsBundleInit(); +int APS5_VABI sceRnpsBundleInitEx(); +int APS5_VABI sceRnpsBundleTerm(); +int APS5_VABI sceRnpsBundleVerifyAndDecrypt(); +int APS5_VABI sceRnpsBundleVerifyChain(); + +} diff --git a/core/libs/prx/libSceRnpsBundle/libSceRnpsBundle.hpp b/core/libs/prx/libSceRnpsBundle/libSceRnpsBundle.hpp new file mode 100644 index 0000000000..d8dfc47233 --- /dev/null +++ b/core/libs/prx/libSceRnpsBundle/libSceRnpsBundle.hpp @@ -0,0 +1,3 @@ +#pragma once + +#include "prx/libSceRnpsBundle/include/InventoryExports.hpp" diff --git a/docs/dev/debt/libSceRnpsBundle.md b/docs/dev/debt/libSceRnpsBundle.md new file mode 100644 index 0000000000..dba70b33cd --- /dev/null +++ b/docs/dev/debt/libSceRnpsBundle.md @@ -0,0 +1,13 @@ +# libSceRnpsBundle technical debt + +### Unknown function info + +- [libSceRnpsBundle named exports](../../../core/libs/prx/libSceRnpsBundle/Export.cpp) - signatures and behavior are unknown. The parameterless `int` declarations are import placeholders, not ABI prototypes, and immediately throw through `NotImplemented_nid_no_patch`. The pinned [firmware 13.60 inventory](https://github.com/xdCloudy/PS5-13.60-Function-Stub-Library/blob/bfec40deb4c47a17d7603ee2bc79aa6862c0c56b/data/firmware-13.60/libscernpsbundle-6bc8892b2a.jsonl) identifies the five name/NID pairs below; the pinned [module map](https://github.com/boykopovar/ps5-nid-map/blob/cc1d586fddab576a520f226da6b2632b031e6d09/data/Modules/libSceRnpsBundle.inc) assigns them to `libSceRnpsBundle.sprx`. Five inventory NIDs (`0+ee+HdR0bk`, `K9DCgmMthBQ`, `j4pgxf0zD7k`, `pXKvO8AFw8k`, `t8toeP54Mx8`) have unresolved names. The map adds `1BnaCtplAzI`, which has no inventory row. None of those six is declared. + +| Name | NID | +| --- | --- | +| `sceRnpsBundleInit` | `K2u0v4WEueU` | +| `sceRnpsBundleInitEx` | `hwS49XQ5OuA` | +| `sceRnpsBundleTerm` | `QmgtzAvePXM` | +| `sceRnpsBundleVerifyAndDecrypt` | `eqd58iI3rv8` | +| `sceRnpsBundleVerifyChain` | `WgPr--ikm3U` |