sceSysmoduleLoadModuleInternal

This commit is contained in:
Pavel 2022-12-29 17:20:46 +03:00
parent 264ded3072
commit d06ac398f7
2 changed files with 92 additions and 8 deletions

View File

@ -142,6 +142,38 @@ const
SCE_SYSMODULE_CES_CS =$010c;
SCE_SYSMODULE_PLAYER_INVITATION_DIALOG =$010d;
// Internal
SCE_SYSMODULE_INTERNAL_AUDIOOUT =$80000001; //libSceAudioOut
SCE_SYSMODULE_INTERNAL_AUDIOIN =$80000002; //libSceAudioIn
SCE_SYSMODULE_INTERNAL_AV_CAPTURE =$80000003; //libSceAvcap
SCE_SYSMODULE_INTERNAL_SYSCORE =$80000004; //libSceSysCore
SCE_SYSMODULE_INTERNAL_CDLG_UTILITY_SERVER=$80000007; //libSceCdlgUtilServer
SCE_SYSMODULE_INTERNAL_KEYBOARD =$80000008; //libSceKeyboard
SCE_SYSMODULE_INTERNAL_NETCTL =$80000009; //libSceNetCtl
SCE_SYSMODULE_INTERNAL_HTTP =$8000000A; //libSceHttp
SCE_SYSMODULE_INTERNAL_SSL =$8000000B; //libSceSsl
SCE_SYSMODULE_INTERNAL_NP_COMMON =$8000000C; //libSceNpCommon
SCE_SYSMODULE_INTERNAL_NP_MANAGER =$8000000D; //libSceNpManager
SCE_SYSMODULE_INTERNAL_NP_WEB_API =$8000000E; //libSceNpWebApi
SCE_SYSMODULE_INTERNAL_SAVE_DATA =$8000000F; //libSceSaveData
SCE_SYSMODULE_INTERNAL_SYSTEM_SERVICE =$80000010; //libSceSystemService
SCE_SYSMODULE_INTERNAL_USER_SERVICE =$80000011; //libSceUserService
SCE_SYSMODULE_INTERNAL_VISION_MANAGER =$80000012; //libSceVisionManager
SCE_SYSMODULE_INTERNAL_AC3_ENC =$80000013; //libSceAc3Enc
SCE_SYSMODULE_INTERNAL_APP_INST_UTIL =$80000014; //libSceAppInstUtil
SCE_SYSMODULE_INTERNAL_VDECCORE =$80000015; //libSceVdecCore
SCE_SYSMODULE_INTERNAL_VENCCORE =$80000016; //libSceVencCore
SCE_SYSMODULE_INTERNAL_HID_CONTROL =$80000017; //libSceHidControl
SCE_SYSMODULE_INTERNAL_COMMON_DIALOG =$80000018; //libSceCommonDialog
SCE_SYSMODULE_INTERNAL_PERF =$80000019; //libScePerf
SCE_SYSMODULE_INTERNAL_CAMERA =$8000001A; //libSceCamera
SCE_SYSMODULE_INTERNAL_NET =$8000001C; //libSceNet
SCE_SYSMODULE_INTERNAL_IPMI =$8000001D; //libSceIpmi
SCE_SYSMODULE_INTERNAL_VIDEO_OUT =$80000022; //libSceVideoOut
SCE_SYSMODULE_INTERNAL_BGFT =$8000002A; //libSceBgft
SCE_SYSMODULE_INTERNAL_PRECOMPILED_SHADERS=$80000064; //libScePrecompiledShaders
SCE_SYSMODULE_INTERNAL_PAD =$80000024; //libScePad
SCE_SYSMODULE_ERROR_INVALID_VALUE=-2141581312; // 0x805A1000
SCE_SYSMODULE_ERROR_UNLOADED =-2141581311; // 0x805A1001
SCE_SYSMODULE_ERROR_FATAL =-2141581057; // 0x805A10FF
@ -284,8 +316,46 @@ begin
SCE_SYSMODULE_CES_CS :Result:='SCE_SYSMODULE_CES_CS';
SCE_SYSMODULE_PLAYER_INVITATION_DIALOG :Result:='SCE_SYSMODULE_PLAYER_INVITATION_DIALOG';
else
Result:=HexStr(id,4);
Result:='0x'+HexStr(id,4);
end;
end;
function GetSysmoduleInternalName(id:DWord):RawByteString;
begin
Case id of
SCE_SYSMODULE_INTERNAL_AUDIOOUT :Result:='SCE_SYSMODULE_INTERNAL_AUDIOOUT';
SCE_SYSMODULE_INTERNAL_AUDIOIN :Result:='SCE_SYSMODULE_INTERNAL_AUDIOIN';
SCE_SYSMODULE_INTERNAL_AV_CAPTURE :Result:='SCE_SYSMODULE_INTERNAL_AV_CAPTURE';
SCE_SYSMODULE_INTERNAL_SYSCORE :Result:='SCE_SYSMODULE_INTERNAL_SYSCORE';
SCE_SYSMODULE_INTERNAL_CDLG_UTILITY_SERVER:Result:='SCE_SYSMODULE_INTERNAL_CDLG_UTILITY_SERVER';
SCE_SYSMODULE_INTERNAL_KEYBOARD :Result:='SCE_SYSMODULE_INTERNAL_KEYBOARD';
SCE_SYSMODULE_INTERNAL_NETCTL :Result:='SCE_SYSMODULE_INTERNAL_NETCTL';
SCE_SYSMODULE_INTERNAL_HTTP :Result:='SCE_SYSMODULE_INTERNAL_HTTP';
SCE_SYSMODULE_INTERNAL_SSL :Result:='SCE_SYSMODULE_INTERNAL_SSL';
SCE_SYSMODULE_INTERNAL_NP_COMMON :Result:='SCE_SYSMODULE_INTERNAL_NP_COMMON';
SCE_SYSMODULE_INTERNAL_NP_MANAGER :Result:='SCE_SYSMODULE_INTERNAL_NP_MANAGER';
SCE_SYSMODULE_INTERNAL_NP_WEB_API :Result:='SCE_SYSMODULE_INTERNAL_NP_WEB_API';
SCE_SYSMODULE_INTERNAL_SAVE_DATA :Result:='SCE_SYSMODULE_INTERNAL_SAVE_DATA';
SCE_SYSMODULE_INTERNAL_SYSTEM_SERVICE :Result:='SCE_SYSMODULE_INTERNAL_SYSTEM_SERVICE';
SCE_SYSMODULE_INTERNAL_USER_SERVICE :Result:='SCE_SYSMODULE_INTERNAL_USER_SERVICE';
SCE_SYSMODULE_INTERNAL_VISION_MANAGER :Result:='SCE_SYSMODULE_INTERNAL_VISION_MANAGER';
SCE_SYSMODULE_INTERNAL_AC3_ENC :Result:='SCE_SYSMODULE_INTERNAL_AC3_ENC';
SCE_SYSMODULE_INTERNAL_APP_INST_UTIL :Result:='SCE_SYSMODULE_INTERNAL_APP_INST_UTIL';
SCE_SYSMODULE_INTERNAL_VDECCORE :Result:='SCE_SYSMODULE_INTERNAL_VDECCORE';
SCE_SYSMODULE_INTERNAL_VENCCORE :Result:='SCE_SYSMODULE_INTERNAL_VENCCORE';
SCE_SYSMODULE_INTERNAL_HID_CONTROL :Result:='SCE_SYSMODULE_INTERNAL_HID_CONTROL';
SCE_SYSMODULE_INTERNAL_COMMON_DIALOG :Result:='SCE_SYSMODULE_INTERNAL_COMMON_DIALOG';
SCE_SYSMODULE_INTERNAL_PERF :Result:='SCE_SYSMODULE_INTERNAL_PERF';
SCE_SYSMODULE_INTERNAL_CAMERA :Result:='SCE_SYSMODULE_INTERNAL_CAMERA';
SCE_SYSMODULE_INTERNAL_NET :Result:='SCE_SYSMODULE_INTERNAL_NET';
SCE_SYSMODULE_INTERNAL_IPMI :Result:='SCE_SYSMODULE_INTERNAL_IPMI';
SCE_SYSMODULE_INTERNAL_VIDEO_OUT :Result:='SCE_SYSMODULE_INTERNAL_VIDEO_OUT';
SCE_SYSMODULE_INTERNAL_BGFT :Result:='SCE_SYSMODULE_INTERNAL_BGFT';
SCE_SYSMODULE_INTERNAL_PRECOMPILED_SHADERS:Result:='SCE_SYSMODULE_INTERNAL_PRECOMPILED_SHADERS';
SCE_SYSMODULE_INTERNAL_PAD :Result:='SCE_SYSMODULE_INTERNAL_PAD';
else
Result:='0x'+HexStr(id,8);
end;
end;

