mirror of
https://github.com/red-prig/fpPS4.git
synced 2024-11-26 16:10:25 +00:00
Multiple Functions (Part 3) (#207)
* sceAjmBatchJobInlineBuffer * sceAjmInstanceCodecType * sceGnmDebugHardwareStatus * sceGnmDeleteEqEvent * sceImeDialogInit * sceLoginDialogUpdateStatus * sceNetBandwidthControlSetDefaultParam * sceNpSignalingSetContextOption * sceNpWebApi2PushEventCreateFilter * sceNpWebApi2PushEventCreateHandle * sceNpWebApi2PushEventRegisterCallback * sceSigninDialogGetResult * sceSslFreeCaCerts * sceSslGetCaCerts * sceUsbStorageInit * sceVideoOutAddDriver * sceVoiceResumePortAll * Fixes * + * Fix build * + * + * + * + * + * + * + * + * + * + --------- Co-authored-by: red-prig <vdpasha@mail.ru>
This commit is contained in:
parent
b9eab2c9d4
commit
72a5a16616
@ -69,12 +69,12 @@ uses
|
|||||||
ps4_libSceShareUtility,
|
ps4_libSceShareUtility,
|
||||||
ps4_libSceSocialScreen,
|
ps4_libSceSocialScreen,
|
||||||
ps4_libSceVideoRecording,
|
ps4_libSceVideoRecording,
|
||||||
ps4_libSceWebBrowserDialog,
|
|
||||||
ps4_libSceCompanionHttpd,
|
ps4_libSceCompanionHttpd,
|
||||||
ps4_libSceCompanionUtil,
|
ps4_libSceCompanionUtil,
|
||||||
ps4_libSceContentExport,
|
ps4_libSceContentExport,
|
||||||
ps4_libSceConvertKeycode,
|
ps4_libSceConvertKeycode,
|
||||||
ps4_libSceUsbd,
|
ps4_libSceUsbd,
|
||||||
|
ps4_libSceUsbStorage,
|
||||||
ps4_libSceAudiodecCpu,
|
ps4_libSceAudiodecCpu,
|
||||||
ps4_libSceDepth,
|
ps4_libSceDepth,
|
||||||
ps4_libSceNpTus,
|
ps4_libSceNpTus,
|
||||||
|
@ -305,6 +305,11 @@ begin
|
|||||||
if not FAjmMap.Delete(uiContext) then Result:=SCE_AJM_ERROR_INVALID_CONTEXT;
|
if not FAjmMap.Delete(uiContext) then Result:=SCE_AJM_ERROR_INVALID_CONTEXT;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceAjmInstanceCodecType(uiCodec:SceAjmCodecType):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=uiCodec shr $E;
|
||||||
|
end;
|
||||||
|
|
||||||
function ps4_sceAjmInstanceCreate(uiContext:SceAjmContextId;
|
function ps4_sceAjmInstanceCreate(uiContext:SceAjmContextId;
|
||||||
uiCodec:SceAjmCodecType;
|
uiCodec:SceAjmCodecType;
|
||||||
uiFlags:QWORD;
|
uiFlags:QWORD;
|
||||||
@ -391,6 +396,19 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceAjmBatchJobInlineBuffer(
|
||||||
|
const pBatchPosition :Pointer;
|
||||||
|
const pDataInput :Pointer;
|
||||||
|
const szDataInputSize:QWORD;
|
||||||
|
const pBatchAddress :PPointer):Pointer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
PDWORD(pBatchPosition)^ :=PDWORD(pBatchPosition)^ and $ffffffe0 or 7;
|
||||||
|
PDWORD(pBatchPosition + 4)^:=(szDataInputSize + 7) and $fffffff8;
|
||||||
|
Move(pDataInput^, Pointer(pBatchPosition + 8)^, szDataInputSize);
|
||||||
|
pBatchAddress^:=(pBatchPosition + 8);
|
||||||
|
Result:=pBatchPosition + 8 + ((szDataInputSize + 7) and $fffffffffffffff8);
|
||||||
|
end;
|
||||||
|
|
||||||
function ps4_sceAjmBatchJobRunBufferRa(
|
function ps4_sceAjmBatchJobRunBufferRa(
|
||||||
pBatchPosition:Pointer;
|
pBatchPosition:Pointer;
|
||||||
uiInstance:SceAjmInstanceId;
|
uiInstance:SceAjmInstanceId;
|
||||||
@ -477,9 +495,11 @@ begin
|
|||||||
lib^.set_proc($43777216EC069FAE,@ps4_sceAjmModuleRegister);
|
lib^.set_proc($43777216EC069FAE,@ps4_sceAjmModuleRegister);
|
||||||
lib^.set_proc($5A2EC3B652D5F8A2,@ps4_sceAjmModuleUnregister);
|
lib^.set_proc($5A2EC3B652D5F8A2,@ps4_sceAjmModuleUnregister);
|
||||||
lib^.set_proc($307BABEAA0AC52EB,@ps4_sceAjmFinalize);
|
lib^.set_proc($307BABEAA0AC52EB,@ps4_sceAjmFinalize);
|
||||||
|
lib^.set_proc($7625E340D88CBBFB,@ps4_sceAjmInstanceCodecType);
|
||||||
lib^.set_proc($031A03AC8369E09F,@ps4_sceAjmInstanceCreate);
|
lib^.set_proc($031A03AC8369E09F,@ps4_sceAjmInstanceCreate);
|
||||||
lib^.set_proc($45B2DBB8ABFCCE1A,@ps4_sceAjmInstanceDestroy);
|
lib^.set_proc($45B2DBB8ABFCCE1A,@ps4_sceAjmInstanceDestroy);
|
||||||
lib^.set_proc($7660F26CDFFF167F,@ps4_sceAjmBatchJobControlBufferRa);
|
lib^.set_proc($7660F26CDFFF167F,@ps4_sceAjmBatchJobControlBufferRa);
|
||||||
|
lib^.set_proc($B2D96086789CDC97,@ps4_sceAjmBatchJobInlineBuffer);
|
||||||
lib^.set_proc($125B25382A4E227B,@ps4_sceAjmBatchJobRunBufferRa);
|
lib^.set_proc($125B25382A4E227B,@ps4_sceAjmBatchJobRunBufferRa);
|
||||||
lib^.set_proc($EE37405CAFB67CCA,@ps4_sceAjmBatchJobRunSplitBufferRa);
|
lib^.set_proc($EE37405CAFB67CCA,@ps4_sceAjmBatchJobRunSplitBufferRa);
|
||||||
lib^.set_proc($7C5164934C5F196B,@ps4_sceAjmBatchStartBuffer);
|
lib^.set_proc($7C5164934C5F196B,@ps4_sceAjmBatchStartBuffer);
|
||||||
|
@ -61,6 +61,13 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceNpSignalingSetContextOption(ctxId:DWORD;
|
||||||
|
optname:Integer;
|
||||||
|
optval:Integer):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
function Load_libSceNpSignaling(Const name:RawByteString):TElf_node;
|
function Load_libSceNpSignaling(Const name:RawByteString):TElf_node;
|
||||||
var
|
var
|
||||||
lib:PLIBRARY;
|
lib:PLIBRARY;
|
||||||
@ -73,6 +80,7 @@ begin
|
|||||||
lib^.set_proc($E7262311D778B7C6,@ps4_sceNpSignalingCreateContext);
|
lib^.set_proc($E7262311D778B7C6,@ps4_sceNpSignalingCreateContext);
|
||||||
lib^.set_proc($7432CD15D63C770B,@ps4_sceNpSignalingCreateContextA);
|
lib^.set_proc($7432CD15D63C770B,@ps4_sceNpSignalingCreateContextA);
|
||||||
lib^.set_proc($53C01032538505CF,@ps4_sceNpSignalingGetLocalNetInfo);
|
lib^.set_proc($53C01032538505CF,@ps4_sceNpSignalingGetLocalNetInfo);
|
||||||
|
lib^.set_proc($207443BD9A1D3D86,@ps4_sceNpSignalingSetContextOption);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
@ -272,6 +272,18 @@ type
|
|||||||
responseDataSize:QWORD;
|
responseDataSize:QWORD;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
pSceNpWebApi2ExtdPushEventExtdDataKey=^SceNpWebApi2ExtdPushEventExtdDataKey;
|
||||||
|
SceNpWebApi2ExtdPushEventExtdDataKey=packed record
|
||||||
|
val:array[0..SCE_NP_WEBAPI_EXTD_PUSH_EVENT_EXTD_DATA_KEY_LEN_MAX] of AnsiChar;
|
||||||
|
end;
|
||||||
|
|
||||||
|
pSceNpWebApi2PushEventFilterParameter=^SceNpWebApi2PushEventFilterParameter;
|
||||||
|
SceNpWebApi2PushEventFilterParameter=packed record
|
||||||
|
dataType :SceNpWebApi2ExtdPushEventExtdDataKey;
|
||||||
|
pExtdDataKey :Pointer;
|
||||||
|
extdDataKeyNum:QWORD;
|
||||||
|
end;
|
||||||
|
|
||||||
const
|
const
|
||||||
SCE_NP_WEBAPI2_PUSH_EVENT_UUID_LENGTH=36;
|
SCE_NP_WEBAPI2_PUSH_EVENT_UUID_LENGTH=36;
|
||||||
|
|
||||||
@ -325,6 +337,28 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceNpWebApi2PushEventCreateHandle(libCtxId:Integer):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ps4_sceNpWebApi2PushEventCreateFilter(libCtxId:Integer;
|
||||||
|
handleId:Integer;
|
||||||
|
pNpServiceName:PChar;
|
||||||
|
npServiceLabel:DWORD;
|
||||||
|
pFilterParam:pSceNpWebApi2PushEventFilterParameter;
|
||||||
|
filterParamNum:QWORD):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ps4_sceNpWebApi2PushEventRegisterCallback(libCtxId:Integer;
|
||||||
|
cbFunc:Pointer;
|
||||||
|
pUserArg:Pointer):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
//NpWebApi2
|
//NpWebApi2
|
||||||
|
|
||||||
function Load_libSceNpWebApi(Const name:RawByteString):TElf_node;
|
function Load_libSceNpWebApi(Const name:RawByteString):TElf_node;
|
||||||
@ -374,7 +408,10 @@ begin
|
|||||||
lib^.set_proc($95038217CE25BF3C,@ps4_sceNpWebApi2SendRequest);
|
lib^.set_proc($95038217CE25BF3C,@ps4_sceNpWebApi2SendRequest);
|
||||||
lib^.set_proc($B24E786E2E85B583,@ps4_sceNpWebApi2CreateUserContext);
|
lib^.set_proc($B24E786E2E85B583,@ps4_sceNpWebApi2CreateUserContext);
|
||||||
lib^.set_proc($41A7F179933758AE,@ps4_sceNpWebApi2PushEventDeletePushContext);
|
lib^.set_proc($41A7F179933758AE,@ps4_sceNpWebApi2PushEventDeletePushContext);
|
||||||
lib^.set_proc($7A038EBEB9C5EA62,@ps4_sceNpWebApi2AddHttpRequestHeader);
|
lib^.set_proc($7A038EBEB9C5EA62,@ps4_sceNpWebApi2AddHttpRequestHeader);
|
||||||
|
lib^.set_proc($595D46C0CDF63606,@ps4_sceNpWebApi2PushEventCreateHandle);
|
||||||
|
lib^.set_proc($32C685851FA53C4E,@ps4_sceNpWebApi2PushEventCreateFilter);
|
||||||
|
lib^.set_proc($7D8DD0A9E36417C9,@ps4_sceNpWebApi2PushEventRegisterCallback);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
@ -7,6 +7,20 @@ interface
|
|||||||
uses
|
uses
|
||||||
ps4_program;
|
ps4_program;
|
||||||
|
|
||||||
|
type
|
||||||
|
pSceSslData=^SceSslData;
|
||||||
|
SceSslData=packed record
|
||||||
|
ptr :PChar;
|
||||||
|
size:QWORD;
|
||||||
|
end;
|
||||||
|
|
||||||
|
pSceSslCaCerts=^SceSslCaCerts;
|
||||||
|
SceSslCaCerts=packed record
|
||||||
|
certData :pSceSslData;
|
||||||
|
certDataNum:QWORD;
|
||||||
|
pool :Pointer;
|
||||||
|
end;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
function ps4_sceSslInit(poolSize:size_t):Integer; SysV_ABI_CDecl;
|
function ps4_sceSslInit(poolSize:size_t):Integer; SysV_ABI_CDecl;
|
||||||
@ -21,6 +35,20 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceSslGetCaCerts(libsslCtxId:Integer;
|
||||||
|
caCerts:pSceSslCaCerts):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Writeln('sceSslGetCaCerts:',libsslCtxId);
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ps4_sceSslFreeCaCerts(libsslCtxId:Integer;
|
||||||
|
caCerts:pSceSslCaCerts):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Writeln('sceSslFreeCaCerts:',libsslCtxId);
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
function Load_libSceSsl(Const name:RawByteString):TElf_node;
|
function Load_libSceSsl(Const name:RawByteString):TElf_node;
|
||||||
var
|
var
|
||||||
lib:PLIBRARY;
|
lib:PLIBRARY;
|
||||||
@ -32,6 +60,8 @@ begin
|
|||||||
|
|
||||||
lib^.set_proc($85DA551140C55B7B,@ps4_sceSslInit);
|
lib^.set_proc($85DA551140C55B7B,@ps4_sceSslInit);
|
||||||
lib^.set_proc($D0AD7243A2EFFD87,@ps4_sceSslTerm);
|
lib^.set_proc($D0AD7243A2EFFD87,@ps4_sceSslTerm);
|
||||||
|
lib^.set_proc($4C37D0A8EFE031B6,@ps4_sceSslGetCaCerts);
|
||||||
|
lib^.set_proc($A88BCBB34818C62D,@ps4_sceSslFreeCaCerts);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
|
@ -8,6 +8,7 @@ uses
|
|||||||
ps4_program,
|
ps4_program,
|
||||||
Classes,
|
Classes,
|
||||||
SysUtils,
|
SysUtils,
|
||||||
|
ps4_libSceIme,
|
||||||
ps4_libSceSaveData;
|
ps4_libSceSaveData;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
@ -458,6 +459,20 @@ const
|
|||||||
SCE_SIGNIN_DIALOG_STATUS_RUNNING =2;
|
SCE_SIGNIN_DIALOG_STATUS_RUNNING =2;
|
||||||
SCE_SIGNIN_DIALOG_STATUS_FINISHED =3;
|
SCE_SIGNIN_DIALOG_STATUS_FINISHED =3;
|
||||||
|
|
||||||
|
//SceSigninDialogResultType
|
||||||
|
SCE_SIGNIN_DIALOG_RESULT_OK =0;
|
||||||
|
SCE_SIGNIN_DIALOG_RESULT_USER_CANCELED=1;
|
||||||
|
|
||||||
|
type
|
||||||
|
pSceSigninDialogResultType=^SceSigninDialogResultType;
|
||||||
|
SceSigninDialogResultType=Integer;
|
||||||
|
|
||||||
|
pSceSigninDialogResult=^SceSigninDialogResult;
|
||||||
|
SceSigninDialogResult=packed record
|
||||||
|
_result :SceSigninDialogResultType;
|
||||||
|
reserved:array[0..2] of Integer;
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
status_signin_dialog:Integer=SCE_SIGNIN_DIALOG_STATUS_NONE;
|
status_signin_dialog:Integer=SCE_SIGNIN_DIALOG_STATUS_NONE;
|
||||||
|
|
||||||
@ -468,6 +483,11 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceSigninDialogGetResult(_result:pSceSigninDialogResult):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
function ps4_sceSigninDialogTerminate():Integer; SysV_ABI_CDecl;
|
function ps4_sceSigninDialogTerminate():Integer; SysV_ABI_CDecl;
|
||||||
begin
|
begin
|
||||||
Writeln('sceSigninDialogTerminate');
|
Writeln('sceSigninDialogTerminate');
|
||||||
@ -508,14 +528,55 @@ const
|
|||||||
SCE_IME_DIALOG_STATUS_RUNNING =1;
|
SCE_IME_DIALOG_STATUS_RUNNING =1;
|
||||||
SCE_IME_DIALOG_STATUS_FINISHED=2;
|
SCE_IME_DIALOG_STATUS_FINISHED=2;
|
||||||
|
|
||||||
|
type
|
||||||
|
pSceImeDialogParam=^SceImeDialogParam;
|
||||||
|
SceImeDialogParam=packed record
|
||||||
|
userId :Integer;
|
||||||
|
_type :SceImeType;
|
||||||
|
supportedLanguages :QWORD;
|
||||||
|
enterLabel :SceImeEnterLabel;
|
||||||
|
inputMethod :SceImeInputMethod;
|
||||||
|
filter :SceImeTextFilter;
|
||||||
|
option :DWORD;
|
||||||
|
maxTextLength :DWORD;
|
||||||
|
inputTextBuffer :PWideChar;
|
||||||
|
posx :Single;
|
||||||
|
posy :Single;
|
||||||
|
horizontalAlignment:SceImeHorizontalAlignment;
|
||||||
|
verticalAlignment :SceImeVerticalAlignment;
|
||||||
|
placeholder :PWideChar;
|
||||||
|
title :PWideChar;
|
||||||
|
reserved :array[0..15] of ShortInt;
|
||||||
|
end;
|
||||||
|
|
||||||
|
pSceImeParamExtended=^SceImeParamExtended;
|
||||||
|
SceImeParamExtended=packed record
|
||||||
|
option :DWORD;
|
||||||
|
colorBase :SceImeColor;
|
||||||
|
colorLine :SceImeColor;
|
||||||
|
colorTextField :SceImeColor;
|
||||||
|
colorPreedit :SceImeColor;
|
||||||
|
colorButtonDefault :SceImeColor;
|
||||||
|
colorButtonFunction :SceImeColor;
|
||||||
|
colorButtonSymbol :SceImeColor;
|
||||||
|
colorText :SceImeColor;
|
||||||
|
colorSpecial :SceImeColor;
|
||||||
|
priority :SceImePanelPriority;
|
||||||
|
additionalDictionaryPath:PChar;
|
||||||
|
extKeyboardFilter :SceImeExtKeyboardFilter;
|
||||||
|
disableDevice :DWORD;
|
||||||
|
extKeyboardMode :DWORD;
|
||||||
|
reserved :array[0..59] of ShortInt;
|
||||||
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
status_ime_dialog:Integer=SCE_IME_DIALOG_STATUS_NONE;
|
status_ime_dialog:Integer=SCE_IME_DIALOG_STATUS_NONE;
|
||||||
|
|
||||||
//function ps4_sceImeDialogInit(param:pSceImeDialogParam;
|
function ps4_sceImeDialogInit(const param:pSceImeDialogParam;
|
||||||
// extended:pSceImeParamExtended
|
const extended:pSceImeParamExtended):Integer; SysV_ABI_CDecl;
|
||||||
// ):Integer; SysV_ABI_CDecl;
|
begin
|
||||||
//
|
Result:=0;
|
||||||
//nop nid:libSceImeDialog:354781ACDEE1CDFD:sceImeDialogInit
|
end;
|
||||||
|
|
||||||
function ps4_sceImeDialogGetStatus:Integer; SysV_ABI_CDecl;
|
function ps4_sceImeDialogGetStatus:Integer; SysV_ABI_CDecl;
|
||||||
begin
|
begin
|
||||||
@ -529,6 +590,11 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceLoginDialogUpdateStatus():Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
function ps4_sceHmdSetupDialogInitialize():Integer; SysV_ABI_CDecl;
|
function ps4_sceHmdSetupDialogInitialize():Integer; SysV_ABI_CDecl;
|
||||||
@ -572,6 +638,23 @@ end;
|
|||||||
|
|
||||||
//
|
//
|
||||||
|
|
||||||
|
function ps4_sceWebBrowserDialogUpdateStatus():Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ps4_sceWebBrowserDialogGetStatus():Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ps4_sceWebBrowserDialogTerminate():Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
//
|
||||||
|
|
||||||
function Load_libSceCommonDialog(Const name:RawByteString):TElf_node;
|
function Load_libSceCommonDialog(Const name:RawByteString):TElf_node;
|
||||||
var
|
var
|
||||||
lib:PLIBRARY;
|
lib:PLIBRARY;
|
||||||
@ -676,6 +759,7 @@ begin
|
|||||||
lib^.set_proc($9A56067E6A84DDF4,@ps4_sceSigninDialogInitialize);
|
lib^.set_proc($9A56067E6A84DDF4,@ps4_sceSigninDialogInitialize);
|
||||||
lib^.set_proc($265A49568456BFB5,@ps4_sceSigninDialogOpen);
|
lib^.set_proc($265A49568456BFB5,@ps4_sceSigninDialogOpen);
|
||||||
lib^.set_proc($070DF59624C54F70,@ps4_sceSigninDialogUpdateStatus);
|
lib^.set_proc($070DF59624C54F70,@ps4_sceSigninDialogUpdateStatus);
|
||||||
|
lib^.set_proc($9EA1BBAEA9D8C355,@ps4_sceSigninDialogGetResult);
|
||||||
lib^.set_proc($2D79664BA3EF25D5,@ps4_sceSigninDialogTerminate);
|
lib^.set_proc($2D79664BA3EF25D5,@ps4_sceSigninDialogTerminate);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -696,6 +780,7 @@ begin
|
|||||||
Result:=TElf_node.Create;
|
Result:=TElf_node.Create;
|
||||||
Result.pFileName:=name;
|
Result.pFileName:=name;
|
||||||
lib:=Result._add_lib('libSceImeDialog');
|
lib:=Result._add_lib('libSceImeDialog');
|
||||||
|
lib^.set_proc($354781ACDEE1CDFD,@ps4_sceImeDialogInit);
|
||||||
lib^.set_proc($2000E60F8B527016,@ps4_sceImeDialogGetStatus);
|
lib^.set_proc($2000E60F8B527016,@ps4_sceImeDialogGetStatus);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -707,6 +792,7 @@ begin
|
|||||||
Result.pFileName:=name;
|
Result.pFileName:=name;
|
||||||
lib:=Result._add_lib('libSceLoginDialog');
|
lib:=Result._add_lib('libSceLoginDialog');
|
||||||
lib^.set_proc($A8FFC4BD0465D877,@ps4_sceLoginDialogInitialize);
|
lib^.set_proc($A8FFC4BD0465D877,@ps4_sceLoginDialogInitialize);
|
||||||
|
lib^.set_proc($DAB73E7A049F6F90,@ps4_sceLoginDialogUpdateStatus);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Load_libSceHmdSetupDialog(Const name:RawByteString):TElf_node;
|
function Load_libSceHmdSetupDialog(Const name:RawByteString):TElf_node;
|
||||||
@ -744,6 +830,19 @@ begin
|
|||||||
lib^.set_proc($F7E83D88EABEEE48,@ps4_sceInvitationDialogUpdateStatus);
|
lib^.set_proc($F7E83D88EABEEE48,@ps4_sceInvitationDialogUpdateStatus);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function Load_libSceWebBrowserDialog(Const name:RawByteString):TElf_node;
|
||||||
|
var
|
||||||
|
lib:PLIBRARY;
|
||||||
|
begin
|
||||||
|
Result:=TElf_node.Create;
|
||||||
|
Result.pFileName:=name;
|
||||||
|
|
||||||
|
lib:=Result._add_lib('libSceWebBrowserDialog');
|
||||||
|
lib^.set_proc($875751FEDE484A08,@ps4_sceWebBrowserDialogUpdateStatus);
|
||||||
|
lib^.set_proc($0854C6E9AF138CE5,@ps4_sceWebBrowserDialogGetStatus);
|
||||||
|
lib^.set_proc($A1C1EDC81C077F2B,@ps4_sceWebBrowserDialogTerminate);
|
||||||
|
end;
|
||||||
|
|
||||||
initialization
|
initialization
|
||||||
ps4_app.RegistredPreLoad('libSceCommonDialog.prx' ,@Load_libSceCommonDialog);
|
ps4_app.RegistredPreLoad('libSceCommonDialog.prx' ,@Load_libSceCommonDialog);
|
||||||
ps4_app.RegistredPreLoad('libSceErrorDialog.prx' ,@Load_libSceErrorDialog);
|
ps4_app.RegistredPreLoad('libSceErrorDialog.prx' ,@Load_libSceErrorDialog);
|
||||||
@ -757,7 +856,8 @@ initialization
|
|||||||
ps4_app.RegistredPreLoad('libSceLoginDialog.prx' ,@Load_libSceLoginDialog);
|
ps4_app.RegistredPreLoad('libSceLoginDialog.prx' ,@Load_libSceLoginDialog);
|
||||||
ps4_app.RegistredPreLoad('libSceHmdSetupDialog.prx' ,@Load_libSceHmdSetupDialog);
|
ps4_app.RegistredPreLoad('libSceHmdSetupDialog.prx' ,@Load_libSceHmdSetupDialog);
|
||||||
ps4_app.RegistredPreLoad('libSceNpFriendListDialog.prx' ,@Load_libSceNpFriendListDialog);
|
ps4_app.RegistredPreLoad('libSceNpFriendListDialog.prx' ,@Load_libSceNpFriendListDialog);
|
||||||
ps4_app.RegistredPreLoad('libSceInvitationDialog.prx' ,@Load_libSceInvitationDialog);
|
ps4_app.RegistredPreLoad('libSceInvitationDialog.prx' ,@Load_libSceInvitationDialog);
|
||||||
|
ps4_app.RegistredPreLoad('libSceWebBrowserDialog.prx' ,@Load_libSceWebBrowserDialog);
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ uses
|
|||||||
sys_kernel,
|
sys_kernel,
|
||||||
ps4_queue,
|
ps4_queue,
|
||||||
ps4_libkernel,
|
ps4_libkernel,
|
||||||
|
ps4_kernel_file,
|
||||||
ps4_libSceVideoOut{, ps4_pssl};
|
ps4_libSceVideoOut{, ps4_pssl};
|
||||||
|
|
||||||
const
|
const
|
||||||
@ -2105,6 +2106,12 @@ var
|
|||||||
|
|
||||||
ComputeEvents:array[0..6] of Thamt64locked;
|
ComputeEvents:array[0..6] of Thamt64locked;
|
||||||
|
|
||||||
|
procedure ps4_sceGnmDebugHardwareStatus(flag:DWORD); SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
if (flag<>0) then Exit;
|
||||||
|
//kmd_dump_status(g_gcHandle,0,0);
|
||||||
|
end;
|
||||||
|
|
||||||
function _sceGnmAddEqEvent(eq:SceKernelEqueue;id:Integer;udata:Pointer):Integer;
|
function _sceGnmAddEqEvent(eq:SceKernelEqueue;id:Integer;udata:Pointer):Integer;
|
||||||
var
|
var
|
||||||
pEvents:Phamt64locked;
|
pEvents:Phamt64locked;
|
||||||
@ -2159,6 +2166,46 @@ begin
|
|||||||
_sig_unlock;
|
_sig_unlock;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function _sceGnmDeleteEqEvent(eq:SceKernelEqueue;id:Integer):Integer;
|
||||||
|
var
|
||||||
|
pEvents:Phamt64locked;
|
||||||
|
P:PPointer;
|
||||||
|
node:PKEventNode;
|
||||||
|
begin
|
||||||
|
Writeln('sceGnmDeleteEqEvent:',id);
|
||||||
|
|
||||||
|
Case id of
|
||||||
|
kEqEventCompute0RelMem..kEqEventCompute6RelMem
|
||||||
|
|
||||||
|
:pEvents:=@ComputeEvents[id];
|
||||||
|
kEqEventGfxEop :pEvents:=@EopEvents;
|
||||||
|
else
|
||||||
|
Exit(SCE_KERNEL_ERROR_EINVAL);
|
||||||
|
end;
|
||||||
|
|
||||||
|
pEvents^.LockWr;
|
||||||
|
P:=HAMT_search64(@pEvents^.hamt,QWORD(eq));
|
||||||
|
if (P<>nil) then
|
||||||
|
begin
|
||||||
|
node:=P^;
|
||||||
|
_free_kevent_node(node);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
pEvents^.Unlock;
|
||||||
|
Exit(SCE_KERNEL_ERROR_ENOENT);
|
||||||
|
end;
|
||||||
|
pEvents^.Unlock;
|
||||||
|
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ps4_sceGnmDeleteEqEvent(eq:SceKernelEqueue;id:Integer):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
_sig_lock;
|
||||||
|
Result:=_sceGnmDeleteEqEvent(eq,id);
|
||||||
|
_sig_unlock;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure _on_trigger_eop(data,userdata:Pointer);
|
procedure _on_trigger_eop(data,userdata:Pointer);
|
||||||
var
|
var
|
||||||
node:PKEventNode;
|
node:PKEventNode;
|
||||||
@ -2269,7 +2316,10 @@ begin
|
|||||||
|
|
||||||
lib^.set_proc($4CB5789ACC226780,@ps4_sceGnmDriverCaptureInProgress);
|
lib^.set_proc($4CB5789ACC226780,@ps4_sceGnmDriverCaptureInProgress);
|
||||||
|
|
||||||
|
lib^.set_proc($AA91884F33C4F997,@ps4_sceGnmDebugHardwareStatus);
|
||||||
|
|
||||||
lib^.set_proc($6F4C729659D563F2,@ps4_sceGnmAddEqEvent);
|
lib^.set_proc($6F4C729659D563F2,@ps4_sceGnmAddEqEvent);
|
||||||
|
lib^.set_proc($3D54FE7EEA12F605,@ps4_sceGnmDeleteEqEvent);
|
||||||
|
|
||||||
lib^.set_proc($6F4F0082D3E51CF8,@ps4_sceGnmAreSubmitsAllowed);
|
lib^.set_proc($6F4F0082D3E51CF8,@ps4_sceGnmAreSubmitsAllowed);
|
||||||
|
|
||||||
|
@ -595,10 +595,10 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
SceImeEditText=packed record
|
SceImeEditText=packed record
|
||||||
str:pWideChar;
|
str :pWideChar;
|
||||||
caretIndex:DWORD;
|
caretIndex:DWORD;
|
||||||
areaNum:DWORD;
|
areaNum :DWORD;
|
||||||
textArea:array[0..SCE_IME_MAX_TEXT_AREA-1] of SceImeTextAreaProperty;
|
textArea :array[0..SCE_IME_MAX_TEXT_AREA-1] of SceImeTextAreaProperty;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
SceImePositionAndForm=packed record
|
SceImePositionAndForm=packed record
|
||||||
@ -631,30 +631,30 @@ type
|
|||||||
|
|
||||||
pSceImeKeyboardInfo=^SceImeKeyboardInfo;
|
pSceImeKeyboardInfo=^SceImeKeyboardInfo;
|
||||||
SceImeKeyboardInfo=packed record
|
SceImeKeyboardInfo=packed record
|
||||||
userId:Integer;
|
userId :Integer;
|
||||||
device:Integer; //SceImeKeyboardDeviceType
|
device :Integer; //SceImeKeyboardDeviceType
|
||||||
_type:Integer; //SceImeKeyboardType
|
_type :Integer; //SceImeKeyboardType
|
||||||
repeatDelay:DWORD;
|
repeatDelay:DWORD;
|
||||||
repeatRate :DWORD;
|
repeatRate :DWORD;
|
||||||
status:Integer; //SceImeKeyboardStatus
|
status :Integer; //SceImeKeyboardStatus
|
||||||
reserved:array[0..11] of Byte;
|
reserved :array[0..11] of Byte;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
pSceImeKeyboardResourceIdArray=^SceImeKeyboardResourceIdArray;
|
pSceImeKeyboardResourceIdArray=^SceImeKeyboardResourceIdArray;
|
||||||
SceImeKeyboardResourceIdArray=packed record
|
SceImeKeyboardResourceIdArray=packed record
|
||||||
userId:Integer;
|
userId :Integer;
|
||||||
resourceId:array[0..SCE_IME_KEYBOARD_MAX_NUMBER-1] of DWORD;
|
resourceId:array[0..SCE_IME_KEYBOARD_MAX_NUMBER-1] of DWORD;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
SceImeKeycode=packed record
|
SceImeKeycode=packed record
|
||||||
keycode:Word;
|
keycode :Word;
|
||||||
character:WideChar;
|
character :WideChar;
|
||||||
status:DWORD;
|
status :DWORD;
|
||||||
_type:Integer; //SceImeKeyboardType
|
_type :Integer; //SceImeKeyboardType
|
||||||
userId:Integer;
|
userId :Integer;
|
||||||
resourceId:DWORD;
|
resourceId:DWORD;
|
||||||
_align:Integer;
|
_align :Integer;
|
||||||
timestamp:QWORD; //SceRtcTick
|
timestamp :QWORD; //SceRtcTick
|
||||||
end;
|
end;
|
||||||
|
|
||||||
pSceImeEventParam=^SceImeEventParam;
|
pSceImeEventParam=^SceImeEventParam;
|
||||||
@ -680,14 +680,51 @@ type
|
|||||||
param:SceImeEventParam;
|
param:SceImeEventParam;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
pSceImeType=^SceImeType;
|
||||||
|
SceImeType=Integer;
|
||||||
|
|
||||||
|
pSceImeEnterLabel=^SceImeEnterLabel;
|
||||||
|
SceImeEnterLabel=Integer;
|
||||||
|
|
||||||
|
pSceImeInputMethod=^SceImeInputMethod;
|
||||||
|
SceImeInputMethod=Integer;
|
||||||
|
|
||||||
|
pSceImeTextFilter=^SceImeTextFilter;
|
||||||
|
SceImeTextFilter=packed record
|
||||||
|
outText :PWideChar;
|
||||||
|
outTextLength:PDWORD;
|
||||||
|
srcText :PWideChar;
|
||||||
|
srcTextLength:DWORD;
|
||||||
|
end;
|
||||||
|
|
||||||
|
pSceImeHorizontalAlignment=^SceImeHorizontalAlignment;
|
||||||
|
SceImeHorizontalAlignment=Integer;
|
||||||
|
|
||||||
|
pSceImeVerticalAlignment=^SceImeVerticalAlignment;
|
||||||
|
SceImeVerticalAlignment=Integer;
|
||||||
|
|
||||||
|
pSceImePanelPriority=^SceImePanelPriority;
|
||||||
|
SceImePanelPriority=Integer;
|
||||||
|
|
||||||
|
pSceImeKeyboardType=^SceImeKeyboardType;
|
||||||
|
SceImeKeyboardType=Integer;
|
||||||
|
|
||||||
|
pSceImeExtKeyboardFilter=^SceImeExtKeyboardFilter;
|
||||||
|
SceImeExtKeyboardFilter=packed record
|
||||||
|
srcKeycode:SceImeKeycode;
|
||||||
|
outKeycode:Word;
|
||||||
|
outStatus :PDWORD;
|
||||||
|
reserved :Pointer;
|
||||||
|
end;
|
||||||
|
|
||||||
SceImeEventHandler=procedure(arg:Pointer;e:pSceImeEvent); SysV_ABI_CDecl;
|
SceImeEventHandler=procedure(arg:Pointer;e:pSceImeEvent); SysV_ABI_CDecl;
|
||||||
|
|
||||||
pSceImeKeyboardParam=^SceImeKeyboardParam;
|
pSceImeKeyboardParam=^SceImeKeyboardParam;
|
||||||
SceImeKeyboardParam=packed record
|
SceImeKeyboardParam=packed record
|
||||||
option:DWORD;
|
option :DWORD;
|
||||||
reserved1:DWORD;
|
reserved1:DWORD;
|
||||||
arg:Pointer;
|
arg :Pointer;
|
||||||
handler:SceImeEventHandler;
|
handler :SceImeEventHandler;
|
||||||
reserved2:QWORD;
|
reserved2:QWORD;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -467,6 +467,11 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceNetBandwidthControlSetDefaultParam(param1:Pointer;param2:Integer):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
function ps4_sceNetCtlInit:Integer; SysV_ABI_CDecl;
|
function ps4_sceNetCtlInit:Integer; SysV_ABI_CDecl;
|
||||||
begin
|
begin
|
||||||
Result:=0;
|
Result:=0;
|
||||||
@ -779,6 +784,7 @@ begin
|
|||||||
lib^.set_proc($3975D7E26524DEE9,@ps4_sceNetConnect);
|
lib^.set_proc($3975D7E26524DEE9,@ps4_sceNetConnect);
|
||||||
lib^.set_proc($76B8C86C36C0ED44,@ps4_sceNetEpollWait);
|
lib^.set_proc($76B8C86C36C0ED44,@ps4_sceNetEpollWait);
|
||||||
lib^.set_proc($227A7595F2FE25DC,@ps4_sceNetEpollDestroy);
|
lib^.set_proc($227A7595F2FE25DC,@ps4_sceNetEpollDestroy);
|
||||||
|
lib^.set_proc($3F8CD95C4EDBA6C0,@ps4_sceNetBandwidthControlSetDefaultParam);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Load_libSceNetCtl(Const name:RawByteString):TElf_node;
|
function Load_libSceNetCtl(Const name:RawByteString):TElf_node;
|
||||||
|
35
src/ps4_libsceusbstorage.pas
Normal file
35
src/ps4_libsceusbstorage.pas
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
unit ps4_libSceUsbStorage;
|
||||||
|
|
||||||
|
{$mode ObjFPC}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
ps4_program,
|
||||||
|
Classes,
|
||||||
|
SysUtils,
|
||||||
|
sys_pthread;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
function ps4_sceUsbStorageInit(pAttr:p_pthread_attr_t):Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function Load_libSceUsbStorage(Const name:RawByteString):TElf_node;
|
||||||
|
var
|
||||||
|
lib:PLIBRARY;
|
||||||
|
begin
|
||||||
|
Result:=TElf_node.Create;
|
||||||
|
Result.pFileName:=name;
|
||||||
|
|
||||||
|
lib:=Result._add_lib('libSceUsbStorage');
|
||||||
|
lib^.set_proc($0430D9C05E64B937,@ps4_sceUsbStorageInit);
|
||||||
|
end;
|
||||||
|
|
||||||
|
initialization
|
||||||
|
ps4_app.RegistredPreLoad('libSceUsbStorage.prx' ,@Load_libSceUsbStorage);
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
@ -757,6 +757,15 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceVideoOutAddDriver(driver_id:Integer; //driver id
|
||||||
|
cbs :Pointer; //cbs table
|
||||||
|
param_3 :PDWORD;
|
||||||
|
param_4 :QWORD):Pointer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Assert(false,'TODO:abstract driver structure');
|
||||||
|
Result:=nil; //need link to *t_driver structure
|
||||||
|
end;
|
||||||
|
|
||||||
function ps4_sceVideoOutAddFlipEvent(eq:SceKernelEqueue;hVideo:Integer;udata:Pointer):Integer; SysV_ABI_CDecl;
|
function ps4_sceVideoOutAddFlipEvent(eq:SceKernelEqueue;hVideo:Integer;udata:Pointer):Integer; SysV_ABI_CDecl;
|
||||||
var
|
var
|
||||||
H:TVideoOut;
|
H:TVideoOut;
|
||||||
@ -2038,6 +2047,7 @@ begin
|
|||||||
lib^.set_proc($32DE101C793190E7,@ps4_sceVideoOutGetEventCount);
|
lib^.set_proc($32DE101C793190E7,@ps4_sceVideoOutGetEventCount);
|
||||||
lib^.set_proc($AD651370A7645334,@ps4_sceVideoOutGetEventData);
|
lib^.set_proc($AD651370A7645334,@ps4_sceVideoOutGetEventData);
|
||||||
lib^.set_proc($536249B52A8D2992,@ps4_sceVideoOutGetEventId);
|
lib^.set_proc($536249B52A8D2992,@ps4_sceVideoOutGetEventId);
|
||||||
|
lib^.set_proc($1EDC127781F64F0B,@ps4_sceVideoOutAddDriver);
|
||||||
lib^.set_proc($1D7CE32BDC88DF49,@ps4_sceVideoOutAddFlipEvent);
|
lib^.set_proc($1D7CE32BDC88DF49,@ps4_sceVideoOutAddFlipEvent);
|
||||||
lib^.set_proc($5EBBBDDB01C94668,@ps4_sceVideoOutAddVblankEvent);
|
lib^.set_proc($5EBBBDDB01C94668,@ps4_sceVideoOutAddVblankEvent);
|
||||||
lib^.set_proc($8BAFEC47DD56B7FE,@ps4_sceVideoOutSetBufferAttribute);
|
lib^.set_proc($8BAFEC47DD56B7FE,@ps4_sceVideoOutSetBufferAttribute);
|
||||||
|
@ -176,6 +176,11 @@ begin
|
|||||||
Result:=0;
|
Result:=0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function ps4_sceVoiceResumePortAll():Integer; SysV_ABI_CDecl;
|
||||||
|
begin
|
||||||
|
Result:=0;
|
||||||
|
end;
|
||||||
|
|
||||||
function Load_libSceVoice(Const name:RawByteString):TElf_node;
|
function Load_libSceVoice(Const name:RawByteString):TElf_node;
|
||||||
var
|
var
|
||||||
lib:PLIBRARY;
|
lib:PLIBRARY;
|
||||||
@ -194,6 +199,7 @@ begin
|
|||||||
lib^.set_proc($710E831AC4048D5E,@ps4_sceVoiceReadFromOPort);
|
lib^.set_proc($710E831AC4048D5E,@ps4_sceVoiceReadFromOPort);
|
||||||
lib^.set_proc($4011680088C9A174,@ps4_sceVoiceSetVolume);
|
lib^.set_proc($4011680088C9A174,@ps4_sceVoiceSetVolume);
|
||||||
lib^.set_proc($8305329E41203456,@ps4_sceVoiceSetMuteFlag);
|
lib^.set_proc($8305329E41203456,@ps4_sceVoiceSetMuteFlag);
|
||||||
|
lib^.set_proc($8DB909166399F54D,@ps4_sceVoiceResumePortAll);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function Load_libSceVoiceQoS(Const name:RawByteString):TElf_node;
|
function Load_libSceVoiceQoS(Const name:RawByteString):TElf_node;
|
||||||
|
@ -1,53 +0,0 @@
|
|||||||
unit ps4_libSceWebBrowserDialog;
|
|
||||||
|
|
||||||
{$mode ObjFPC}{$H+}
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses
|
|
||||||
ps4_program,
|
|
||||||
Classes,
|
|
||||||
SysUtils;
|
|
||||||
|
|
||||||
const
|
|
||||||
//SceCommonDialogStatus
|
|
||||||
SCE_COMMON_DIALOG_STATUS_NONE =0;
|
|
||||||
SCE_COMMON_DIALOG_STATUS_INITIALIZED=1;
|
|
||||||
SCE_COMMON_DIALOG_STATUS_RUNNING =2;
|
|
||||||
SCE_COMMON_DIALOG_STATUS_FINISHED =3;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
|
|
||||||
function ps4_sceWebBrowserDialogUpdateStatus():Integer; SysV_ABI_CDecl;
|
|
||||||
begin
|
|
||||||
Result:=0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function ps4_sceWebBrowserDialogGetStatus():Integer; SysV_ABI_CDecl;
|
|
||||||
begin
|
|
||||||
Result:=0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function ps4_sceWebBrowserDialogTerminate():Integer; SysV_ABI_CDecl;
|
|
||||||
begin
|
|
||||||
Result:=0;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function Load_libSceWebBrowserDialog(Const name:RawByteString):TElf_node;
|
|
||||||
var
|
|
||||||
lib:PLIBRARY;
|
|
||||||
begin
|
|
||||||
Result:=TElf_node.Create;
|
|
||||||
Result.pFileName:=name;
|
|
||||||
|
|
||||||
lib:=Result._add_lib('libSceWebBrowserDialog');
|
|
||||||
lib^.set_proc($875751FEDE484A08,@ps4_sceWebBrowserDialogUpdateStatus);
|
|
||||||
lib^.set_proc($0854C6E9AF138CE5,@ps4_sceWebBrowserDialogGetStatus);
|
|
||||||
lib^.set_proc($A1C1EDC81C077F2B,@ps4_sceWebBrowserDialogTerminate);
|
|
||||||
end;
|
|
||||||
|
|
||||||
initialization
|
|
||||||
ps4_app.RegistredPreLoad('libSceWebBrowserDialog.prx',@Load_libSceWebBrowserDialog);
|
|
||||||
|
|
||||||
end.
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user