This commit is contained in:
Pavel 2022-07-14 14:59:03 +03:00
parent 7850326b6c
commit a4ec0e0a23
14 changed files with 657 additions and 114 deletions

View File

@ -13,6 +13,9 @@ uses
sys_types,
sys_pthread,
ps4libdoc,
//ps4_libSceRtc
ps4_libSceNpSignaling,
ps4_libSceNpMatching2,
ps4_libSceRemoteplay,
ps4_libSceAjm,
ps4_libSceMouse,
@ -30,7 +33,7 @@ uses
ps4_libSceSaveData,
ps4_libSceDialogs,
ps4_libSceUserService,
ps4_libsceaudioout,
ps4_libSceAudioOut,
ps4_libSceVideoOut,
ps4_libScePad,
ps4_libkernel,
@ -268,6 +271,9 @@ begin
begin
//Case Info^.lib^.strName of
// 'libSceGnmDriver':;
// 'libSceAjm':;
// 'libSceAudioOut':;
// 'libc':;
// 'libSceLibcInternal':;
// else
@ -286,8 +292,8 @@ begin
// 'sceKernelClockGettime':;
// 'pthread_mutex_lock':;
// 'pthread_mutex_unlock':;
// //'sceKernelPread':;
// //'sceKernelClose':;
// 'sceKernelPread':;
// 'sceKernelClose':;
// 'sceDiscMapIsRequestOnHDD':;
// 'Unknow':;
// 'sceFiosIOFilterPsarcDearchiver':;
@ -301,10 +307,11 @@ begin
// 'scePthreadRwlockUnlock':;
// 'scePthreadCondBroadcast':;
// 'sceFiosFHCloseSync':;
// //'sceKernelStat':;
// 'sceKernelStat':;
// 'sceFiosFHOpenSync':;
// 'sceFiosFHGetSize':;
// //'sceKernelOpen':;
// 'sceKernelOpen':;
// 'sceKernelUsleep':;
// '_write':;
// else
// begin
@ -531,6 +538,9 @@ begin
//ps4_app.app_path:='G:\Games\Untitled Goose Game\CUSA23079\';
//ps4_app.app_file:='G:\Games\Untitled Goose Game\CUSA23079\eboot.bin';
//ps4_app.app_path:='C:\Users\User\Desktop\Games\JETPACKJOYRIDE\CUSA03633\';
//ps4_app.app_file:='C:\Users\User\Desktop\Games\JETPACKJOYRIDE\CUSA03633\eboot.bin';
//elf:=Telf_file(LoadPs4ElfFromFile('libSceLibcInternal.sprx'));
//elf.Prepare;
//elf.SavePs4ElfToFile('libSceLibcInternal.prx');

View File

