From dd724705877f8faf9d4beaa898d38b194c9ef9d5 Mon Sep 17 00:00:00 2001 From: Kyon Date: Thu, 29 Oct 2026 15:46:23 +0000 Subject: [PATCH 1/6] feat(libSceSystemService): declare 32 callable exports --- core/libs/prx/libSceSystemService/Export.cpp | 166 ++++++++++++++++++ .../include/InventoryExports.hpp | 40 +++++ .../libSceSystemService.hpp | 1 + docs/dev/debt/libSceSystemService.md | 39 ++++ 4 files changed, 246 insertions(+) create mode 100644 core/libs/prx/libSceSystemService/include/InventoryExports.hpp diff --git a/core/libs/prx/libSceSystemService/Export.cpp b/core/libs/prx/libSceSystemService/Export.cpp index d6a112e496..7124417bbe 100644 --- a/core/libs/prx/libSceSystemService/Export.cpp +++ b/core/libs/prx/libSceSystemService/Export.cpp @@ -1,3 +1,5 @@ +#include "prx/libc/include/general/ExportMacros.hpp" +#include "prx/libSceSystemService/include/InventoryExports.hpp" #include "prx/libSceSystemService/include/SystemService.hpp" #include #include @@ -973,3 +975,167 @@ int APS5_VABI sceShellCoreUtilIsBgmPlaying(void) { } } + +extern "C" { + +int APS5_VABI libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("16waHD4tFBo", libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("1m-E1Xh8COo", libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("7eu2qjQGigw", libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("90unWbnI0qE", libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("E-bXVJqwGZw", libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("G3oPdw3lkps", libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("KgiwSrROsIQ", libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("LxGOxroprpg", libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("NXFtO8BfVeo", libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("Oxh0CSsTZ78", libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("OyTwhCKWXi4", libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("U0HutHWnMBM", libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("VDs9VSjSJh0", libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("ZWNP+-dWr8E", libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("axzblV8OvWU", libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("bJyWctnSXyU", libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("bUNkT3XDg0Y", libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("c5+4Scso9EU", libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("fBGD-HNimSk", libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("fPAZ5DBsDxo", libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("ifJiF5witJ4", libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("kDGjRMtUDxo", libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("lgpIdZ8T0xg", libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("pj1SzIAxPlk", libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("qdTPJWjquDc", libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("rIqPq0oWlrg", libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("sgYo-zXHQRE", libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("tPMOYbbviYs", libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("uElcdmhh-c8", libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("xn-HgPW29x4", libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("y16IXiJfafA", libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("yOiZq+9-ZMQ", libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch); + +} diff --git a/core/libs/prx/libSceSystemService/include/InventoryExports.hpp b/core/libs/prx/libSceSystemService/include/InventoryExports.hpp new file mode 100644 index 0000000000..52c56ee1f1 --- /dev/null +++ b/core/libs/prx/libSceSystemService/include/InventoryExports.hpp @@ -0,0 +1,40 @@ +#pragma once + +#include "SceTypes.hpp" + +extern "C" { + +int APS5_VABI libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch(); +int APS5_VABI libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch(); + +} diff --git a/core/libs/prx/libSceSystemService/libSceSystemService.hpp b/core/libs/prx/libSceSystemService/libSceSystemService.hpp index e3ff176277..1268c62468 100644 --- a/core/libs/prx/libSceSystemService/libSceSystemService.hpp +++ b/core/libs/prx/libSceSystemService/libSceSystemService.hpp @@ -1,3 +1,4 @@ #pragma once #include "prx/libSceSystemService/include/SystemService.hpp" +#include "prx/libSceSystemService/include/InventoryExports.hpp" diff --git a/docs/dev/debt/libSceSystemService.md b/docs/dev/debt/libSceSystemService.md index baf22a6271..f204564066 100644 --- a/docs/dev/debt/libSceSystemService.md +++ b/docs/dev/debt/libSceSystemService.md @@ -165,3 +165,42 @@ - [Tournament launch parameters](../../../core/libs/prx/libSceSystemService/Export.cpp): occurrence parameters occupy 32 bytes and contain two string pointers and a user ID. The final string semantics are unresolved. Event-details and team-profile launches retain an unused first argument slot of unknown declared type. The daemon blocking-event receive argument is passed unchanged as 64 bits to IPC; its meaning remains unresolved. Protected bodies in [PendingExports.cpp](../../../core/libs/prx/libSceSystemService/PendingExports.cpp) remain unchanged. - [sceSystemServiceIsBgmPlaying, sceShellCoreUtilIsBgmPlaying](../../../core/libs/prx/libSceSystemService/Export.cpp) (libSceSystemService) - what they return while music plays, and in a title process, is not measured. Both return 0, as they do in a payload process on PS5 firmware 13.60 with no music playing, where neither writes through a pointer passed as the first argument. In [shadPS4](https://github.com/shadps4-emu/shadPS4/blob/a808e76/src/core/libraries/system/systemservice.cpp) they report whether its libSceMusicPlayerService is playing; there is no libSceMusicPlayerService here, so no background music can be playing + +### Additional callable exports + +- [Additional callable exports](../../../core/libs/prx/libSceSystemService/Export.cpp) - 32 entries observed in the 3.20 export inventory and present in the later 13.60-labelled inventory are import-resolution declarations only. The later inventory label does not authenticate a retail firmware version. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. No runtime functionality is implemented. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv). + +| Name | NID | +| --- | --- | +| `Unknown` | `16waHD4tFBo` | +| `Unknown` | `1m-E1Xh8COo` | +| `Unknown` | `7eu2qjQGigw` | +| `Unknown` | `90unWbnI0qE` | +| `Unknown` | `E-bXVJqwGZw` | +| `Unknown` | `G3oPdw3lkps` | +| `Unknown` | `KgiwSrROsIQ` | +| `Unknown` | `LxGOxroprpg` | +| `Unknown` | `NXFtO8BfVeo` | +| `Unknown` | `Oxh0CSsTZ78` | +| `Unknown` | `OyTwhCKWXi4` | +| `Unknown` | `U0HutHWnMBM` | +| `Unknown` | `VDs9VSjSJh0` | +| `Unknown` | `ZWNP+-dWr8E` | +| `Unknown` | `axzblV8OvWU` | +| `Unknown` | `bJyWctnSXyU` | +| `Unknown` | `bUNkT3XDg0Y` | +| `Unknown` | `c5+4Scso9EU` | +| `Unknown` | `fBGD-HNimSk` | +| `Unknown` | `fPAZ5DBsDxo` | +| `Unknown` | `ifJiF5witJ4` | +| `Unknown` | `kDGjRMtUDxo` | +| `Unknown` | `lgpIdZ8T0xg` | +| `Unknown` | `pj1SzIAxPlk` | +| `Unknown` | `qdTPJWjquDc` | +| `Unknown` | `rIqPq0oWlrg` | +| `Unknown` | `sgYo-zXHQRE` | +| `Unknown` | `tPMOYbbviYs` | +| `Unknown` | `uElcdmhh-c8` | +| `Unknown` | `xn-HgPW29x4` | +| `Unknown` | `y16IXiJfafA` | +| `Unknown` | `yOiZq+9-ZMQ` | From 51867574090a887a76f4f721a8dfa907ffeb94a5 Mon Sep 17 00:00:00 2001 From: Kyon Date: Thu, 29 Oct 2026 15:58:04 +0000 Subject: [PATCH 2/6] docs(libSceSystemService): pin callable export evidence --- docs/dev/debt/libSceSystemService.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/dev/debt/libSceSystemService.md b/docs/dev/debt/libSceSystemService.md index f204564066..fcdc7af234 100644 --- a/docs/dev/debt/libSceSystemService.md +++ b/docs/dev/debt/libSceSystemService.md @@ -170,6 +170,8 @@ - [Additional callable exports](../../../core/libs/prx/libSceSystemService/Export.cpp) - 32 entries observed in the 3.20 export inventory and present in the later 13.60-labelled inventory are import-resolution declarations only. The later inventory label does not authenticate a retail firmware version. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. No runtime functionality is implemented. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv). +[Version-pinned selected ELF export records](https://gist.github.com/kyon-eth/3fbb1a4a6f95a936b4cd58e9c3d8c50c/5e3af709224ed8235af11337309af0725e5685cb) list every NID below with its image label, decoded export module and library, raw qualified symbol, ELF function type, value and size for each inspected version-labelled image. The extract SHA-256 is `02ab27f12bcd0cc9fa03fa33f55fc201110f0d54a86bbbaa093d55d0a8cf262d`; its full-module sorted-function-NID digests and raw module-parameter words permit independent comparison. This is an analyst-produced metadata record, not independent authentication of the original images or proof of prototypes or behavior. + | Name | NID | | --- | --- | | `Unknown` | `16waHD4tFBo` | From 9dca0f8496517b2f948271ee05ed3b3a360270be Mon Sep 17 00:00:00 2001 From: Kyon Date: Fri, 30 Oct 2026 05:53:10 +0000 Subject: [PATCH 3/6] docs(libSceSystemService): clarify export evidence --- docs/dev/debt/libSceSystemService.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dev/debt/libSceSystemService.md b/docs/dev/debt/libSceSystemService.md index fcdc7af234..7f76bc37d5 100644 --- a/docs/dev/debt/libSceSystemService.md +++ b/docs/dev/debt/libSceSystemService.md @@ -168,7 +168,7 @@ ### Additional callable exports -- [Additional callable exports](../../../core/libs/prx/libSceSystemService/Export.cpp) - 32 entries observed in the 3.20 export inventory and present in the later 13.60-labelled inventory are import-resolution declarations only. The later inventory label does not authenticate a retail firmware version. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. No runtime functionality is implemented. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv). +- [Additional callable exports](../../../core/libs/prx/libSceSystemService/Export.cpp) - 32 entries present in both version-labelled images are import-resolution declarations only. None is listed in the pinned public 3.20 catalogue for this library. Neither label independently authenticates retail firmware provenance. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. No runtime functionality is implemented. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv). [Version-pinned selected ELF export records](https://gist.github.com/kyon-eth/3fbb1a4a6f95a936b4cd58e9c3d8c50c/5e3af709224ed8235af11337309af0725e5685cb) list every NID below with its image label, decoded export module and library, raw qualified symbol, ELF function type, value and size for each inspected version-labelled image. The extract SHA-256 is `02ab27f12bcd0cc9fa03fa33f55fc201110f0d54a86bbbaa093d55d0a8cf262d`; its full-module sorted-function-NID digests and raw module-parameter words permit independent comparison. This is an analyst-produced metadata record, not independent authentication of the original images or proof of prototypes or behavior. From 401b345a35cc3dd0da8165bfd3ace98624111aff Mon Sep 17 00:00:00 2001 From: Kyon Date: Fri, 30 Oct 2026 05:54:06 +0000 Subject: [PATCH 4/6] refactor(libSceSystemService): isolate added exports --- .../prx/libSceSystemService/CMakeLists.txt | 2 +- core/libs/prx/libSceSystemService/Export.cpp | 166 ----------------- .../libSceSystemService/InventoryExports.cpp | 167 ++++++++++++++++++ docs/dev/debt/libSceSystemService.md | 82 ++++----- 4 files changed, 209 insertions(+), 208 deletions(-) create mode 100644 core/libs/prx/libSceSystemService/InventoryExports.cpp diff --git a/core/libs/prx/libSceSystemService/CMakeLists.txt b/core/libs/prx/libSceSystemService/CMakeLists.txt index 2831f4653a..9e37c75568 100644 --- a/core/libs/prx/libSceSystemService/CMakeLists.txt +++ b/core/libs/prx/libSceSystemService/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(libSceSystemService SHARED EXCLUDE_FROM_ALL Export.cpp PendingExports.cpp LoadExec.cpp) +add_library(libSceSystemService SHARED EXCLUDE_FROM_ALL Export.cpp PendingExports.cpp LoadExec.cpp InventoryExports.cpp) target_include_directories(libSceSystemService PRIVATE ${LIBS_INCLUDE_DIR}) target_link_libraries(libSceSystemService PRIVATE libSceAgcDriver libSceUsbStorage) configure_windows_unwind(libSceSystemService) diff --git a/core/libs/prx/libSceSystemService/Export.cpp b/core/libs/prx/libSceSystemService/Export.cpp index 7124417bbe..d6a112e496 100644 --- a/core/libs/prx/libSceSystemService/Export.cpp +++ b/core/libs/prx/libSceSystemService/Export.cpp @@ -1,5 +1,3 @@ -#include "prx/libc/include/general/ExportMacros.hpp" -#include "prx/libSceSystemService/include/InventoryExports.hpp" #include "prx/libSceSystemService/include/SystemService.hpp" #include #include @@ -975,167 +973,3 @@ int APS5_VABI sceShellCoreUtilIsBgmPlaying(void) { } } - -extern "C" { - -int APS5_VABI libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("16waHD4tFBo", libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("1m-E1Xh8COo", libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("7eu2qjQGigw", libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("90unWbnI0qE", libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("E-bXVJqwGZw", libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("G3oPdw3lkps", libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("KgiwSrROsIQ", libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("LxGOxroprpg", libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("NXFtO8BfVeo", libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("Oxh0CSsTZ78", libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("OyTwhCKWXi4", libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("U0HutHWnMBM", libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("VDs9VSjSJh0", libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("ZWNP+-dWr8E", libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("axzblV8OvWU", libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("bJyWctnSXyU", libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("bUNkT3XDg0Y", libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("c5+4Scso9EU", libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("fBGD-HNimSk", libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("fPAZ5DBsDxo", libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("ifJiF5witJ4", libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("kDGjRMtUDxo", libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("lgpIdZ8T0xg", libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("pj1SzIAxPlk", libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("qdTPJWjquDc", libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("rIqPq0oWlrg", libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("sgYo-zXHQRE", libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("tPMOYbbviYs", libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("uElcdmhh-c8", libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("xn-HgPW29x4", libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("y16IXiJfafA", libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch); - -int APS5_VABI libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch() { - NotImplemented_nid_no_patch(__func__); -} -APS5_EXPORT("yOiZq+9-ZMQ", libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch); - -} diff --git a/core/libs/prx/libSceSystemService/InventoryExports.cpp b/core/libs/prx/libSceSystemService/InventoryExports.cpp new file mode 100644 index 0000000000..86a1ebb382 --- /dev/null +++ b/core/libs/prx/libSceSystemService/InventoryExports.cpp @@ -0,0 +1,167 @@ +#include "prx/libSceSystemService/include/InventoryExports.hpp" +#include "prx/libc/include/General.hpp" +#include "prx/libc/include/general/ExportMacros.hpp" + +extern "C" { + +int APS5_VABI libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("16waHD4tFBo", libSceSystemServiceUnknown_16waHD4tFBo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("1m-E1Xh8COo", libSceSystemServiceUnknown_1m_minus_E1Xh8COo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("7eu2qjQGigw", libSceSystemServiceUnknown_7eu2qjQGigw_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("90unWbnI0qE", libSceSystemServiceUnknown_90unWbnI0qE_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("E-bXVJqwGZw", libSceSystemServiceUnknown_E_minus_bXVJqwGZw_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("G3oPdw3lkps", libSceSystemServiceUnknown_G3oPdw3lkps_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("KgiwSrROsIQ", libSceSystemServiceUnknown_KgiwSrROsIQ_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("LxGOxroprpg", libSceSystemServiceUnknown_LxGOxroprpg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("NXFtO8BfVeo", libSceSystemServiceUnknown_NXFtO8BfVeo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("Oxh0CSsTZ78", libSceSystemServiceUnknown_Oxh0CSsTZ78_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("OyTwhCKWXi4", libSceSystemServiceUnknown_OyTwhCKWXi4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("U0HutHWnMBM", libSceSystemServiceUnknown_U0HutHWnMBM_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("VDs9VSjSJh0", libSceSystemServiceUnknown_VDs9VSjSJh0_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("ZWNP+-dWr8E", libSceSystemServiceUnknown_ZWNP_plus__minus_dWr8E_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("axzblV8OvWU", libSceSystemServiceUnknown_axzblV8OvWU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("bJyWctnSXyU", libSceSystemServiceUnknown_bJyWctnSXyU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("bUNkT3XDg0Y", libSceSystemServiceUnknown_bUNkT3XDg0Y_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("c5+4Scso9EU", libSceSystemServiceUnknown_c5_plus_4Scso9EU_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("fBGD-HNimSk", libSceSystemServiceUnknown_fBGD_minus_HNimSk_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("fPAZ5DBsDxo", libSceSystemServiceUnknown_fPAZ5DBsDxo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("ifJiF5witJ4", libSceSystemServiceUnknown_ifJiF5witJ4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("kDGjRMtUDxo", libSceSystemServiceUnknown_kDGjRMtUDxo_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("lgpIdZ8T0xg", libSceSystemServiceUnknown_lgpIdZ8T0xg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("pj1SzIAxPlk", libSceSystemServiceUnknown_pj1SzIAxPlk_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("qdTPJWjquDc", libSceSystemServiceUnknown_qdTPJWjquDc_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("rIqPq0oWlrg", libSceSystemServiceUnknown_rIqPq0oWlrg_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("sgYo-zXHQRE", libSceSystemServiceUnknown_sgYo_minus_zXHQRE_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("tPMOYbbviYs", libSceSystemServiceUnknown_tPMOYbbviYs_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("uElcdmhh-c8", libSceSystemServiceUnknown_uElcdmhh_minus_c8_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("xn-HgPW29x4", libSceSystemServiceUnknown_xn_minus_HgPW29x4_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("y16IXiJfafA", libSceSystemServiceUnknown_y16IXiJfafA_nid_no_patch); + +int APS5_VABI libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch() { + NotImplemented_nid_no_patch(__func__); +} +APS5_EXPORT("yOiZq+9-ZMQ", libSceSystemServiceUnknown_yOiZq_plus_9_minus_ZMQ_nid_no_patch); + +} diff --git a/docs/dev/debt/libSceSystemService.md b/docs/dev/debt/libSceSystemService.md index 7f76bc37d5..72ed2a5288 100644 --- a/docs/dev/debt/libSceSystemService.md +++ b/docs/dev/debt/libSceSystemService.md @@ -1,5 +1,46 @@ # libSceSystemService technical debt +### Additional callable exports + +- [Additional callable exports](../../../core/libs/prx/libSceSystemService/Export.cpp) - 32 entries present in both version-labelled images are import-resolution declarations only. None is listed in the pinned public 3.20 catalogue for this library. Neither label independently authenticates retail firmware provenance. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. No runtime functionality is implemented. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv). + +[Version-pinned selected ELF export records](https://gist.github.com/kyon-eth/3fbb1a4a6f95a936b4cd58e9c3d8c50c/5e3af709224ed8235af11337309af0725e5685cb) list every NID below with its image label, decoded export module and library, raw qualified symbol, ELF function type, value and size for each inspected version-labelled image. The extract SHA-256 is `02ab27f12bcd0cc9fa03fa33f55fc201110f0d54a86bbbaa093d55d0a8cf262d`; its full-module sorted-function-NID digests and raw module-parameter words permit independent comparison. This is an analyst-produced metadata record, not independent authentication of the original images or proof of prototypes or behavior. + +| Name | NID | +| --- | --- | +| `Unknown` | `16waHD4tFBo` | +| `Unknown` | `1m-E1Xh8COo` | +| `Unknown` | `7eu2qjQGigw` | +| `Unknown` | `90unWbnI0qE` | +| `Unknown` | `E-bXVJqwGZw` | +| `Unknown` | `G3oPdw3lkps` | +| `Unknown` | `KgiwSrROsIQ` | +| `Unknown` | `LxGOxroprpg` | +| `Unknown` | `NXFtO8BfVeo` | +| `Unknown` | `Oxh0CSsTZ78` | +| `Unknown` | `OyTwhCKWXi4` | +| `Unknown` | `U0HutHWnMBM` | +| `Unknown` | `VDs9VSjSJh0` | +| `Unknown` | `ZWNP+-dWr8E` | +| `Unknown` | `axzblV8OvWU` | +| `Unknown` | `bJyWctnSXyU` | +| `Unknown` | `bUNkT3XDg0Y` | +| `Unknown` | `c5+4Scso9EU` | +| `Unknown` | `fBGD-HNimSk` | +| `Unknown` | `fPAZ5DBsDxo` | +| `Unknown` | `ifJiF5witJ4` | +| `Unknown` | `kDGjRMtUDxo` | +| `Unknown` | `lgpIdZ8T0xg` | +| `Unknown` | `pj1SzIAxPlk` | +| `Unknown` | `qdTPJWjquDc` | +| `Unknown` | `rIqPq0oWlrg` | +| `Unknown` | `sgYo-zXHQRE` | +| `Unknown` | `tPMOYbbviYs` | +| `Unknown` | `uElcdmhh-c8` | +| `Unknown` | `xn-HgPW29x4` | +| `Unknown` | `y16IXiJfafA` | +| `Unknown` | `yOiZq+9-ZMQ` | + ### Silent stubs - [sceShellCoreUtilActivateAbort, sceShellCoreUtilActivateStart, sceShellCoreUtilActivateStartAsync, sceShellCoreUtilActivateTerm](../../../core/libs/prx/libSceSystemService/PendingExports.cpp) return zero with the recovered handle argument. Activation service state is not modeled. @@ -165,44 +206,3 @@ - [Tournament launch parameters](../../../core/libs/prx/libSceSystemService/Export.cpp): occurrence parameters occupy 32 bytes and contain two string pointers and a user ID. The final string semantics are unresolved. Event-details and team-profile launches retain an unused first argument slot of unknown declared type. The daemon blocking-event receive argument is passed unchanged as 64 bits to IPC; its meaning remains unresolved. Protected bodies in [PendingExports.cpp](../../../core/libs/prx/libSceSystemService/PendingExports.cpp) remain unchanged. - [sceSystemServiceIsBgmPlaying, sceShellCoreUtilIsBgmPlaying](../../../core/libs/prx/libSceSystemService/Export.cpp) (libSceSystemService) - what they return while music plays, and in a title process, is not measured. Both return 0, as they do in a payload process on PS5 firmware 13.60 with no music playing, where neither writes through a pointer passed as the first argument. In [shadPS4](https://github.com/shadps4-emu/shadPS4/blob/a808e76/src/core/libraries/system/systemservice.cpp) they report whether its libSceMusicPlayerService is playing; there is no libSceMusicPlayerService here, so no background music can be playing - -### Additional callable exports - -- [Additional callable exports](../../../core/libs/prx/libSceSystemService/Export.cpp) - 32 entries present in both version-labelled images are import-resolution declarations only. None is listed in the pinned public 3.20 catalogue for this library. Neither label independently authenticates retail firmware provenance. Parameter lists, return types and behavior are unverified; parameterless `int` declarations are placeholders, not verified ABI contracts. Every entry throws through `NotImplemented_nid_no_patch`. Unidentified names use literal NID aliases. No runtime functionality is implemented. Identified candidate names match their NIDs in the [public symbol database](https://github.com/zecoxao/sce_symbols/blob/2883963a0a514ba6e77407a08ef4730a65e88254/aerolib.csv) or [supplemental catalog](https://github.com/claimore22/ps5rs/blob/2304be5131221bae0dac24b9767cabffda33f747/data/nids.csv). - -[Version-pinned selected ELF export records](https://gist.github.com/kyon-eth/3fbb1a4a6f95a936b4cd58e9c3d8c50c/5e3af709224ed8235af11337309af0725e5685cb) list every NID below with its image label, decoded export module and library, raw qualified symbol, ELF function type, value and size for each inspected version-labelled image. The extract SHA-256 is `02ab27f12bcd0cc9fa03fa33f55fc201110f0d54a86bbbaa093d55d0a8cf262d`; its full-module sorted-function-NID digests and raw module-parameter words permit independent comparison. This is an analyst-produced metadata record, not independent authentication of the original images or proof of prototypes or behavior. - -| Name | NID | -| --- | --- | -| `Unknown` | `16waHD4tFBo` | -| `Unknown` | `1m-E1Xh8COo` | -| `Unknown` | `7eu2qjQGigw` | -| `Unknown` | `90unWbnI0qE` | -| `Unknown` | `E-bXVJqwGZw` | -| `Unknown` | `G3oPdw3lkps` | -| `Unknown` | `KgiwSrROsIQ` | -| `Unknown` | `LxGOxroprpg` | -| `Unknown` | `NXFtO8BfVeo` | -| `Unknown` | `Oxh0CSsTZ78` | -| `Unknown` | `OyTwhCKWXi4` | -| `Unknown` | `U0HutHWnMBM` | -| `Unknown` | `VDs9VSjSJh0` | -| `Unknown` | `ZWNP+-dWr8E` | -| `Unknown` | `axzblV8OvWU` | -| `Unknown` | `bJyWctnSXyU` | -| `Unknown` | `bUNkT3XDg0Y` | -| `Unknown` | `c5+4Scso9EU` | -| `Unknown` | `fBGD-HNimSk` | -| `Unknown` | `fPAZ5DBsDxo` | -| `Unknown` | `ifJiF5witJ4` | -| `Unknown` | `kDGjRMtUDxo` | -| `Unknown` | `lgpIdZ8T0xg` | -| `Unknown` | `pj1SzIAxPlk` | -| `Unknown` | `qdTPJWjquDc` | -| `Unknown` | `rIqPq0oWlrg` | -| `Unknown` | `sgYo-zXHQRE` | -| `Unknown` | `tPMOYbbviYs` | -| `Unknown` | `uElcdmhh-c8` | -| `Unknown` | `xn-HgPW29x4` | -| `Unknown` | `y16IXiJfafA` | -| `Unknown` | `yOiZq+9-ZMQ` | From 5fe85e6690eed1450c6fa939d574b2b5bf5ea4be Mon Sep 17 00:00:00 2001 From: Kyon Date: Fri, 30 Oct 2026 05:54:21 +0000 Subject: [PATCH 5/6] build(libSceSystemService): isolate inventory target sources --- core/libs/prx/libSceSystemService/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/libs/prx/libSceSystemService/CMakeLists.txt b/core/libs/prx/libSceSystemService/CMakeLists.txt index 9e37c75568..f7710710e5 100644 --- a/core/libs/prx/libSceSystemService/CMakeLists.txt +++ b/core/libs/prx/libSceSystemService/CMakeLists.txt @@ -1,7 +1,8 @@ -add_library(libSceSystemService SHARED EXCLUDE_FROM_ALL Export.cpp PendingExports.cpp LoadExec.cpp InventoryExports.cpp) +add_library(libSceSystemService SHARED EXCLUDE_FROM_ALL Export.cpp PendingExports.cpp LoadExec.cpp) target_include_directories(libSceSystemService PRIVATE ${LIBS_INCLUDE_DIR}) target_link_libraries(libSceSystemService PRIVATE libSceAgcDriver libSceUsbStorage) configure_windows_unwind(libSceSystemService) +target_sources(libSceSystemService PRIVATE InventoryExports.cpp) if(BUILD_TESTING) if(WIN32) From 9775d2de542b1ff9192db869facafd1a6002948b Mon Sep 17 00:00:00 2001 From: Kyon Date: Fri, 30 Oct 2026 05:56:26 +0000 Subject: [PATCH 6/6] build(libSceSystemService): avoid concurrent target edits --- core/libs/prx/libSceSystemService/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/libs/prx/libSceSystemService/CMakeLists.txt b/core/libs/prx/libSceSystemService/CMakeLists.txt index f7710710e5..f601b366bf 100644 --- a/core/libs/prx/libSceSystemService/CMakeLists.txt +++ b/core/libs/prx/libSceSystemService/CMakeLists.txt @@ -2,7 +2,6 @@ add_library(libSceSystemService SHARED EXCLUDE_FROM_ALL Export.cpp PendingExport target_include_directories(libSceSystemService PRIVATE ${LIBS_INCLUDE_DIR}) target_link_libraries(libSceSystemService PRIVATE libSceAgcDriver libSceUsbStorage) configure_windows_unwind(libSceSystemService) -target_sources(libSceSystemService PRIVATE InventoryExports.cpp) if(BUILD_TESTING) if(WIN32) @@ -150,3 +149,5 @@ if(BUILD_TESTING) "PATH=path_list_prepend:$") endif() endif() + +target_sources(libSceSystemService PRIVATE InventoryExports.cpp)