mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-11-27 00:20:36 +00:00
+
This commit is contained in:
parent
7850326b6c
commit
a4ec0e0a23
20
fpPS4.lpr
20
fpPS4.lpr
@ -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');
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
59
ps4_libscenpmatching2.pas
Normal 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.
|
||||
|
@ -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
37
ps4_libscenpsignaling.pas
Normal 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.
|
||||
|
@ -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
35
ps4_libscertc.pas
Normal 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.
|
||||
|
@ -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));
|
||||
|
@ -431,6 +431,9 @@ type
|
||||
end;
|
||||
Ptimezone=^timezone;
|
||||
|
||||
time_t=QWORD;
|
||||
ptime_t=^time_t;
|
||||
|
||||
TMemChunk=packed record
|
||||
pAddr:Pointer;
|
||||
nSize:Int64;
|
||||
|
Loading…
Reference in New Issue
Block a user