@ -145,4 +145,107 @@ const
SCE_SYSMODULE_ERROR_FATAL =-2141581057; // 0x805A10FF
SCE_SYSMODULE_LOADED =0;
function GetSysmoduleName(id:Word):RawByteString;
begin
Case id of
SCE_SYSMODULE_FIBER :Result:='SCE_SYSMODULE_FIBER';
SCE_SYSMODULE_ULT :Result:='SCE_SYSMODULE_ULT';
SCE_SYSMODULE_NGS2 :Result:='SCE_SYSMODULE_NGS2';
SCE_SYSMODULE_XML :Result:='SCE_SYSMODULE_XML';
SCE_SYSMODULE_NP_UTILITY :Result:='SCE_SYSMODULE_NP_UTILITY';
SCE_SYSMODULE_VOICE :Result:='SCE_SYSMODULE_VOICE';
SCE_SYSMODULE_VOICEQOS :Result:='SCE_SYSMODULE_VOICEQOS';
SCE_SYSMODULE_NP_MATCHING2 :Result:='SCE_SYSMODULE_NP_MATCHING2';
SCE_SYSMODULE_NP_SCORE_RANKING :Result:='SCE_SYSMODULE_NP_SCORE_RANKING';
SCE_SYSMODULE_RUDP :Result:='SCE_SYSMODULE_RUDP';
SCE_SYSMODULE_NP_TUS :Result:='SCE_SYSMODULE_NP_TUS';
SCE_SYSMODULE_FACE :Result:='SCE_SYSMODULE_FACE';
SCE_SYSMODULE_SMART :Result:='SCE_SYSMODULE_SMART';
SCE_SYSMODULE_GAME_LIVE_STREAMING :Result:='SCE_SYSMODULE_GAME_LIVE_STREAMING';
SCE_SYSMODULE_COMPANION_UTIL :Result:='SCE_SYSMODULE_COMPANION_UTIL';
SCE_SYSMODULE_PLAYGO :Result:='SCE_SYSMODULE_PLAYGO';
SCE_SYSMODULE_FONT :Result:='SCE_SYSMODULE_FONT';
SCE_SYSMODULE_VIDEO_RECORDING :Result:='SCE_SYSMODULE_VIDEO_RECORDING';
SCE_SYSMODULE_S3DCONVERSION :Result:='SCE_SYSMODULE_S3DCONVERSION';
SCE_SYSMODULE_AUDIODEC :Result:='SCE_SYSMODULE_AUDIODEC';
SCE_SYSMODULE_JPEG_DEC :Result:='SCE_SYSMODULE_JPEG_DEC';
SCE_SYSMODULE_JPEG_ENC :Result:='SCE_SYSMODULE_JPEG_ENC';
SCE_SYSMODULE_PNG_DEC :Result:='SCE_SYSMODULE_PNG_DEC';
SCE_SYSMODULE_PNG_ENC :Result:='SCE_SYSMODULE_PNG_ENC';
SCE_SYSMODULE_VIDEODEC :Result:='SCE_SYSMODULE_VIDEODEC';
SCE_SYSMODULE_MOVE :Result:='SCE_SYSMODULE_MOVE';
SCE_SYSMODULE_PAD_TRACKER :Result:='SCE_SYSMODULE_PAD_TRACKER';
SCE_SYSMODULE_DEPTH :Result:='SCE_SYSMODULE_DEPTH';
SCE_SYSMODULE_HAND :Result:='SCE_SYSMODULE_HAND';
SCE_SYSMODULE_LIBIME :Result:='SCE_SYSMODULE_LIBIME';
SCE_SYSMODULE_IME_DIALOG :Result:='SCE_SYSMODULE_IME_DIALOG';
SCE_SYSMODULE_NP_PARTY :Result:='SCE_SYSMODULE_NP_PARTY';
SCE_SYSMODULE_FONT_FT :Result:='SCE_SYSMODULE_FONT_FT';
SCE_SYSMODULE_FREETYPE_OT :Result:='SCE_SYSMODULE_FREETYPE_OT';
SCE_SYSMODULE_FREETYPE_OL :Result:='SCE_SYSMODULE_FREETYPE_OL';
SCE_SYSMODULE_FREETYPE_OPT_OL :Result:='SCE_SYSMODULE_FREETYPE_OPT_OL';
SCE_SYSMODULE_SCREEN_SHOT :Result:='SCE_SYSMODULE_SCREEN_SHOT';
SCE_SYSMODULE_NP_AUTH :Result:='SCE_SYSMODULE_NP_AUTH';
SCE_SYSMODULE_SULPHA :Result:='SCE_SYSMODULE_SULPHA';
SCE_SYSMODULE_SAVE_DATA_DIALOG :Result:='SCE_SYSMODULE_SAVE_DATA_DIALOG';
SCE_SYSMODULE_INVITATION_DIALOG :Result:='SCE_SYSMODULE_INVITATION_DIALOG';
SCE_SYSMODULE_DEBUG_KEYBOARD :Result:='SCE_SYSMODULE_DEBUG_KEYBOARD';
SCE_SYSMODULE_MESSAGE_DIALOG :Result:='SCE_SYSMODULE_MESSAGE_DIALOG';
SCE_SYSMODULE_AV_PLAYER :Result:='SCE_SYSMODULE_AV_PLAYER';
SCE_SYSMODULE_CONTENT_EXPORT :Result:='SCE_SYSMODULE_CONTENT_EXPORT';
SCE_SYSMODULE_AUDIO_3D :Result:='SCE_SYSMODULE_AUDIO_3D';
SCE_SYSMODULE_NP_COMMERCE :Result:='SCE_SYSMODULE_NP_COMMERCE';
SCE_SYSMODULE_MOUSE :Result:='SCE_SYSMODULE_MOUSE';
SCE_SYSMODULE_COMPANION_HTTPD :Result:='SCE_SYSMODULE_COMPANION_HTTPD';
SCE_SYSMODULE_WEB_BROWSER_DIALOG :Result:='SCE_SYSMODULE_WEB_BROWSER_DIALOG';
SCE_SYSMODULE_ERROR_DIALOG :Result:='SCE_SYSMODULE_ERROR_DIALOG';
SCE_SYSMODULE_NP_TROPHY :Result:='SCE_SYSMODULE_NP_TROPHY';
SCE_SYSMODULE_NP_SNS_FACEBOOK :Result:='SCE_SYSMODULE_NP_SNS_FACEBOOK';
SCE_SYSMODULE_MOVE_TRACKER :Result:='SCE_SYSMODULE_MOVE_TRACKER';
SCE_SYSMODULE_NP_PROFILE_DIALOG :Result:='SCE_SYSMODULE_NP_PROFILE_DIALOG';
SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG :Result:='SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG';
SCE_SYSMODULE_APP_CONTENT :Result:='SCE_SYSMODULE_APP_CONTENT';
SCE_SYSMODULE_NP_SIGNALING :Result:='SCE_SYSMODULE_NP_SIGNALING';
SCE_SYSMODULE_REMOTE_PLAY :Result:='SCE_SYSMODULE_REMOTE_PLAY';
SCE_SYSMODULE_USBD :Result:='SCE_SYSMODULE_USBD';
SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG :Result:='SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG';
SCE_SYSMODULE_M4AAC_ENC :Result:='SCE_SYSMODULE_M4AAC_ENC';
SCE_SYSMODULE_AUDIODEC_CPU :Result:='SCE_SYSMODULE_AUDIODEC_CPU';
SCE_SYSMODULE_ZLIB :Result:='SCE_SYSMODULE_ZLIB';
SCE_SYSMODULE_CONTENT_SEARCH :Result:='SCE_SYSMODULE_CONTENT_SEARCH';
SCE_SYSMODULE_DECI4H :Result:='SCE_SYSMODULE_DECI4H';
SCE_SYSMODULE_HEAD_TRACKER :Result:='SCE_SYSMODULE_HEAD_TRACKER';
SCE_SYSMODULE_SYSTEM_GESTURE :Result:='SCE_SYSMODULE_SYSTEM_GESTURE';
SCE_SYSMODULE_VIDEODEC2 :Result:='SCE_SYSMODULE_VIDEODEC2';
SCE_SYSMODULE_AT9_ENC :Result:='SCE_SYSMODULE_AT9_ENC';
SCE_SYSMODULE_CONVERT_KEYCODE :Result:='SCE_SYSMODULE_CONVERT_KEYCODE';
SCE_SYSMODULE_SHARE_PLAY :Result:='SCE_SYSMODULE_SHARE_PLAY';
SCE_SYSMODULE_HMD :Result:='SCE_SYSMODULE_HMD';
SCE_SYSMODULE_FACE_TRACKER :Result:='SCE_SYSMODULE_FACE_TRACKER';
SCE_SYSMODULE_HAND_TRACKER :Result:='SCE_SYSMODULE_HAND_TRACKER';
SCE_SYSMODULE_AUDIODEC_CPU_HEVAG :Result:='SCE_SYSMODULE_AUDIODEC_CPU_HEVAG';
SCE_SYSMODULE_LOGIN_DIALOG :Result:='SCE_SYSMODULE_LOGIN_DIALOG';
SCE_SYSMODULE_LOGIN_SERVICE :Result:='SCE_SYSMODULE_LOGIN_SERVICE';
SCE_SYSMODULE_SIGNIN_DIALOG :Result:='SCE_SYSMODULE_SIGNIN_DIALOG';
SCE_SYSMODULE_JSON2 :Result:='SCE_SYSMODULE_JSON2';
SCE_SYSMODULE_AUDIO_LATENCY_ESTIMATION :Result:='SCE_SYSMODULE_AUDIO_LATENCY_ESTIMATION';
SCE_SYSMODULE_HMD_SETUP_DIALOG :Result:='SCE_SYSMODULE_HMD_SETUP_DIALOG';
SCE_SYSMODULE_VR_TRACKER :Result:='SCE_SYSMODULE_VR_TRACKER';
SCE_SYSMODULE_CONTENT_DELETE :Result:='SCE_SYSMODULE_CONTENT_DELETE';
SCE_SYSMODULE_IME_BACKEND :Result:='SCE_SYSMODULE_IME_BACKEND';
SCE_SYSMODULE_NET_CTL_AP_DIALOG :Result:='SCE_SYSMODULE_NET_CTL_AP_DIALOG';
SCE_SYSMODULE_PLAYGO_DIALOG :Result:='SCE_SYSMODULE_PLAYGO_DIALOG';
SCE_SYSMODULE_SOCIAL_SCREEN :Result:='SCE_SYSMODULE_SOCIAL_SCREEN';
SCE_SYSMODULE_EDIT_MP4 :Result:='SCE_SYSMODULE_EDIT_MP4';
SCE_SYSMODULE_TEXT_TO_SPEECH :Result:='SCE_SYSMODULE_TEXT_TO_SPEECH';
SCE_SYSMODULE_BLUETOOTH_HID :Result:='SCE_SYSMODULE_BLUETOOTH_HID';
SCE_SYSMODULE_VR_SERVICE_DIALOG :Result:='SCE_SYSMODULE_VR_SERVICE_DIALOG';
SCE_SYSMODULE_JOB_MANAGER :Result:='SCE_SYSMODULE_JOB_MANAGER';
SCE_SYSMODULE_SOCIAL_SCREEN_DIALOG :Result:='SCE_SYSMODULE_SOCIAL_SCREEN_DIALOG';
SCE_SYSMODULE_NP_TOOLKIT2 :Result:='SCE_SYSMODULE_NP_TOOLKIT2';
else
Result:=HexStr(id,4);
end;
end;

