feat(libkernel): implement sceKernelGetOperationMode
NH6xARDOVv8 is the NID of sceKernelGetOperationMode. PPSA12544 passes two int outputs and logs them as mode and submode; both are reported as 0. B2n8aDorSH4 and PZQhiiLXRFs are sceKernelSyncOnAddressWait32 and sceKernelSyncOnAddressWait64, implemented by #633, and are no longer added as unimplemented exports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
8f6328242d
commit
4a548c0ba5
|
|
@ -321,4 +321,12 @@ int APS5_VABI sceKernelIsTrinityMode(void) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceKernelGetOperationMode(int* mode, int* submode) {
|
||||
if (!mode || !submode)
|
||||
throw std::invalid_argument("sceKernelGetOperationMode: null output");
|
||||
*mode = 0;
|
||||
*submode = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,24 +30,6 @@ int APS5_VABI sceKernelUnknown02(void) {
|
|||
NotImplemented_nid_no_patch("0D4-FVvEikw");
|
||||
return 0;
|
||||
}
|
||||
APS5_EXPORT("B2n8aDorSH4", sceKernelUnknown_B2n8aDorSH4);
|
||||
int APS5_VABI sceKernelUnknown_B2n8aDorSH4(void) {
|
||||
NotImplemented_nid_no_patch("B2n8aDorSH4");
|
||||
return 0;
|
||||
}
|
||||
|
||||
APS5_EXPORT("NH6xARDOVv8", sceKernelUnknown_NH6xARDOVv8);
|
||||
int APS5_VABI sceKernelUnknown_NH6xARDOVv8(void) {
|
||||
NotImplemented_nid_no_patch("NH6xARDOVv8");
|
||||
return 0;
|
||||
}
|
||||
|
||||
APS5_EXPORT("PZQhiiLXRFs", sceKernelUnknown_PZQhiiLXRFs);
|
||||
int APS5_VABI sceKernelUnknown_PZQhiiLXRFs(void) {
|
||||
NotImplemented_nid_no_patch("PZQhiiLXRFs");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int APS5_VABI sceKernelFchmod(void) {
|
||||
NotImplemented_nid_no_patch(__func__);
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ Throughout the project, every function at every stage either **does exactly what
|
|||
- [dbOlWdppb4o, vieBRwlh1Lw](../../core/libs/prx/libSceAgc/Unimplemented.cpp) (libSceAgc) - unknown name, signature
|
||||
- [OQ-dzhlnM28, qBS714-Jr3g, tB59hFLH3SA](../../core/libs/prx/libc/src/HeapDiagnostics.cpp) (libSceLibcInternalExt, implemented in libc) - unknown name, signature
|
||||
- [fCWdlnmB1Ks](../../core/libs/prx/libScePad/Export.cpp) (libScePad) - unknown name, signature
|
||||
- [B2n8aDorSH4, NH6xARDOVv8, PZQhiiLXRFs](../../core/libs/prx/libkernel/Unimplemented.cpp) (libkernel) - unknown name, signature
|
||||
- [sceKernelGetOperationMode](../../core/libs/prx/libkernel/System/src/Process.cpp) (libkernel) - the signature `(int* mode, int* submode)` comes from PPSA12544, which logs both values after the call; the values are unknown and 0 is reported for both, as in the [prosper](https://github.com/mattias800/prosper/pull/4153) reimplementation. Null outputs throw
|
||||
- Font, Http2, Net, Ssl, SystemService and libkernel exports imported by PPSA12544 and added without an implementation have unknown signatures
|
||||
- [libSceAudioPropagation](../../core/libs/prx/libSceAudioPropagation/Export.cpp) (libSceAudioPropagation) - signatures and struct descriptors recovered from PPSA21567's calls (#481), not from documentation. The system options layout is unknown (only checked for non-null); the fourth argument of `sceAudioPropagationSourceCalculateAudioPaths` is unknown; `sceAudioPropagationSourceGetAudioPath` is assumed to output an 8-byte path handle. The meaning of the `RenderInfo` word at +0x28 is unknown (PPSA21567 and PPSA21564 pass 2); only 2 is accepted. Both titles pass one `RenderInfo` per call: a count of 0 throws, and larger counts are handled element by element without proof. No error code is known, so invalid input throws instead of returning one
|
||||
- [sceAvPlayerStartEx](../../core/libs/prx/libSceAvPlayer/Export.cpp) (libSceAvPlayer) - start info layout unknown; it is ignored and playback starts as with `sceAvPlayerStart`
|
||||
|
|
|
|||
Loading…
Reference in New Issue