View File

@ -442,11 +442,14 @@ const
type
PSCE_APP_ENV=^TSCE_APP_ENV;
TSCE_APP_ENV=packed record
unk1:array[0..15] of Byte; //16
ustr:array[0.. 9] of char; //10
unk2:array[0..37] of Byte; //38
flags:Byte; //1 eLoadOptions
unk3:array[0.. 6] of Byte; //7
AppId:Integer; //4
unk1:Integer; //4
unk2:Integer; //4
AppType:Integer; //4
TitleId:array[0.. 9] of char; //10
unk3:array[0..37] of Byte; //38
flags:Byte; //1 eLoadOptions
unk4:array[0.. 6] of Byte; //7
end;
//sysctl to KERN_PROC_ENV
@ -460,6 +463,7 @@ begin
end;
env^:=Default(TSCE_APP_ENV);
env^.AppId:=pid;
_set_errno(0);
Result:=0;
@ -880,10 +884,19 @@ function ps4_sceSysmoduleIsLoadedInternal(id:DWord):Integer; SysV_ABI_CDecl;
begin
if ((id or $80000000)=$80000000) then Exit(SCE_SYSMODULE_ERROR_INVALID_VALUE);
Writeln('sceSysmoduleIsLoadedInternal:',GetSysmoduleName(id));
Writeln('sceSysmoduleIsLoadedInternal:',GetSysmoduleInternalName(id));
Result:=0; //0 -> loaded ; SCE_SYSMODULE_ERROR_UNLOADED -> not loaded
end;
function ps4_sceSysmoduleLoadModuleInternal(id:DWord):Integer; SysV_ABI_CDecl;
begin
if ((id or $80000000)=$80000000) then Exit(SCE_SYSMODULE_ERROR_INVALID_VALUE);
if ((Word(id)=$80) and (SDK_VERSION>=$3000000)) then Exit(SCE_SYSMODULE_ERROR_INVALID_VALUE);
Writeln('sceSysmoduleLoadModuleInternal:',GetSysmoduleInternalName(id));
Result:=0;
end;
function ps4_sceSysmoduleLoadModuleInternalWithArg(id:Word;
argc:size_t;
argp:PPointer;
@ -893,7 +906,7 @@ begin
if ((id or $80000000)=$80000000) or (flags<>0) then Exit(SCE_SYSMODULE_ERROR_INVALID_VALUE);
if ((Word(id)=$80) and (SDK_VERSION>=$3000000)) then Exit(SCE_SYSMODULE_ERROR_INVALID_VALUE);
Writeln('sceSysmoduleLoadModuleInternalWithArg:',GetSysmoduleName(id));
Writeln('sceSysmoduleLoadModuleInternalWithArg:',GetSysmoduleInternalName(id));
if (pRes<>nil) then pRes^:=0;
Result:=0;
end;
@ -915,6 +928,7 @@ begin
lib^.set_proc($7CC3F934750E68C9,@ps4_sceSysmoduleIsLoaded);
lib^.set_proc($CA714A4396DF1A4B,@ps4_sceSysmoduleIsLoadedInternal);
lib^.set_proc($DFD895E44D47A029,@ps4_sceSysmoduleLoadModuleInternal);
lib^.set_proc($847AC6A06A0D7FEB,@ps4_sceSysmoduleLoadModuleInternalWithArg);
lib^.set_proc($E1F539CAF3A4546E,@ps4_sceSysmoduleGetModuleInfoForUnwind);