View File

@ -523,121 +523,19 @@ end;
function ps4_sceSysmoduleLoadModule(id:Word):Integer; SysV_ABI_CDecl;
begin
Write('sceSysmoduleLoadModule:');
Case id of
SCE_SYSMODULE_FIBER :Writeln('SCE_SYSMODULE_FIBER ');
SCE_SYSMODULE_ULT :Writeln('SCE_SYSMODULE_ULT ');
SCE_SYSMODULE_NGS2 :Writeln('SCE_SYSMODULE_NGS2 ');
SCE_SYSMODULE_XML :Writeln('SCE_SYSMODULE_XML ');
SCE_SYSMODULE_NP_UTILITY :Writeln('SCE_SYSMODULE_NP_UTILITY ');
SCE_SYSMODULE_VOICE :Writeln('SCE_SYSMODULE_VOICE ');
SCE_SYSMODULE_VOICEQOS :Writeln('SCE_SYSMODULE_VOICEQOS ');
SCE_SYSMODULE_NP_MATCHING2 :Writeln('SCE_SYSMODULE_NP_MATCHING2 ');
SCE_SYSMODULE_NP_SCORE_RANKING :Writeln('SCE_SYSMODULE_NP_SCORE_RANKING ');
SCE_SYSMODULE_RUDP :Writeln('SCE_SYSMODULE_RUDP ');
SCE_SYSMODULE_NP_TUS :Writeln('SCE_SYSMODULE_NP_TUS ');
SCE_SYSMODULE_FACE :Writeln('SCE_SYSMODULE_FACE ');
SCE_SYSMODULE_SMART :Writeln('SCE_SYSMODULE_SMART ');
SCE_SYSMODULE_GAME_LIVE_STREAMING :Writeln('SCE_SYSMODULE_GAME_LIVE_STREAMING ');
SCE_SYSMODULE_COMPANION_UTIL :Writeln('SCE_SYSMODULE_COMPANION_UTIL ');
SCE_SYSMODULE_PLAYGO :Writeln('SCE_SYSMODULE_PLAYGO ');
SCE_SYSMODULE_FONT :Writeln('SCE_SYSMODULE_FONT ');
SCE_SYSMODULE_VIDEO_RECORDING :Writeln('SCE_SYSMODULE_VIDEO_RECORDING ');
SCE_SYSMODULE_S3DCONVERSION :Writeln('SCE_SYSMODULE_S3DCONVERSION ');
SCE_SYSMODULE_AUDIODEC :Writeln('SCE_SYSMODULE_AUDIODEC ');
SCE_SYSMODULE_JPEG_DEC :Writeln('SCE_SYSMODULE_JPEG_DEC ');
SCE_SYSMODULE_JPEG_ENC :Writeln('SCE_SYSMODULE_JPEG_ENC ');
SCE_SYSMODULE_PNG_DEC :Writeln('SCE_SYSMODULE_PNG_DEC ');
SCE_SYSMODULE_PNG_ENC :Writeln('SCE_SYSMODULE_PNG_ENC ');
SCE_SYSMODULE_VIDEODEC :Writeln('SCE_SYSMODULE_VIDEODEC ');
SCE_SYSMODULE_MOVE :Writeln('SCE_SYSMODULE_MOVE ');
SCE_SYSMODULE_PAD_TRACKER :Writeln('SCE_SYSMODULE_PAD_TRACKER ');
SCE_SYSMODULE_DEPTH :Writeln('SCE_SYSMODULE_DEPTH ');
SCE_SYSMODULE_HAND :Writeln('SCE_SYSMODULE_HAND ');
SCE_SYSMODULE_LIBIME :Writeln('SCE_SYSMODULE_LIBIME ');
SCE_SYSMODULE_IME_DIALOG :Writeln('SCE_SYSMODULE_IME_DIALOG ');
SCE_SYSMODULE_NP_PARTY :Writeln('SCE_SYSMODULE_NP_PARTY ');
SCE_SYSMODULE_FONT_FT :Writeln('SCE_SYSMODULE_FONT_FT ');
SCE_SYSMODULE_FREETYPE_OT :Writeln('SCE_SYSMODULE_FREETYPE_OT ');
SCE_SYSMODULE_FREETYPE_OL :Writeln('SCE_SYSMODULE_FREETYPE_OL ');
SCE_SYSMODULE_FREETYPE_OPT_OL :Writeln('SCE_SYSMODULE_FREETYPE_OPT_OL ');
SCE_SYSMODULE_SCREEN_SHOT :Writeln('SCE_SYSMODULE_SCREEN_SHOT ');
SCE_SYSMODULE_NP_AUTH :Writeln('SCE_SYSMODULE_NP_AUTH ');
SCE_SYSMODULE_SULPHA :Writeln('SCE_SYSMODULE_SULPHA ');
SCE_SYSMODULE_SAVE_DATA_DIALOG :Writeln('SCE_SYSMODULE_SAVE_DATA_DIALOG ');
SCE_SYSMODULE_INVITATION_DIALOG :Writeln('SCE_SYSMODULE_INVITATION_DIALOG ');
SCE_SYSMODULE_DEBUG_KEYBOARD :Writeln('SCE_SYSMODULE_DEBUG_KEYBOARD ');
SCE_SYSMODULE_MESSAGE_DIALOG :Writeln('SCE_SYSMODULE_MESSAGE_DIALOG ');
SCE_SYSMODULE_AV_PLAYER :Writeln('SCE_SYSMODULE_AV_PLAYER ');
SCE_SYSMODULE_CONTENT_EXPORT :Writeln('SCE_SYSMODULE_CONTENT_EXPORT ');
SCE_SYSMODULE_AUDIO_3D :Writeln('SCE_SYSMODULE_AUDIO_3D ');
SCE_SYSMODULE_NP_COMMERCE :Writeln('SCE_SYSMODULE_NP_COMMERCE ');
SCE_SYSMODULE_MOUSE :Writeln('SCE_SYSMODULE_MOUSE ');
SCE_SYSMODULE_COMPANION_HTTPD :Writeln('SCE_SYSMODULE_COMPANION_HTTPD ');
SCE_SYSMODULE_WEB_BROWSER_DIALOG :Writeln('SCE_SYSMODULE_WEB_BROWSER_DIALOG ');
SCE_SYSMODULE_ERROR_DIALOG :Writeln('SCE_SYSMODULE_ERROR_DIALOG ');
SCE_SYSMODULE_NP_TROPHY :Writeln('SCE_SYSMODULE_NP_TROPHY ');
SCE_SYSMODULE_NP_SNS_FACEBOOK :Writeln('SCE_SYSMODULE_NP_SNS_FACEBOOK ');
SCE_SYSMODULE_MOVE_TRACKER :Writeln('SCE_SYSMODULE_MOVE_TRACKER ');
SCE_SYSMODULE_NP_PROFILE_DIALOG :Writeln('SCE_SYSMODULE_NP_PROFILE_DIALOG ');
SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG :Writeln('SCE_SYSMODULE_NP_FRIEND_LIST_DIALOG ');
SCE_SYSMODULE_APP_CONTENT :Writeln('SCE_SYSMODULE_APP_CONTENT ');
SCE_SYSMODULE_NP_SIGNALING :Writeln('SCE_SYSMODULE_NP_SIGNALING ');
SCE_SYSMODULE_REMOTE_PLAY :Writeln('SCE_SYSMODULE_REMOTE_PLAY ');
SCE_SYSMODULE_USBD :Writeln('SCE_SYSMODULE_USBD ');
SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG :Writeln('SCE_SYSMODULE_GAME_CUSTOM_DATA_DIALOG ');
SCE_SYSMODULE_M4AAC_ENC :Writeln('SCE_SYSMODULE_M4AAC_ENC ');
SCE_SYSMODULE_AUDIODEC_CPU :Writeln('SCE_SYSMODULE_AUDIODEC_CPU ');
SCE_SYSMODULE_ZLIB :Writeln('SCE_SYSMODULE_ZLIB ');
SCE_SYSMODULE_CONTENT_SEARCH :Writeln('SCE_SYSMODULE_CONTENT_SEARCH ');
SCE_SYSMODULE_DECI4H :Writeln('SCE_SYSMODULE_DECI4H ');
SCE_SYSMODULE_HEAD_TRACKER :Writeln('SCE_SYSMODULE_HEAD_TRACKER ');
SCE_SYSMODULE_SYSTEM_GESTURE :Writeln('SCE_SYSMODULE_SYSTEM_GESTURE ');
SCE_SYSMODULE_VIDEODEC2 :Writeln('SCE_SYSMODULE_VIDEODEC2 ');
SCE_SYSMODULE_AT9_ENC :Writeln('SCE_SYSMODULE_AT9_ENC ');
SCE_SYSMODULE_CONVERT_KEYCODE :Writeln('SCE_SYSMODULE_CONVERT_KEYCODE ');
SCE_SYSMODULE_SHARE_PLAY :Writeln('SCE_SYSMODULE_SHARE_PLAY ');
SCE_SYSMODULE_HMD :Writeln('SCE_SYSMODULE_HMD ');
SCE_SYSMODULE_FACE_TRACKER :Writeln('SCE_SYSMODULE_FACE_TRACKER ');
SCE_SYSMODULE_HAND_TRACKER :Writeln('SCE_SYSMODULE_HAND_TRACKER ');
SCE_SYSMODULE_AUDIODEC_CPU_HEVAG :Writeln('SCE_SYSMODULE_AUDIODEC_CPU_HEVAG ');
SCE_SYSMODULE_LOGIN_DIALOG :Writeln('SCE_SYSMODULE_LOGIN_DIALOG ');
SCE_SYSMODULE_LOGIN_SERVICE :Writeln('SCE_SYSMODULE_LOGIN_SERVICE ');
SCE_SYSMODULE_SIGNIN_DIALOG :Writeln('SCE_SYSMODULE_SIGNIN_DIALOG ');
SCE_SYSMODULE_JSON2 :Writeln('SCE_SYSMODULE_JSON2 ');
SCE_SYSMODULE_AUDIO_LATENCY_ESTIMATION :Writeln('SCE_SYSMODULE_AUDIO_LATENCY_ESTIMATION');
SCE_SYSMODULE_HMD_SETUP_DIALOG :Writeln('SCE_SYSMODULE_HMD_SETUP_DIALOG ');
SCE_SYSMODULE_VR_TRACKER :Writeln('SCE_SYSMODULE_VR_TRACKER ');
SCE_SYSMODULE_CONTENT_DELETE :Writeln('SCE_SYSMODULE_CONTENT_DELETE ');
SCE_SYSMODULE_IME_BACKEND :Writeln('SCE_SYSMODULE_IME_BACKEND ');
SCE_SYSMODULE_NET_CTL_AP_DIALOG :Writeln('SCE_SYSMODULE_NET_CTL_AP_DIALOG ');
SCE_SYSMODULE_PLAYGO_DIALOG :Writeln('SCE_SYSMODULE_PLAYGO_DIALOG ');
SCE_SYSMODULE_SOCIAL_SCREEN :Writeln('SCE_SYSMODULE_SOCIAL_SCREEN ');
SCE_SYSMODULE_EDIT_MP4 :Writeln('SCE_SYSMODULE_EDIT_MP4 ');
SCE_SYSMODULE_TEXT_TO_SPEECH :Writeln('SCE_SYSMODULE_TEXT_TO_SPEECH ');
SCE_SYSMODULE_BLUETOOTH_HID :Writeln('SCE_SYSMODULE_BLUETOOTH_HID ');
SCE_SYSMODULE_VR_SERVICE_DIALOG :Writeln('SCE_SYSMODULE_VR_SERVICE_DIALOG ');
SCE_SYSMODULE_JOB_MANAGER :Writeln('SCE_SYSMODULE_JOB_MANAGER ');
SCE_SYSMODULE_SOCIAL_SCREEN_DIALOG :Writeln('SCE_SYSMODULE_SOCIAL_SCREEN_DIALOG ');
SCE_SYSMODULE_NP_TOOLKIT2 :Writeln('SCE_SYSMODULE_NP_TOOLKIT2 ');
else
Writeln(HexStr(id,4));
end;
Writeln('sceSysmoduleLoadModule:',GetSysmoduleName(id));
Result:=0;
end;
function ps4_sceSysmoduleUnloadModule(id:Word):Integer; SysV_ABI_CDecl;
begin
Writeln('sceSysmoduleUnloadModule:',HexStr(id,4));
Writeln('sceSysmoduleUnloadModule:',GetSysmoduleName(id));
Result:=0;
end;
function ps4_sceSysmoduleIsLoaded(id:Word):Integer; SysV_ABI_CDecl;
begin
Writeln('sceSysmoduleIsLoaded:',HexStr(id,4));
Writeln('sceSysmoduleIsLoaded:',GetSysmoduleName(id));
Result:=0;
end;
@ -948,8 +846,12 @@ begin
lib^.set_proc($5135F325B5A18531,@ps4_scePthreadAttrSetstacksize);
lib^.set_proc($D90D33EAB9C1AD31,@ps4_pthread_attr_setstacksize);
lib^.set_proc($FD6ADEA6BB6ED10B,@ps4_scePthreadAttrSetdetachstate);
lib^.set_proc($13EB72A37969E4BC,@ps4_pthread_attr_setdetachstate);
lib^.set_proc($E3E87D133C0A1782,@ps4_scePthreadAttrSetschedpolicy);
lib^.set_proc($0F3112F61405E1FE,@ps4_scePthreadAttrSetschedparam);
lib^.set_proc($1573D61CD93C39FD,@ps4_scePthreadAttrGetschedparam);
lib^.set_proc($7AE291826D159F63,@ps4_pthread_attr_setschedparam);
lib^.set_proc($AA593DA522EC5263,@ps4_pthread_attr_getschedparam);
lib^.set_proc($DEAC603387B31130,@ps4_scePthreadAttrSetaffinity);
lib^.set_proc($F3EB39073663C528,@ps4_scePthreadAttrGetaffinity);
lib^.set_proc($7976D44A911A4EC0,@ps4_scePthreadAttrSetinheritsched);
@ -1070,6 +972,9 @@ begin
lib^.set_proc($41CB5E4706EC9D5D,@ps4_usleep);
lib^.set_proc($D637D72D15738AC7,@ps4_sceKernelUsleep);
lib^.set_proc($FE8E6E103A4DFA86,@ps4_sceKernelConvertUtcToLocaltime);
lib^.set_proc($D0D4C737534A38D2,@ps4_sceKernelConvertLocaltimeToUtc);
//time
//file

