Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 109 additions & 0 deletions core/libs/prx/libSceAmpr/Export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -802,4 +802,113 @@ int APS5_VABI sceAmprAmmWaitCommandBufferCompletion(std::uint32_t id) {
return AmmSubmitted_nid_no_patch(id) ? 0 : SCE_KERNEL_ERROR_ESRCH;
}

int APS5_VABI _ZNSt8ios_base7_AddstdEPS__nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZSt16_Throw_Cpp_errori_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _Thrd_join_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNSt4_Pad8_ReleaseEv_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNSt4_PadC2Ev_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNSt4_PadD2Ev_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _Thrd_id_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNSt4_Pad7_LaunchEPP7pthread_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _Cnd_signal_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _Unlock_shared_ptr_spin_lock_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _Cnd_init_with_name_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZTVN10__cxxabiv120__function_type_infoE_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZTVSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNKSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE3getES3_S3_RSt8ios_baseRNSt5_IosbIiE8_IostateEP2tmPKcSE__nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZTVN10__cxxabiv119__pointer_type_infoE_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZNSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE7_GetcatEPPKNSt6locale5facetEPKS5__nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _Lock_shared_ptr_spin_lock_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _Thrd_sleep_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI wcstombs_s_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI __cxa_call_unexpected_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
}
4 changes: 4 additions & 0 deletions core/libs/prx/libSceHttp/Export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -415,4 +415,8 @@ int APS5_VABI sceHttpSetRedirectCallback(int id, HttpRedirectCallback cbfunc, vo
return 0;
}

int APS5_VABI sceHttpAbortWaitRequest(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
}
10 changes: 9 additions & 1 deletion core/libs/prx/libSceJson2/Export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -780,7 +780,6 @@ int APS5_VABI _ZN3sce4Json17InitParameterRttiC1EPNS0_14AllocParamRttiEPvm(void)
NotImplemented_nid_no_patch(__func__);
return 0;
}

