From 7cbf45b660e31b876bab4562323261c23ea844fb Mon Sep 17 00:00:00 2001 From: Chad Date: Tue, 6 Oct 2026 16:30:24 -0500 Subject: [PATCH 1/2] feat(libs): declare the exports PPSA23566 imports that no library provides Co-Authored-By: Claude Opus 5.5 --- .../libSceAudioOut/src/AudioOut2System.cpp | 6 +++ core/libs/prx/libSceConvertKeycode/Export.cpp | 7 +++ core/libs/prx/libSceHttp/Export.cpp | 25 +++++++++ core/libs/prx/libSceJson2/Export.cpp | 12 +++++ core/libs/prx/libSceNet/Export.cpp | 6 +++ core/libs/prx/libSceNpCommerce/Export.cpp | 6 +++ .../prx/libSceNpEntitlementAccess/Export.cpp | 6 +++ core/libs/prx/libSceNpPartner001/Export.cpp | 17 ++++++ .../Export.cpp | 29 ++++++++++ core/libs/prx/libScePsml_debug/Export.cpp | 54 +++++++++++++++++++ core/libs/prx/libSceVoice/Export.cpp | 24 +++++++++ .../prx/libkernel/Pthread/Posix/Thread.cpp | 6 +++ docs/dev/TechnicalDebt.md | 12 +++++ 13 files changed, 210 insertions(+) create mode 100644 core/libs/prx/libSceNpPartner001/Export.cpp create mode 100644 core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp diff --git a/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp b/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp index cc3fdc2ea..754cb5382 100644 --- a/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp +++ b/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp @@ -29,4 +29,10 @@ int APS5_VABI sceAudioOut2SetSystemDebugState(const AudioOut2SystemDebugStatePar return 0; } +APS5_EXPORT("iE8trxPKnAg", sceAudioOut2Unknown_iE8trxPKnAg); +int APS5_VABI sceAudioOut2Unknown_iE8trxPKnAg(void) { + NotImplemented_nid_no_patch("iE8trxPKnAg"); + return 0; +} + } diff --git a/core/libs/prx/libSceConvertKeycode/Export.cpp b/core/libs/prx/libSceConvertKeycode/Export.cpp index b643fcbb6..cc99aa240 100644 --- a/core/libs/prx/libSceConvertKeycode/Export.cpp +++ b/core/libs/prx/libSceConvertKeycode/Export.cpp @@ -21,4 +21,11 @@ int APS5_VABI sceConvertKeycodeGetVirtualKeycode(std::uint64_t a0, std::uint64_t static_cast(a0), static_cast(a1), static_cast(a2), static_cast(a3)); return kErrInvalidAddress; } + +APS5_EXPORT("S-Gni2KIJRY", sceConvertKeycodeUnknown_S_MGni2KIJRY); +int APS5_VABI sceConvertKeycodeUnknown_S_MGni2KIJRY(void) { + NotImplemented_nid_no_patch("S-Gni2KIJRY"); + return 0; +} + } diff --git a/core/libs/prx/libSceHttp/Export.cpp b/core/libs/prx/libSceHttp/Export.cpp index 1d10d5348..673332c18 100644 --- a/core/libs/prx/libSceHttp/Export.cpp +++ b/core/libs/prx/libSceHttp/Export.cpp @@ -369,4 +369,29 @@ int APS5_VABI sceHttpGetLastErrno(int request_id, int* errno_out) { *errno_out = 0; return 0; } + +APS5_EXPORT("JBN6N-EY+3M", sceHttpUnknown_JBN6N_MEY_P3M); +int APS5_VABI sceHttpUnknown_JBN6N_MEY_P3M(void) { + NotImplemented_nid_no_patch("JBN6N-EY+3M"); + return 0; +} + +APS5_EXPORT("Kh6bS2HQKbo", sceHttpUnknown_Kh6bS2HQKbo); +int APS5_VABI sceHttpUnknown_Kh6bS2HQKbo(void) { + NotImplemented_nid_no_patch("Kh6bS2HQKbo"); + return 0; +} + +APS5_EXPORT("U5ExQGyyx9s", sceHttpUnknown_U5ExQGyyx9s); +int APS5_VABI sceHttpUnknown_U5ExQGyyx9s(void) { + NotImplemented_nid_no_patch("U5ExQGyyx9s"); + return 0; +} + +APS5_EXPORT("h9wmFZX4i-4", sceHttpUnknown_h9wmFZX4i_M4); +int APS5_VABI sceHttpUnknown_h9wmFZX4i_M4(void) { + NotImplemented_nid_no_patch("h9wmFZX4i-4"); + return 0; +} + } diff --git a/core/libs/prx/libSceJson2/Export.cpp b/core/libs/prx/libSceJson2/Export.cpp index 363c59cde..24b692819 100644 --- a/core/libs/prx/libSceJson2/Export.cpp +++ b/core/libs/prx/libSceJson2/Export.cpp @@ -803,4 +803,16 @@ int APS5_VABI _ZN3sce4Json11Initializer10initializeEPKNS0_14InitParameter2E(void return 0; } +APS5_EXPORT("FIjXN2TkuTs", sceJsonUnknown_FIjXN2TkuTs); +int APS5_VABI sceJsonUnknown_FIjXN2TkuTs(void) { + NotImplemented_nid_no_patch("FIjXN2TkuTs"); + return 0; +} + +APS5_EXPORT("i-XwZjw0OOY", sceJsonUnknown_i_MXwZjw0OOY); +int APS5_VABI sceJsonUnknown_i_MXwZjw0OOY(void) { + NotImplemented_nid_no_patch("i-XwZjw0OOY"); + return 0; +} + } diff --git a/core/libs/prx/libSceNet/Export.cpp b/core/libs/prx/libSceNet/Export.cpp index bd02f7958..86fdaaf97 100644 --- a/core/libs/prx/libSceNet/Export.cpp +++ b/core/libs/prx/libSceNet/Export.cpp @@ -1048,4 +1048,10 @@ int APS5_VABI sceNetResolverGetError(int rid, int* status) { return 0; } +APS5_EXPORT("AzqoBha7js4", sceNetUnknown_AzqoBha7js4); +int APS5_VABI sceNetUnknown_AzqoBha7js4(void) { + NotImplemented_nid_no_patch("AzqoBha7js4"); + return 0; +} + } diff --git a/core/libs/prx/libSceNpCommerce/Export.cpp b/core/libs/prx/libSceNpCommerce/Export.cpp index 6b2bd01d9..ef3fe2cfd 100644 --- a/core/libs/prx/libSceNpCommerce/Export.cpp +++ b/core/libs/prx/libSceNpCommerce/Export.cpp @@ -79,4 +79,10 @@ int APS5_VABI sceNpCommerceSetPsStoreIconLayout(int layout) { return 0; } +APS5_EXPORT("IXmfUaze9So", sceNpCommerceUnknown_IXmfUaze9So); +int APS5_VABI sceNpCommerceUnknown_IXmfUaze9So(void) { + NotImplemented_nid_no_patch("IXmfUaze9So"); + return 0; +} + } diff --git a/core/libs/prx/libSceNpEntitlementAccess/Export.cpp b/core/libs/prx/libSceNpEntitlementAccess/Export.cpp index 31fa46049..b8f84d100 100644 --- a/core/libs/prx/libSceNpEntitlementAccess/Export.cpp +++ b/core/libs/prx/libSceNpEntitlementAccess/Export.cpp @@ -144,4 +144,10 @@ int APS5_VABI sceNpEntitlementAccessRequestUnifiedEntitlementInfo(void) { return 0; } +APS5_EXPORT("eDXKe9FndlE", sceNpEntitlementAccessPftUnknown_eDXKe9FndlE); +int APS5_VABI sceNpEntitlementAccessPftUnknown_eDXKe9FndlE(void) { + NotImplemented_nid_no_patch("eDXKe9FndlE"); + return 0; +} + } diff --git a/core/libs/prx/libSceNpPartner001/Export.cpp b/core/libs/prx/libSceNpPartner001/Export.cpp new file mode 100644 index 000000000..ef5b77a1f --- /dev/null +++ b/core/libs/prx/libSceNpPartner001/Export.cpp @@ -0,0 +1,17 @@ +#include "prx/libc/include/General.hpp" + +extern "C" { + +APS5_EXPORT("7CxI50-xlCk", sceNpPartnerUnknown_7CxI50_MxlCk); +int APS5_VABI sceNpPartnerUnknown_7CxI50_MxlCk(void) { + NotImplemented_nid_no_patch("7CxI50-xlCk"); + return 0; +} + +APS5_EXPORT("pMxXhNozUX8", sceNpPartnerUnknown_pMxXhNozUX8); +int APS5_VABI sceNpPartnerUnknown_pMxXhNozUX8(void) { + NotImplemented_nid_no_patch("pMxXhNozUX8"); + return 0; +} + +} diff --git a/core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp b/core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp new file mode 100644 index 000000000..49b35a64f --- /dev/null +++ b/core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp @@ -0,0 +1,29 @@ +#include "prx/libc/include/General.hpp" + +extern "C" { + +APS5_EXPORT("Asuucx2vvaE", sceProprietaryVoiceChatHelperUnknown_Asuucx2vvaE); +int APS5_VABI sceProprietaryVoiceChatHelperUnknown_Asuucx2vvaE(void) { + NotImplemented_nid_no_patch("Asuucx2vvaE"); + return 0; +} + +APS5_EXPORT("LDjk9ULlN34", sceProprietaryVoiceChatHelperUnknown_LDjk9ULlN34); +int APS5_VABI sceProprietaryVoiceChatHelperUnknown_LDjk9ULlN34(void) { + NotImplemented_nid_no_patch("LDjk9ULlN34"); + return 0; +} + +APS5_EXPORT("QJy6V9QAXXE", sceProprietaryVoiceChatHelperUnknown_QJy6V9QAXXE); +int APS5_VABI sceProprietaryVoiceChatHelperUnknown_QJy6V9QAXXE(void) { + NotImplemented_nid_no_patch("QJy6V9QAXXE"); + return 0; +} + +APS5_EXPORT("lrswogWNZyM", sceProprietaryVoiceChatHelperUnknown_lrswogWNZyM); +int APS5_VABI sceProprietaryVoiceChatHelperUnknown_lrswogWNZyM(void) { + NotImplemented_nid_no_patch("lrswogWNZyM"); + return 0; +} + +} diff --git a/core/libs/prx/libScePsml_debug/Export.cpp b/core/libs/prx/libScePsml_debug/Export.cpp index 2e8ee6e64..dcace7377 100644 --- a/core/libs/prx/libScePsml_debug/Export.cpp +++ b/core/libs/prx/libScePsml_debug/Export.cpp @@ -105,4 +105,58 @@ int APS5_VABI scePsmlUnknown_jEevBXmagOQ() { return 0; } +APS5_EXPORT("0GAw7SmkwII", scePsmlMfsr2Unknown_0GAw7SmkwII); +int APS5_VABI scePsmlMfsr2Unknown_0GAw7SmkwII(void) { + NotImplemented_nid_no_patch("0GAw7SmkwII"); + return 0; +} + +APS5_EXPORT("1ic5q-kdOsc", scePsmlMfsr2Unknown_1ic5q_MkdOsc); +int APS5_VABI scePsmlMfsr2Unknown_1ic5q_MkdOsc(void) { + NotImplemented_nid_no_patch("1ic5q-kdOsc"); + return 0; +} + +APS5_EXPORT("5z2gBlqxJ+0", scePsmlMfsr2Unknown_5z2gBlqxJ_P0); +int APS5_VABI scePsmlMfsr2Unknown_5z2gBlqxJ_P0(void) { + NotImplemented_nid_no_patch("5z2gBlqxJ+0"); + return 0; +} + +APS5_EXPORT("Kyy1baXgaVU", scePsmlMfsr2Unknown_Kyy1baXgaVU); +int APS5_VABI scePsmlMfsr2Unknown_Kyy1baXgaVU(void) { + NotImplemented_nid_no_patch("Kyy1baXgaVU"); + return 0; +} + +APS5_EXPORT("ZLL31lzzxr4", scePsmlMfsr2Unknown_ZLL31lzzxr4); +int APS5_VABI scePsmlMfsr2Unknown_ZLL31lzzxr4(void) { + NotImplemented_nid_no_patch("ZLL31lzzxr4"); + return 0; +} + +APS5_EXPORT("gMduXCLYrNg", scePsmlMfsr2Unknown_gMduXCLYrNg); +int APS5_VABI scePsmlMfsr2Unknown_gMduXCLYrNg(void) { + NotImplemented_nid_no_patch("gMduXCLYrNg"); + return 0; +} + +APS5_EXPORT("lrJwpLjKXRc", scePsmlMfsr2Unknown_lrJwpLjKXRc); +int APS5_VABI scePsmlMfsr2Unknown_lrJwpLjKXRc(void) { + NotImplemented_nid_no_patch("lrJwpLjKXRc"); + return 0; +} + +APS5_EXPORT("m9JLPc3wOQw", scePsmlMfsr2Unknown_m9JLPc3wOQw); +int APS5_VABI scePsmlMfsr2Unknown_m9JLPc3wOQw(void) { + NotImplemented_nid_no_patch("m9JLPc3wOQw"); + return 0; +} + +APS5_EXPORT("o+NM86gEwFE", scePsmlMfsr2Unknown_o_PNM86gEwFE); +int APS5_VABI scePsmlMfsr2Unknown_o_PNM86gEwFE(void) { + NotImplemented_nid_no_patch("o+NM86gEwFE"); + return 0; +} + } diff --git a/core/libs/prx/libSceVoice/Export.cpp b/core/libs/prx/libSceVoice/Export.cpp index 0f824d139..f689bd624 100644 --- a/core/libs/prx/libSceVoice/Export.cpp +++ b/core/libs/prx/libSceVoice/Export.cpp @@ -209,4 +209,28 @@ int APS5_VABI sceVoiceSetMuteFlag() { return 0; } +APS5_EXPORT("Z6QV6j7igvE", sceVoiceUnknown_Z6QV6j7igvE); +int APS5_VABI sceVoiceUnknown_Z6QV6j7igvE(void) { + NotImplemented_nid_no_patch("Z6QV6j7igvE"); + return 0; +} + +APS5_EXPORT("lLkJVewQK68", sceVoiceUnknown_lLkJVewQK68); +int APS5_VABI sceVoiceUnknown_lLkJVewQK68(void) { + NotImplemented_nid_no_patch("lLkJVewQK68"); + return 0; +} + +APS5_EXPORT("udAxvCePkUs", sceVoiceUnknown_udAxvCePkUs); +int APS5_VABI sceVoiceUnknown_udAxvCePkUs(void) { + NotImplemented_nid_no_patch("udAxvCePkUs"); + return 0; +} + +APS5_EXPORT("xHSNCLrQq3A", sceVoiceUnknown_xHSNCLrQq3A); +int APS5_VABI sceVoiceUnknown_xHSNCLrQq3A(void) { + NotImplemented_nid_no_patch("xHSNCLrQq3A"); + return 0; +} + } diff --git a/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp b/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp index b2281ac47..ca9308012 100644 --- a/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp +++ b/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp @@ -97,4 +97,10 @@ void APS5_VABI pthread_yield_nid_postfix(void) { std::this_thread::yield(); } +APS5_EXPORT("0wu33hunNdE", posixUnknown_0wu33hunNdE); +int APS5_VABI posixUnknown_0wu33hunNdE(void) { + NotImplemented_nid_no_patch("0wu33hunNdE"); + return 0; +} + } diff --git a/docs/dev/TechnicalDebt.md b/docs/dev/TechnicalDebt.md index 99abb9b7e..732e31113 100644 --- a/docs/dev/TechnicalDebt.md +++ b/docs/dev/TechnicalDebt.md @@ -30,6 +30,18 @@ Throughout the project, every function at every stage either **does exactly what ### Unknown function info +- [iE8trxPKnAg](../../core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp) (libSceAudioOut2) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [S-Gni2KIJRY](../../core/libs/prx/libSceConvertKeycode/Export.cpp) (libSceConvertKeycode) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [JBN6N-EY+3M, Kh6bS2HQKbo, U5ExQGyyx9s, h9wmFZX4i-4](../../core/libs/prx/libSceHttp/Export.cpp) (libSceHttp) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [FIjXN2TkuTs, i-XwZjw0OOY](../../core/libs/prx/libSceJson2/Export.cpp) (libSceJson2) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [AzqoBha7js4](../../core/libs/prx/libSceNet/Export.cpp) (libSceNet) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [IXmfUaze9So](../../core/libs/prx/libSceNpCommerce/Export.cpp) (libSceNpCommerce) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [eDXKe9FndlE](../../core/libs/prx/libSceNpEntitlementAccess/Export.cpp) (libSceNpEntitlementAccessPft) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [7CxI50-xlCk, pMxXhNozUX8](../../core/libs/prx/libSceNpPartner001/Export.cpp) (libSceNpPartner001) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [Asuucx2vvaE, LDjk9ULlN34, QJy6V9QAXXE, lrswogWNZyM](../../core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp) (libSceProprietaryVoiceChatHelper) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [0GAw7SmkwII, 1ic5q-kdOsc, 5z2gBlqxJ+0, Kyy1baXgaVU, ZLL31lzzxr4, gMduXCLYrNg, lrJwpLjKXRc, m9JLPc3wOQw, o+NM86gEwFE](../../core/libs/prx/libScePsml_debug/Export.cpp) (libScePsml_mfsr2) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [Z6QV6j7igvE, lLkJVewQK68, udAxvCePkUs, xHSNCLrQq3A](../../core/libs/prx/libSceVoice/Export.cpp) (libSceVoice) - unknown names and signatures, imported by PPSA23566; declared without parameters +- [0wu33hunNdE](../../core/libs/prx/libkernel/Pthread/Posix/Thread.cpp) (libScePosix) - unknown names and signatures, imported by PPSA23566; declared without parameters - [sceAvPlayerAddSource](../../core/libs/prx/libSceAvPlayer/src/Source.cpp) (libSceAvPlayer) - requests up to 4 additional decode-ahead video framebuffers from the memory replacement beyond `num_output_video_framebuffers` when memory is available; the console's internal buffering behaviour is unknown - [sceVideoOutRegisterBuffers2](../../core/libs/prx/libSceVideoOut/src/Buffer.cpp) (libSceVideoOut) - buffer option 8 (STRICT_COLORIMETRY) is presented as option 0, with the stored values unchanged; what the console changes for it is unknown. Only options 0 and 8 are accepted - [sceVideoOutRegisterBuffers2](../../core/libs/prx/libSceVideoOut/src/Buffer.cpp) (libSceVideoOut) - DCC buffers (category 1): `dcc_control` is taken as the CB_DCC_CONTROL block layout, only bits 0x10026c are accepted; `dcc_cb_register_clear_color` as the register-clear texel, only 32-bit values are presented From df98b8899ee6ac3c65956bb6b27181f5df60dc27 Mon Sep 17 00:00:00 2001 From: Chad Date: Tue, 6 Oct 2026 17:28:39 -0500 Subject: [PATCH 2/2] feat(libs): name the PPSA23566 stubs from the shadPS4 NID list and implement sleep 20 of the 31 NIDs have names in shadPS4's aerolib list. They are declared under those names; POSIX sleep is implemented. The NpPartner001 and Psml MFSR2 exports stay unnamed. Co-Authored-By: Claude Opus 5.5 --- .../libSceAudioOut/src/AudioOut2System.cpp | 5 ++--- core/libs/prx/libSceConvertKeycode/Export.cpp | 5 ++--- core/libs/prx/libSceHttp/Export.cpp | 20 ++++++++----------- core/libs/prx/libSceJson2/Export.cpp | 10 ++++------ core/libs/prx/libSceNet/Export.cpp | 5 ++--- core/libs/prx/libSceNpCommerce/Export.cpp | 5 ++--- .../prx/libSceNpEntitlementAccess/Export.cpp | 5 ++--- .../Export.cpp | 20 ++++++++----------- core/libs/prx/libSceVoice/Export.cpp | 20 ++++++++----------- .../prx/libkernel/Pthread/Posix/Thread.cpp | 6 +++--- docs/dev/TechnicalDebt.md | 11 +--------- 11 files changed, 42 insertions(+), 70 deletions(-) diff --git a/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp b/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp index 754cb5382..67d66b44b 100644 --- a/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp +++ b/core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp @@ -29,9 +29,8 @@ int APS5_VABI sceAudioOut2SetSystemDebugState(const AudioOut2SystemDebugStatePar return 0; } -APS5_EXPORT("iE8trxPKnAg", sceAudioOut2Unknown_iE8trxPKnAg); -int APS5_VABI sceAudioOut2Unknown_iE8trxPKnAg(void) { - NotImplemented_nid_no_patch("iE8trxPKnAg"); +int APS5_VABI sceAudioOut2UserGetSupportedAttributes(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceConvertKeycode/Export.cpp b/core/libs/prx/libSceConvertKeycode/Export.cpp index cc99aa240..2ac60a0cd 100644 --- a/core/libs/prx/libSceConvertKeycode/Export.cpp +++ b/core/libs/prx/libSceConvertKeycode/Export.cpp @@ -22,9 +22,8 @@ int APS5_VABI sceConvertKeycodeGetVirtualKeycode(std::uint64_t a0, std::uint64_t return kErrInvalidAddress; } -APS5_EXPORT("S-Gni2KIJRY", sceConvertKeycodeUnknown_S_MGni2KIJRY); -int APS5_VABI sceConvertKeycodeUnknown_S_MGni2KIJRY(void) { - NotImplemented_nid_no_patch("S-Gni2KIJRY"); +int APS5_VABI sceConvertKeycodeGetCharacterFromKeyboardData(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceHttp/Export.cpp b/core/libs/prx/libSceHttp/Export.cpp index 673332c18..16eca0b4a 100644 --- a/core/libs/prx/libSceHttp/Export.cpp +++ b/core/libs/prx/libSceHttp/Export.cpp @@ -370,27 +370,23 @@ int APS5_VABI sceHttpGetLastErrno(int request_id, int* errno_out) { return 0; } -APS5_EXPORT("JBN6N-EY+3M", sceHttpUnknown_JBN6N_MEY_P3M); -int APS5_VABI sceHttpUnknown_JBN6N_MEY_P3M(void) { - NotImplemented_nid_no_patch("JBN6N-EY+3M"); +int APS5_VABI sceHttpsGetSslError(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("Kh6bS2HQKbo", sceHttpUnknown_Kh6bS2HQKbo); -int APS5_VABI sceHttpUnknown_Kh6bS2HQKbo(void) { - NotImplemented_nid_no_patch("Kh6bS2HQKbo"); +int APS5_VABI sceHttpSetCookieRecvCallback(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("U5ExQGyyx9s", sceHttpUnknown_U5ExQGyyx9s); -int APS5_VABI sceHttpUnknown_U5ExQGyyx9s(void) { - NotImplemented_nid_no_patch("U5ExQGyyx9s"); +int APS5_VABI sceHttpsSetSslVersion(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("h9wmFZX4i-4", sceHttpUnknown_h9wmFZX4i_M4); -int APS5_VABI sceHttpUnknown_h9wmFZX4i_M4(void) { - NotImplemented_nid_no_patch("h9wmFZX4i-4"); +int APS5_VABI sceHttpSetRedirectCallback(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceJson2/Export.cpp b/core/libs/prx/libSceJson2/Export.cpp index 24b692819..0d7e33f95 100644 --- a/core/libs/prx/libSceJson2/Export.cpp +++ b/core/libs/prx/libSceJson2/Export.cpp @@ -803,15 +803,13 @@ int APS5_VABI _ZN3sce4Json11Initializer10initializeEPKNS0_14InitParameter2E(void return 0; } -APS5_EXPORT("FIjXN2TkuTs", sceJsonUnknown_FIjXN2TkuTs); -int APS5_VABI sceJsonUnknown_FIjXN2TkuTs(void) { - NotImplemented_nid_no_patch("FIjXN2TkuTs"); +int APS5_VABI _ZN3sce4Json5Value5clearEv(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("i-XwZjw0OOY", sceJsonUnknown_i_MXwZjw0OOY); -int APS5_VABI sceJsonUnknown_i_MXwZjw0OOY(void) { - NotImplemented_nid_no_patch("i-XwZjw0OOY"); +int APS5_VABI _ZN3sce4Json12MemAllocator11notifyErrorEimPv(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceNet/Export.cpp b/core/libs/prx/libSceNet/Export.cpp index 86fdaaf97..c93975c43 100644 --- a/core/libs/prx/libSceNet/Export.cpp +++ b/core/libs/prx/libSceNet/Export.cpp @@ -1048,9 +1048,8 @@ int APS5_VABI sceNetResolverGetError(int rid, int* status) { return 0; } -APS5_EXPORT("AzqoBha7js4", sceNetUnknown_AzqoBha7js4); -int APS5_VABI sceNetUnknown_AzqoBha7js4(void) { - NotImplemented_nid_no_patch("AzqoBha7js4"); +int APS5_VABI sceNetResolverAbort(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceNpCommerce/Export.cpp b/core/libs/prx/libSceNpCommerce/Export.cpp index ef3fe2cfd..525178f39 100644 --- a/core/libs/prx/libSceNpCommerce/Export.cpp +++ b/core/libs/prx/libSceNpCommerce/Export.cpp @@ -79,9 +79,8 @@ int APS5_VABI sceNpCommerceSetPsStoreIconLayout(int layout) { return 0; } -APS5_EXPORT("IXmfUaze9So", sceNpCommerceUnknown_IXmfUaze9So); -int APS5_VABI sceNpCommerceUnknown_IXmfUaze9So(void) { - NotImplemented_nid_no_patch("IXmfUaze9So"); +int APS5_VABI sceNpCommerceDialogOpen2(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceNpEntitlementAccess/Export.cpp b/core/libs/prx/libSceNpEntitlementAccess/Export.cpp index b8f84d100..61f27d29e 100644 --- a/core/libs/prx/libSceNpEntitlementAccess/Export.cpp +++ b/core/libs/prx/libSceNpEntitlementAccess/Export.cpp @@ -144,9 +144,8 @@ int APS5_VABI sceNpEntitlementAccessRequestUnifiedEntitlementInfo(void) { return 0; } -APS5_EXPORT("eDXKe9FndlE", sceNpEntitlementAccessPftUnknown_eDXKe9FndlE); -int APS5_VABI sceNpEntitlementAccessPftUnknown_eDXKe9FndlE(void) { - NotImplemented_nid_no_patch("eDXKe9FndlE"); +int APS5_VABI sceNpEntitlementAccessGetPftFlag(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp b/core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp index 49b35a64f..882e6e92c 100644 --- a/core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp +++ b/core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp @@ -2,27 +2,23 @@ extern "C" { -APS5_EXPORT("Asuucx2vvaE", sceProprietaryVoiceChatHelperUnknown_Asuucx2vvaE); -int APS5_VABI sceProprietaryVoiceChatHelperUnknown_Asuucx2vvaE(void) { - NotImplemented_nid_no_patch("Asuucx2vvaE"); +int APS5_VABI sceProprietaryVoiceChatHelperGetVoiceChatUsageState(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("LDjk9ULlN34", sceProprietaryVoiceChatHelperUnknown_LDjk9ULlN34); -int APS5_VABI sceProprietaryVoiceChatHelperUnknown_LDjk9ULlN34(void) { - NotImplemented_nid_no_patch("LDjk9ULlN34"); +int APS5_VABI sceProprietaryVoiceChatHelperInitialize(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("QJy6V9QAXXE", sceProprietaryVoiceChatHelperUnknown_QJy6V9QAXXE); -int APS5_VABI sceProprietaryVoiceChatHelperUnknown_QJy6V9QAXXE(void) { - NotImplemented_nid_no_patch("QJy6V9QAXXE"); +int APS5_VABI sceProprietaryVoiceChatHelperSetVoiceChatState(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("lrswogWNZyM", sceProprietaryVoiceChatHelperUnknown_lrswogWNZyM); -int APS5_VABI sceProprietaryVoiceChatHelperUnknown_lrswogWNZyM(void) { - NotImplemented_nid_no_patch("lrswogWNZyM"); +int APS5_VABI sceProprietaryVoiceChatHelperTerminate(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libSceVoice/Export.cpp b/core/libs/prx/libSceVoice/Export.cpp index f689bd624..898511c88 100644 --- a/core/libs/prx/libSceVoice/Export.cpp +++ b/core/libs/prx/libSceVoice/Export.cpp @@ -209,27 +209,23 @@ int APS5_VABI sceVoiceSetMuteFlag() { return 0; } -APS5_EXPORT("Z6QV6j7igvE", sceVoiceUnknown_Z6QV6j7igvE); -int APS5_VABI sceVoiceUnknown_Z6QV6j7igvE(void) { - NotImplemented_nid_no_patch("Z6QV6j7igvE"); +int APS5_VABI sceVoiceGetResourceInfo(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("lLkJVewQK68", sceVoiceUnknown_lLkJVewQK68); -int APS5_VABI sceVoiceUnknown_lLkJVewQK68(void) { - NotImplemented_nid_no_patch("lLkJVewQK68"); +int APS5_VABI sceVoiceEnableChat(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("udAxvCePkUs", sceVoiceUnknown_udAxvCePkUs); -int APS5_VABI sceVoiceUnknown_udAxvCePkUs(void) { - NotImplemented_nid_no_patch("udAxvCePkUs"); +int APS5_VABI sceVoiceResetPort(void) { + NotImplemented_nid_no_patch(__func__); return 0; } -APS5_EXPORT("xHSNCLrQq3A", sceVoiceUnknown_xHSNCLrQq3A); -int APS5_VABI sceVoiceUnknown_xHSNCLrQq3A(void) { - NotImplemented_nid_no_patch("xHSNCLrQq3A"); +int APS5_VABI sceVoiceDisableChat(void) { + NotImplemented_nid_no_patch(__func__); return 0; } diff --git a/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp b/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp index ca9308012..56e848102 100644 --- a/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp +++ b/core/libs/prx/libkernel/Pthread/Posix/Thread.cpp @@ -6,6 +6,7 @@ #include "../include/Pthread.hpp" #include "Common.hpp" #include "prx/libkernel/KernelErrors.hpp" +#include #include extern "C" { @@ -97,9 +98,8 @@ void APS5_VABI pthread_yield_nid_postfix(void) { std::this_thread::yield(); } -APS5_EXPORT("0wu33hunNdE", posixUnknown_0wu33hunNdE); -int APS5_VABI posixUnknown_0wu33hunNdE(void) { - NotImplemented_nid_no_patch("0wu33hunNdE"); +unsigned int APS5_VABI sleep_nid_postfix(unsigned int seconds) { + std::this_thread::sleep_for(std::chrono::seconds(seconds)); return 0; } diff --git a/docs/dev/TechnicalDebt.md b/docs/dev/TechnicalDebt.md index 732e31113..0933e7732 100644 --- a/docs/dev/TechnicalDebt.md +++ b/docs/dev/TechnicalDebt.md @@ -30,18 +30,9 @@ Throughout the project, every function at every stage either **does exactly what ### Unknown function info -- [iE8trxPKnAg](../../core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp) (libSceAudioOut2) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [S-Gni2KIJRY](../../core/libs/prx/libSceConvertKeycode/Export.cpp) (libSceConvertKeycode) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [JBN6N-EY+3M, Kh6bS2HQKbo, U5ExQGyyx9s, h9wmFZX4i-4](../../core/libs/prx/libSceHttp/Export.cpp) (libSceHttp) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [FIjXN2TkuTs, i-XwZjw0OOY](../../core/libs/prx/libSceJson2/Export.cpp) (libSceJson2) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [AzqoBha7js4](../../core/libs/prx/libSceNet/Export.cpp) (libSceNet) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [IXmfUaze9So](../../core/libs/prx/libSceNpCommerce/Export.cpp) (libSceNpCommerce) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [eDXKe9FndlE](../../core/libs/prx/libSceNpEntitlementAccess/Export.cpp) (libSceNpEntitlementAccessPft) - unknown names and signatures, imported by PPSA23566; declared without parameters - [7CxI50-xlCk, pMxXhNozUX8](../../core/libs/prx/libSceNpPartner001/Export.cpp) (libSceNpPartner001) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [Asuucx2vvaE, LDjk9ULlN34, QJy6V9QAXXE, lrswogWNZyM](../../core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp) (libSceProprietaryVoiceChatHelper) - unknown names and signatures, imported by PPSA23566; declared without parameters - [0GAw7SmkwII, 1ic5q-kdOsc, 5z2gBlqxJ+0, Kyy1baXgaVU, ZLL31lzzxr4, gMduXCLYrNg, lrJwpLjKXRc, m9JLPc3wOQw, o+NM86gEwFE](../../core/libs/prx/libScePsml_debug/Export.cpp) (libScePsml_mfsr2) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [Z6QV6j7igvE, lLkJVewQK68, udAxvCePkUs, xHSNCLrQq3A](../../core/libs/prx/libSceVoice/Export.cpp) (libSceVoice) - unknown names and signatures, imported by PPSA23566; declared without parameters -- [0wu33hunNdE](../../core/libs/prx/libkernel/Pthread/Posix/Thread.cpp) (libScePosix) - unknown names and signatures, imported by PPSA23566; declared without parameters +- PPSA23566 imports declared without parameters, signatures unknown: [sceAudioOut2UserGetSupportedAttributes](../../core/libs/prx/libSceAudioOut/src/AudioOut2System.cpp), [sceConvertKeycodeGetCharacterFromKeyboardData](../../core/libs/prx/libSceConvertKeycode/Export.cpp), [sceHttpSetCookieRecvCallback, sceHttpSetRedirectCallback, sceHttpsGetSslError, sceHttpsSetSslVersion](../../core/libs/prx/libSceHttp/Export.cpp), [sce::Json::MemAllocator::notifyError, sce::Json::Value::clear](../../core/libs/prx/libSceJson2/Export.cpp), [sceNetResolverAbort](../../core/libs/prx/libSceNet/Export.cpp), [sceNpCommerceDialogOpen2](../../core/libs/prx/libSceNpCommerce/Export.cpp), [sceNpEntitlementAccessGetPftFlag](../../core/libs/prx/libSceNpEntitlementAccess/Export.cpp), [sceProprietaryVoiceChatHelper{Initialize,Terminate,SetVoiceChatState,GetVoiceChatUsageState}](../../core/libs/prx/libSceProprietaryVoiceChatHelperPrx/Export.cpp), [sceVoice{GetResourceInfo,ResetPort,EnableChat,DisableChat}](../../core/libs/prx/libSceVoice/Export.cpp). Names from the shadPS4 aerolib NID list - [sceAvPlayerAddSource](../../core/libs/prx/libSceAvPlayer/src/Source.cpp) (libSceAvPlayer) - requests up to 4 additional decode-ahead video framebuffers from the memory replacement beyond `num_output_video_framebuffers` when memory is available; the console's internal buffering behaviour is unknown - [sceVideoOutRegisterBuffers2](../../core/libs/prx/libSceVideoOut/src/Buffer.cpp) (libSceVideoOut) - buffer option 8 (STRICT_COLORIMETRY) is presented as option 0, with the stored values unchanged; what the console changes for it is unknown. Only options 0 and 8 are accepted - [sceVideoOutRegisterBuffers2](../../core/libs/prx/libSceVideoOut/src/Buffer.cpp) (libSceVideoOut) - DCC buffers (category 1): `dcc_control` is taken as the CB_DCC_CONTROL block layout, only bits 0x10026c are accepted; `dcc_cb_register_clear_color` as the register-clear texel, only 32-bit values are presented