View File

@ -20,8 +20,12 @@ function ps4_pthread_attr_destroy(pAttr:p_pthread_attr_t):Integer; SysV_ABI_CDe
function ps4_scePthreadAttrSetstacksize(pAttr:p_pthread_attr_t;size:size_t):Integer; SysV_ABI_CDecl;
function ps4_pthread_attr_setstacksize(pAttr:p_pthread_attr_t;size:size_t):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrSetdetachstate(pAttr:p_pthread_attr_t;detachstate:Integer):Integer; SysV_ABI_CDecl;
function ps4_pthread_attr_setdetachstate(pAttr:p_pthread_attr_t;detachstate:Integer):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrSetschedpolicy(pAttr:p_pthread_attr_t;policy:Integer):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrSetschedparam(pAttr:p_pthread_attr_t;param:PInteger):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrGetschedparam(pAttr:p_pthread_attr_t;param:PInteger):Integer; SysV_ABI_CDecl;
function ps4_pthread_attr_setschedparam(pAttr:p_pthread_attr_t;param:PInteger):Integer; SysV_ABI_CDecl;
function ps4_pthread_attr_getschedparam(pAttr:p_pthread_attr_t;param:PInteger):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrSetaffinity(pAttr:p_pthread_attr_t;mask:QWORD):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrGetaffinity(pAttr:p_pthread_attr_t;mask:PQWORD):Integer; SysV_ABI_CDecl;
function ps4_scePthreadAttrSetinheritsched(pAttr:p_pthread_attr_t;inheritSched:Integer):Integer; SysV_ABI_CDecl;
@ -205,6 +209,23 @@ begin
Result:=0;
end;
function ps4_pthread_attr_setdetachstate(pAttr:p_pthread_attr_t;detachstate:Integer):Integer; SysV_ABI_CDecl;
begin
Result:=EINVAL;
if (pAttr=nil) then Exit;
if (pAttr^=nil) then Exit;
Case detachstate of
PTHREAD_CREATE_JOINABLE:;
PTHREAD_CREATE_DETACHED:;
else
Exit(EINVAL);
end;
pAttr^^.flags:=detachstate;
Result:=0;
end;
function ps4_scePthreadAttrSetschedpolicy(pAttr:p_pthread_attr_t;policy:Integer):Integer; SysV_ABI_CDecl;
begin
Result:=SCE_KERNEL_ERROR_EINVAL;
@ -223,6 +244,33 @@ begin
Result:=0;
end;
function ps4_scePthreadAttrGetschedparam(pAttr:p_pthread_attr_t;param:PInteger):Integer; SysV_ABI_CDecl;
begin
Result:=SCE_KERNEL_ERROR_EINVAL;
if (pAttr=nil) or (param=nil) then Exit;
if (pAttr^=nil) then Exit;
param^:=pAttr^^.prio;
Result:=0;
end;
function ps4_pthread_attr_setschedparam(pAttr:p_pthread_attr_t;param:PInteger):Integer; SysV_ABI_CDecl;
begin
Result:=EINVAL;
if (pAttr=nil) or (param=nil) then Exit;
if (pAttr^=nil) then Exit;
pAttr^^.prio:=param^;
Result:=0;
end;
function ps4_pthread_attr_getschedparam(pAttr:p_pthread_attr_t;param:PInteger):Integer; SysV_ABI_CDecl;
begin
Result:=EINVAL;
if (pAttr=nil) or (param=nil) then Exit;
if (pAttr^=nil) then Exit;
param^:=pAttr^^.prio;
Result:=0;
end;
function ps4_scePthreadAttrSetaffinity(pAttr:p_pthread_attr_t;mask:QWORD):Integer; SysV_ABI_CDecl;
begin
Result:=SCE_KERNEL_ERROR_EINVAL;