struct InitParameter2 {
void* allocator;
void* userData;
Expand Down Expand Up @@ -817,4 +816,13 @@ int APS5_VABI _ZN3sce4Json12MemAllocator11notifyErrorEimPv(void) {
return 0;
}

int APS5_VABI _ZN3sce4Json14InitParameter2C2Ev(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI _ZN3sce4Json18InitParameterRtti216setAllocatorRttiEPNS0_14AllocParamRttiEPv(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
}
38 changes: 38 additions & 0 deletions core/libs/prx/libSceNetCtlApDialog/Export.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#include <cstdint>
#include <cstddef>
#include "SceTypes.hpp"
#include "prx/libc/include/General.hpp"

extern "C" {

int APS5_VABI sceNetCtlApDialogInitialize(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI sceNetCtlApDialogTerminate(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI sceNetCtlApDialogOpen(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI sceNetCtlApDialogClose(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI sceNetCtlApDialogUpdateStatus(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

int APS5_VABI sceNetCtlApDialogGetResult(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}

}
5 changes: 5 additions & 0 deletions core/libs/prx/libc/Export.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,9 @@ std::uint64_t APS5_VABI libcCyberUnknown16(void) {
NotImplemented_nid_no_patch("vEaqE-7IZYc");
return 0;
}

int APS5_VABI swscanf_s_nid_postfix(void) {
NotImplemented_nid_no_patch(__func__);
return 0;
}
}
102 changes: 102 additions & 0 deletions core/libs/prx/libkernel/Unimplemented.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,106 @@ int APS5_VABI pthread_cancel_nid_postfix(void) {
NotImplemented_nid_no_patch("0D4-FVvEikw");
return 0;
}

APS5_EXPORT("AC1FtjqMCL0", sceKernelUnknown03);
int APS5_VABI sceKernelUnknown03(void) {
NotImplemented_nid_no_patch("AC1FtjqMCL0");
return 0;
}

APS5_EXPORT("0iEKNAvT600", sceKernelUnknown04);
int APS5_VABI sceKernelUnknown04(void) {
NotImplemented_nid_no_patch("0iEKNAvT600");
return 0;
}

APS5_EXPORT("2cELEBPdYQ0", sceKernelUnknown05);
int APS5_VABI sceKernelUnknown05(void) {
NotImplemented_nid_no_patch("2cELEBPdYQ0");
return 0;
}

APS5_EXPORT("5xYxiOtOccA", sceKernelUnknown06);
int APS5_VABI sceKernelUnknown06(void) {
NotImplemented_nid_no_patch("5xYxiOtOccA");
return 0;
}

APS5_EXPORT("6W+shIH315Q", sceKernelUnknown07);
int APS5_VABI sceKernelUnknown07(void) {
NotImplemented_nid_no_patch("6W+shIH315Q");
return 0;
}

APS5_EXPORT("7ilObq815O4", sceKernelUnknown08);
int APS5_VABI sceKernelUnknown08(void) {
NotImplemented_nid_no_patch("7ilObq815O4");
return 0;
}

APS5_EXPORT("7iq7Hfs8HBk", sceKernelUnknown09);
int APS5_VABI sceKernelUnknown09(void) {
NotImplemented_nid_no_patch("7iq7Hfs8HBk");
return 0;
}

APS5_EXPORT("AMJZhpC+siY", sceKernelUnknown10);
int APS5_VABI sceKernelUnknown10(void) {
NotImplemented_nid_no_patch("AMJZhpC+siY");
return 0;
}

APS5_EXPORT("E9XkHowt+dY", sceKernelUnknown11);
int APS5_VABI sceKernelUnknown11(void) {
NotImplemented_nid_no_patch("E9XkHowt+dY");
return 0;
}

APS5_EXPORT("GADjreszOgM", sceKernelUnknown12);
int APS5_VABI sceKernelUnknown12(void) {
NotImplemented_nid_no_patch("GADjreszOgM");
return 0;
}

APS5_EXPORT("Giyg2xGrXDU", sceKernelUnknown13);
int APS5_VABI sceKernelUnknown13(void) {
NotImplemented_nid_no_patch("Giyg2xGrXDU");
return 0;
}

APS5_EXPORT("KC3y21wrqzc", sceKernelUnknown14);
int APS5_VABI sceKernelUnknown14(void) {
NotImplemented_nid_no_patch("KC3y21wrqzc");
return 0;
}

APS5_EXPORT("Qb8wS4GZUsw", sceKernelUnknown15);
int APS5_VABI sceKernelUnknown15(void) {
NotImplemented_nid_no_patch("Qb8wS4GZUsw");
return 0;
}

APS5_EXPORT("aAQZSjb2fho", sceKernelUnknown16);
int APS5_VABI sceKernelUnknown16(void) {
NotImplemented_nid_no_patch("aAQZSjb2fho");
return 0;
}

APS5_EXPORT("pnz21I6VjDs", sceKernelUnknown17);
int APS5_VABI sceKernelUnknown17(void) {
NotImplemented_nid_no_patch("pnz21I6VjDs");
return 0;
}

APS5_EXPORT("qk043QPsrZU", sceKernelUnknown18);
int APS5_VABI sceKernelUnknown18(void) {
NotImplemented_nid_no_patch("qk043QPsrZU");
return 0;
}

APS5_EXPORT("uDGXwUKqi8s", sceKernelUnknown19);
int APS5_VABI sceKernelUnknown19(void) {
NotImplemented_nid_no_patch("uDGXwUKqi8s");
return 0;
}
}
17 changes: 17 additions & 0 deletions docs/dev/TechnicalDebt.md
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,23 @@ Throughout the project, every function at every stage either **does exactly what
- [sceRtcFormatRFC2822, sceRtcFormatRFC2822LocalTime, sceRtcFormatRFC3339LocalTime](../../core/libs/prx/libSceRtc/Export.cpp) (libSceRtc) - only shadPS4 (PS4) has bodies. A null tick returns `INVALID_POINTER` like the existing `sceRtcFormatRFC3339`, where shadPS4 formats the current time instead; offsets outside ±1439 minutes return `INVALID_VALUE` like `sceRtcFormatRFC3339`; the local-time variants use the host's offset at the given instant (shadPS4 uses `sceKernelGettimezone`, the current offset)
- [snwprintf_s](../../core/libs/prx/libc/src/FormattingWide.cpp) (libc) - follows C11 K.3.9.1.3 with `RSIZE_MAX` assumed to be `SIZE_MAX >> 1`. A runtime-constraint violation only returns a negative value: `set_constraint_handler_s` is not exported and the console's default handler is unknown. An invalid multibyte `%s` argument is copied byte by byte instead of being reported as an encoding error, as in `vswprintf`
- [libSceUlt queues](../../core/libs/prx/libSceUlt/Export.cpp) - the added `sceUltQueuePop`, `sceUltQueueTryPush`, `sceUltQueueDestroy` and `sceUltQueueDataResourcePoolDestroy` signatures are inferred from the existing push/pop and object APIs. Queue destruction is assumed to reject blocked callers with `ULT_ERROR_BUSY` and otherwise discard queued data; pool exhaustion returns `ULT_ERROR_AGAIN`. These rules, alignment checks and shared slot limits have not been confirmed on PS5 hardware or a title. Non-null queue and data-pool option parameters throw because their layouts are unknown.
- [AC1FtjqMCL0](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [0iEKNAvT600](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [2cELEBPdYQ0](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [5xYxiOtOccA](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [6W+shIH315Q](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [7ilObq815O4](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [7iq7Hfs8HBk](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [AMJZhpC+siY](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [E9XkHowt+dY](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [GADjreszOgM](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [Giyg2xGrXDU](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [KC3y21wrqzc](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [Qb8wS4GZUsw](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [aAQZSjb2fho](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [pnz21I6VjDs](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [qk043QPsrZU](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [uDGXwUKqi8s](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
- [LinuxProtFromSce](../../core/libs/prx/libkernel/DirectMemory/DirectMemory.cpp) (libkernel) - protection bits 0x100 and 0x200 are accepted and assumed not to affect host CPU access; host protection is derived only from the read, write and execute bits
- [_sceUlobjmgrRegisterObject](../../core/libs/prx/ulobjmgr/Export.cpp) (ulobjmgr) - parameters taken from shadPS4 (PS4): a nonzero 64-bit object, a nonzero 32-bit kind and a 32-bit id output; the meaning of the first two and the PS5 signature are unverified. The id bound of `_sceUlobjmgrUnregisterObject` (below 0x4000) and the raw `EINVAL` (22) return also come from shadPS4
- [sceShareGetCurrentStatus](../../core/libs/prx/libSceShare/Export.cpp) (libSceShare) - validation (feature flag non-zero, status non-null) and the all-zero 16-byte status taken from the [KytyPS5](https://github.com/KytyPS5/KytyPS5) reimplementation, not confirmed on a PS5 title; the meaning of the recording status values is unknown
Expand Down
Loading