View File

@ -48,6 +48,25 @@ function ps4_nanosleep(req,rem:Ptimespec):Integer; SysV_ABI_CDecl;
function ps4_usleep(usec:DWORD):Integer; SysV_ABI_CDecl; //microseconds
function ps4_sceKernelUsleep(usec:DWORD):Integer; SysV_ABI_CDecl; //microseconds
type
ptimesec=^timesec;
timesec=packed record
tz_time :time_t;
tz_secwest:DWORD;
tz_dstsec :DWORD;
end;
function ps4_sceKernelConvertUtcToLocaltime(_time:time_t;
local_time:ptime_t;
_tsec:ptimesec;
_dstsec:PDWORD):Integer; SysV_ABI_CDecl;
function ps4_sceKernelConvertLocaltimeToUtc(_time:time_t;
unknow:qword;
utc_time:ptime_t;
_tsec:ptimesec;
_dstsec:PDWORD):Integer; SysV_ABI_CDecl;
implementation
Uses
@ -220,6 +239,11 @@ begin
tp^.tv_nsec:=(QWORD(ct) mod POW10_7)*100;
end;
CLOCK_EXT_NETWORK ,
CLOCK_EXT_DEBUG_NETWORK,
CLOCK_EXT_AD_NETWORK ,
CLOCK_EXT_RAW_NETWORK ,
CLOCK_MONOTONIC,
CLOCK_MONOTONIC_PRECISE,
CLOCK_MONOTONIC_FAST:
@ -443,6 +467,87 @@ begin
Result:=0;
end;
//
function ps4_sceKernelConvertUtcToLocaltime(_time:time_t;
local_time:ptime_t;
_tsec:ptimesec;
_dstsec:PDWORD):Integer; SysV_ABI_CDecl;
var
tmz:timezone;
perror:pinteger;
begin
Result:=ps4_gettimeofday(nil,@tmz);
if (Result<0) then
begin
perror:=_error;
if (perror<>nil) then
begin
Result:=px2sce(perror^);
end;
Exit;
end;
if (local_time<>nil) then
begin
local_time^:=(tmz.tz_minuteswest+tmz.tz_dsttime)*60+_time;
end;
if (_tsec<>nil) then
begin
_tsec^.tz_time :=_time;
_tsec^.tz_secwest:=tmz.tz_minuteswest*60;
_tsec^.tz_dstsec :=tmz.tz_dsttime*60;
end;
if (_dstsec<>nil) then
begin
_dstsec^:=tmz.tz_dsttime*60;
end;
end;
function ps4_sceKernelConvertLocaltimeToUtc(_time:time_t;
unknow:qword;
utc_time:ptime_t;
_tsec:ptimesec;
_dstsec:PDWORD):Integer; SysV_ABI_CDecl;
var
tmz:timezone;
rtime:time_t;
perror:pinteger;
begin
Result:=ps4_gettimeofday(nil,@tmz);
if (Result<0) then
begin
perror:=_error;
if (perror<>nil) then
begin
Result:=px2sce(perror^);
end;
Exit;
end;
rtime:=_time-((tmz.tz_minuteswest+tmz.tz_dsttime)*60);
if (utc_time<>nil) then
begin
utc_time^:=rtime;
end;
if (_tsec<>nil) then
begin
_tsec^.tz_time :=rtime;
_tsec^.tz_secwest:=tmz.tz_minuteswest*60;
_tsec^.tz_dstsec :=tmz.tz_dsttime*60;
end;
if (_dstsec<>nil) then
begin
_dstsec^:=tmz.tz_dsttime*60;
end;
end;
Procedure Init;
var
min,max,cur:ULONG;

View File

@ -31,6 +31,36 @@ type
SceAjmContextId=Integer;
SceAjmCodecType=Integer;
pSceAjmInstanceId=^SceAjmInstanceId;
SceAjmInstanceId=DWORD;
SceAjmResult=Integer;
pSceAjmSidebandResult=^SceAjmSidebandResult;
SceAjmSidebandResult=packed record
iResult :SceAjmResult;
iInternalResult:SceAjmResult;
end;
pSceAjmBuffer=^SceAjmBuffer;
SceAjmBuffer=packed record
pAddress:Pointer;
szSize :qword;
end;
type
pSceAjmBatchId=^SceAjmBatchId;
SceAjmBatchId=DWORD;
pSceAjmBatchError=^SceAjmBatchError;
SceAjmBatchError=packed record
iErrorCode:Integer; //Detailed error code
align1:Integer;
pJobAddress:Pointer; //For internal use only
uiCommandOffset:Integer; //For internal use only
align2:Integer;
pJobOriginRa:Pointer; //For internal use only
end;
TAjmContext=class(TClassHandle)
AJM_CODEC_MP3_DEC :Pointer;
AJM_CODEC_AT9_DEC :Pointer;
@ -252,6 +282,108 @@ begin
if not FAjmMap.Delete(uiContext) then Result:=SCE_AJM_ERROR_INVALID_CONTEXT;
end;
function ps4_sceAjmInstanceCreate(uiContext:SceAjmContextId;
uiCodec:SceAjmCodecType;
uiFlags:QWORD;
pInstance:pSceAjmInstanceId):Integer; SysV_ABI_CDecl;
Var
H:TAjmContext;
begin
Result:=0;
H:=TAjmContext(FAjmMap.Acqure(uiContext));
if (H=nil) then Exit(SCE_AJM_ERROR_INVALID_CONTEXT);
Case uiCodec of
SCE_AJM_CODEC_MP3_DEC ,
SCE_AJM_CODEC_AT9_DEC ,
SCE_AJM_CODEC_M4AAC_DEC,
SCE_AJM_CODEC_CELP8_DEC,
SCE_AJM_CODEC_CELP8_ENC,
SCE_AJM_CODEC_CELP_DEC ,
SCE_AJM_CODEC_CELP_ENC :
begin
//fake instance
pInstance^:=1;
end;
else
begin
Result:=SCE_AJM_ERROR_INVALID_PARAMETER;
H.Release;
Exit;
end;
end;
H.Release;
end;
function ps4_sceAjmBatchJobControlBufferRa(
pBatchPosition:Pointer;
uiInstance:SceAjmInstanceId;
uiFlags:qword;
pSidebandInput:Pointer;
szSidebandInputSize:qword;
pSidebandOutput:Pointer;
szSidebandOutputSize:qword;
pReturnAddress:PPointer):Integer; SysV_ABI_CDecl;
begin
Result:=0;
if (pSidebandOutput<>nil) then
begin
FillChar(pSidebandOutput^,szSidebandOutputSize,0);
end;
end;
function ps4_sceAjmBatchJobRunSplitBufferRa(
pBatchPosition:Pointer;
uiInstance:SceAjmInstanceId;
uiFlags:qword;
pDataInputBuffers:pSceAjmBuffer;
szNumDataInputBuffers:qword;
pDataOutputBuffers:pSceAjmBuffer;
szNumDataOutputBuffers:qword;
pSidebandOutput:Pointer;
szSidebandOutputSize:qword;
pReturnAddress:PPointer):Integer; SysV_ABI_CDecl;
var
i:qword;
begin
Result:=0;
if (pSidebandOutput<>nil) then
begin
FillChar(pSidebandOutput^,szSidebandOutputSize,0);
end;
if (pDataOutputBuffers<>nil) and (szNumDataOutputBuffers<>0) then
begin
For i:=0 to szNumDataOutputBuffers-1 do
if (pDataOutputBuffers[i].pAddress<>nil) then
begin
FillChar(pDataOutputBuffers[i].pAddress^,pDataOutputBuffers[i].szSize,0);
end;
end;
end;
function ps4_sceAjmBatchStartBuffer(
uiContext:SceAjmContextId;
pBatchCommands:Pointer;
szBatchSize:qword;
iPriority:Integer;
pBatchError:pSceAjmBatchError;
pBatch:pSceAjmBatchId):Integer; SysV_ABI_CDecl;
begin
Result:=0;
end;
function ps4_sceAjmBatchWait(
uiContext:SceAjmContextId;
uiBatch:SceAjmBatchId;
uiTimeout:DWORD;
pBatchError:pSceAjmBatchError):Integer; SysV_ABI_CDecl;
begin
Result:=0;
end;
function Load_libSceAjm(Const name:RawByteString):TElf_node;
var
lib:PLIBRARY;
@ -264,6 +396,11 @@ begin
lib^.set_proc($43777216EC069FAE,@ps4_sceAjmModuleRegister);
lib^.set_proc($5A2EC3B652D5F8A2,@ps4_sceAjmModuleUnregister);
lib^.set_proc($307BABEAA0AC52EB,@ps4_sceAjmFinalize);
lib^.set_proc($031A03AC8369E09F,@ps4_sceAjmInstanceCreate);
lib^.set_proc($7660F26CDFFF167F,@ps4_sceAjmBatchJobControlBufferRa);
lib^.set_proc($EE37405CAFB67CCA,@ps4_sceAjmBatchJobRunSplitBufferRa);
lib^.set_proc($7C5164934C5F196B,@ps4_sceAjmBatchStartBuffer);
lib^.set_proc($FEA2EC7C3032C086,@ps4_sceAjmBatchWait);
end;
initialization

View File

@ -103,6 +103,9 @@ const
implementation
uses
ps4_map_mm;
function ps4_sceNpSetContentRestriction(pRestriction:PSceNpContentRestriction):Integer; SysV_ABI_CDecl;
begin
Writeln('sceNpSetContentRestriction:',HexStr(pRestriction));
@ -202,6 +205,65 @@ begin
end;
type
pnp_mem=^np_mem;
np_mem=packed record
len:qword;
unknow:qword;
ptr:Pointer;
end;
function ps4_sceNpAllocateKernelMemoryWithAlignment(
len:qword;
name:Pchar;
ptr_out:PPointer;
mem_out:pnp_mem):Integer; SysV_ABI_CDecl;
var
pad_len:qword;
begin
if (mem_out=nil) then
begin
Exit(-$7faa7ffb);
end;
mem_out^.unknow:=0;
pad_len:=0;
if (len and $3fff)<>0 then
begin
pad_len:=$4000-(len and $3fff);
end;
mem_out^.len:=pad_len+len;
Result:=ps4_sceKernelMapNamedFlexibleMemory(@mem_out^.ptr,mem_out^.len,3,0,name);
if (ptr_out<>nil) and (Result >-1) then
begin
ptr_out^:=mem_out^.ptr;
end;
end;
function ps4_sceNpAllocateKernelMemoryNoAlignment(
len:qword;
name:Pchar;
ptr_out:PPointer;
mem_out:pnp_mem):Integer; SysV_ABI_CDecl;
begin
if (mem_out=nil) then
begin
Exit(-$7faa7ffb);
end;
mem_out^.unknow:=0;
mem_out^.len:=len;
Result:=ps4_sceKernelMapNamedFlexibleMemory(@mem_out^.ptr,mem_out^.len,3,0,name);
if (ptr_out<>nil) and (Result >-1) then
begin
ptr_out^:=mem_out^.ptr;
end;
end;
function Load_libSceNpManager(Const name:RawByteString):TElf_node;
var
lib:PLIBRARY;
@ -234,6 +296,8 @@ begin
lib:=Result._add_lib('libSceNpCommon');
lib^.set_proc($8BC5265D34AAECDE,@ps4_sceNpCmpNpId);
lib^.set_proc($80C958E9E7B0AFF7,@ps4_sceNpAllocateKernelMemoryWithAlignment);
lib^.set_proc($3163CE92ACD8B2CD,@ps4_sceNpAllocateKernelMemoryNoAlignment);
end;
initialization

59
ps4_libscenpmatching2.pas Normal file
View File

@ -0,0 +1,59 @@
unit ps4_libSceNpMatching2;
{$mode ObjFPC}{$H+}
interface
uses
ps4_program,
Classes,
SysUtils;
implementation
type
pSceNpMatching2InitializeParameter=^SceNpMatching2InitializeParameter;
SceNpMatching2InitializeParameter=packed record
poolSize:QWORD; // 0 = default
cpuAffinityMask:QWORD; // 0 = default SceKernelCpumask
threadPriority:Integer; // 0 = default
padding:Integer;
threadStackSize:QWORD; // 0 = default
size:QWORD; // size of this structure
sslPoolSize:QWORD; // 0 = default
end;
SceNpMatching2ContextCallback=procedure(
ctxId,event:Word;
eventCause:Byte;
errorCode:Integer;
arg:Pointer); SysV_ABI_CDecl;
function ps4_sceNpMatching2Initialize(param:pSceNpMatching2InitializeParameter):Integer; SysV_ABI_CDecl;
begin
Result:=0;
end;
function ps4_sceNpMatching2RegisterContextCallback(cbFunc:SceNpMatching2ContextCallback;cbFuncArg:Pointer):Integer; SysV_ABI_CDecl;
begin
Result:=0;
end;
function Load_libSceNpMatching2(Const name:RawByteString):TElf_node;
var
lib:PLIBRARY;
begin
Result:=TElf_node.Create;
Result.pFileName:=name;
lib:=Result._add_lib('libSceNpMatching2');
lib^.set_proc($D74B777B9F893E75,@ps4_sceNpMatching2Initialize);
lib^.set_proc($7D041F3FCEC8EE1B,@ps4_sceNpMatching2RegisterContextCallback);
end;
initialization
ps4_app.RegistredPreLoad('libSceNpMatching2.prx',@Load_libSceNpMatching2);
end.

View File

@ -184,7 +184,29 @@ begin
Result:=0;
end;
//nop nid:libSceNpScore:00D26CB0FCF7998D:sceNpScoreRecordScoreAsync
function ps4_sceNpScoreRecordScoreAsync(
reqId:Integer;
boardId:DWORD; //SceNpScoreBoardId
score:Int64; //SceNpScoreValue
scoreComment:pSceNpScoreComment;
gameInfo:pSceNpScoreGameInfo;
tmpRank:DWORD; //SceNpScoreRankNumber
compareDate:QWORD; //SceRtcTick
option:Pointer):Integer; SysV_ABI_CDecl;
begin
Result:=0;
end;
function ps4_sceNpScorePollAsync(
reqId:Integer;
r_out:Pinteger):Integer; SysV_ABI_CDecl;
begin
Result:=0;
if (r_out<>nil) then
begin
r_out^:=0;
end;
end;
function Load_libSceNpScoreRanking(Const name:RawByteString):TElf_node;
var
@ -201,6 +223,8 @@ begin
lib^.set_proc($80C6CE9FEFFA7970,@ps4_sceNpScoreGetFriendsRankingA);
lib^.set_proc($F66644828884ABA6,@ps4_sceNpScoreGetRankingByAccountIdPcId);
lib^.set_proc($2811F10E3CA4FE30,@ps4_sceNpScoreGetRankingByRange);
lib^.set_proc($00D26CB0FCF7998D,@ps4_sceNpScoreRecordScoreAsync);
lib^.set_proc($9B50DF351B2D9124,@ps4_sceNpScorePollAsync);
end;
initialization

37
ps4_libscenpsignaling.pas Normal file
View File

@ -0,0 +1,37 @@
unit ps4_libSceNpSignaling;
{$mode ObjFPC}{$H+}
interface
uses
ps4_program,
Classes,
SysUtils;
implementation
function ps4_sceNpSignalingInitialize(poolSize:QWORD;
threadPriority:Integer;
cpuAffinityMask:Integer;
threadStackSize:QWORD):Integer; SysV_ABI_CDecl;
begin
Result:=0;
end;
function Load_libSceNpSignaling(Const name:RawByteString):TElf_node;
var
lib:PLIBRARY;
begin
Result:=TElf_node.Create;
Result.pFileName:=name;
lib:=Result._add_lib('libSceNpSignaling');
lib^.set_proc($DCA3AE0B84666595,@ps4_sceNpSignalingInitialize);
end;
initialization
ps4_app.RegistredPreLoad('libSceNpSignaling.prx',@Load_libSceNpSignaling);
end.

View File

@ -254,9 +254,20 @@ begin
end;
function ps4_scePadRead(handle:Integer;data:PScePadData;num:Integer):Integer; SysV_ABI_CDecl;
var
i:Integer;
begin
ps4_scePadReadState(handle,data);
Result:=1;
Result:=0;
if (num<>0) then
begin
ps4_scePadReadState(handle,data);
Result:=1;
end;
if (num>1) then
For i:=1 to num-1 do
begin
data[i]:=Default(ScePadData);
end;
end;
function ps4_scePadSetVibration(handle:Integer;pParam:PScePadVibrationParam):Integer; SysV_ABI_CDecl;

35
ps4_libscertc.pas Normal file
View File

@ -0,0 +1,35 @@
unit ps4_libSceRtc;
{$mode ObjFPC}{$H+}
interface
uses
ps4_program,
Classes,
SysUtils;
implementation
//TODO
//nop nid:libSceRtc:CCEF542F7A8820D4:sceRtcGetCurrentNetworkTick
//nop nid:libSceRtc:D7C076352D72F545:sceRtcGetCurrentTick
function Load_libSceRtc(Const name:RawByteString):TElf_node;
var
lib:PLIBRARY;
begin
Result:=TElf_node.Create;
Result.pFileName:=name;
lib:=Result._add_lib('libSceRtc');
//lib^.set_proc($79A1578DF26FDF1B,@ps4_sceImeKeyboardOpen);
end;
initialization
//ps4_app.RegistredPreLoad('libSceRtc.prx',@Load_libSceRtc);
end.

View File

@ -687,7 +687,9 @@ begin
Tgrp:=FetchImage(pLayout,info.dtype,info.tinfo);
_emit_image_load(Tgrp,@info);
end
end;
IMAGE_STORE:; //TODO
else
Assert(false,'MIMG?'+IntToStr(FSPI.MIMG.OP));

View File

@ -431,6 +431,9 @@ type
end;
Ptimezone=^timezone;
time_t=QWORD;
ptime_t=^time_t;
TMemChunk=packed record
pAddr:Pointer;
nSize:Int64;