diff --git a/fpPS4.lpr b/fpPS4.lpr index 7af0c6a9..ecdf9a20 100644 --- a/fpPS4.lpr +++ b/fpPS4.lpr @@ -65,6 +65,10 @@ uses ps4_libSceAudiodecCpu, ps4_libSceDepth, ps4_libSceNpTus, + ps4_libSceLoginService, + ps4_libSceHmd, + ps4_libSceVrTracker, + ps4_libSceCamera, ps4_elf, ps4_pthread, ps4_program, diff --git a/kernel/ps4_libkernel.pas b/kernel/ps4_libkernel.pas index 7af97ebb..5431f2bf 100644 --- a/kernel/ps4_libkernel.pas +++ b/kernel/ps4_libkernel.pas @@ -1611,6 +1611,7 @@ begin //queue lib^.set_proc($0F439D14C8E9E3A2,@ps4_sceKernelCreateEqueue); + lib^.set_proc($8E91639A0002E401,@ps4_sceKernelDeleteEqueue); lib^.set_proc($7F3C8C2ACF648A6D,@ps4_sceKernelWaitEqueue); lib^.set_proc($E11EBF3AF2367040,@ps4_sceKernelAddUserEvent); diff --git a/kernel/ps4_queue.pas b/kernel/ps4_queue.pas index 7fa7f273..b2eaaf18 100644 --- a/kernel/ps4_queue.pas +++ b/kernel/ps4_queue.pas @@ -129,6 +129,7 @@ type end; function ps4_sceKernelCreateEqueue(outEq:PSceKernelEqueue;name:PChar):Integer; SysV_ABI_CDecl; +function ps4_sceKernelDeleteEqueue(eq:PSceKernelEqueue):Integer; SysV_ABI_CDecl; function ps4_sceKernelWaitEqueue( eq:SceKernelEqueue; @@ -315,6 +316,11 @@ begin _sig_unlock; end; +function ps4_sceKernelDeleteEqueue(eq:PSceKernelEqueue):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + function _post_event(eq:SceKernelEqueue;node:PKEventNode;cb:TKFetchEvent):Boolean; var i,t,wait:DWORD; diff --git a/src/ps4_libscecamera.pas b/src/ps4_libscecamera.pas new file mode 100644 index 00000000..8a8367e9 --- /dev/null +++ b/src/ps4_libscecamera.pas @@ -0,0 +1,35 @@ +unit ps4_libSceCamera; + +{$mode ObjFPC}{$H+} + +interface + + +uses + ps4_program, + Classes, + SysUtils; + +implementation + + +function ps4_sceCameraIsAttached(index:Integer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function Load_libSceCamera(Const name:RawByteString):TElf_node; +var + lib:PLIBRARY; +begin + Result:=TElf_node.Create; + Result.pFileName:=name; + lib:=Result._add_lib('libSceCamera'); + lib^.set_proc($A7A9F73698B7618E,@ps4_sceCameraIsAttached); +end; + +initialization + ps4_app.RegistredPreLoad('libSceCamera.prx',@Load_libSceCamera); + +end. + diff --git a/src/ps4_libscedialogs.pas b/src/ps4_libscedialogs.pas index 03adb9ef..5bb1b7e7 100644 --- a/src/ps4_libscedialogs.pas +++ b/src/ps4_libscedialogs.pas @@ -514,6 +514,40 @@ end; // +function ps4_sceLoginDialogInitialize():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +// + +function ps4_sceHmdSetupDialogInitialize():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdSetupDialogOpen(param:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdSetupDialogUpdateStatus():Integer; SysV_ABI_CDecl; +begin + Result:=SCE_COMMON_DIALOG_STATUS_FINISHED; +end; + +function ps4_sceHmdSetupDialogGetResult(pResult:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdSetupDialogTerminate():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +// + function Load_libSceCommonDialog(Const name:RawByteString):TElf_node; var lib:PLIBRARY; @@ -639,6 +673,30 @@ begin lib^.set_proc($2000E60F8B527016,@ps4_sceImeDialogGetStatus); end; +function Load_libSceLoginDialog(Const name:RawByteString):TElf_node; +var + lib:PLIBRARY; +begin + Result:=TElf_node.Create; + Result.pFileName:=name; + lib:=Result._add_lib('libSceLoginDialog'); + lib^.set_proc($A8FFC4BD0465D877,@ps4_sceLoginDialogInitialize); +end; + +function Load_libSceHmdSetupDialog(Const name:RawByteString):TElf_node; +var + lib:PLIBRARY; +begin + Result:=TElf_node.Create; + Result.pFileName:=name; + lib:=Result._add_lib('libSceHmdSetupDialog'); + lib^.set_proc($341D58DA40368C26,@ps4_sceHmdSetupDialogInitialize); + lib^.set_proc($34D8225784FE6A45,@ps4_sceHmdSetupDialogOpen); + lib^.set_proc($51DEE3DFE4432018,@ps4_sceHmdSetupDialogUpdateStatus); + lib^.set_proc($EA55511CC5792D8D,@ps4_sceHmdSetupDialogGetResult); + lib^.set_proc($FB3E0E26616B7997,@ps4_sceHmdSetupDialogTerminate); +end; + initialization ps4_app.RegistredPreLoad('libSceCommonDialog.prx' ,@Load_libSceCommonDialog); ps4_app.RegistredPreLoad('libSceErrorDialog.prx' ,@Load_libSceErrorDialog); @@ -649,6 +707,8 @@ initialization ps4_app.RegistredPreLoad('libSceSigninDialog.prx' ,@Load_libSceSigninDialog); ps4_app.RegistredPreLoad('libScePlayerInvitationDialog.prx',@Load_libScePlayerInvitationDialog); ps4_app.RegistredPreLoad('libSceImeDialog.prx' ,@Load_libSceImeDialog); + ps4_app.RegistredPreLoad('libSceLoginDialog.prx' ,@Load_libSceLoginDialog); + ps4_app.RegistredPreLoad('libSceHmdSetupDialog.prx' ,@Load_libSceHmdSetupDialog); end. diff --git a/src/ps4_libscehmd.pas b/src/ps4_libscehmd.pas new file mode 100644 index 00000000..09f333a5 --- /dev/null +++ b/src/ps4_libscehmd.pas @@ -0,0 +1,112 @@ +unit ps4_libSceHmd; + +{$mode ObjFPC}{$H+} + +interface + + +uses + ps4_program, + Classes, + SysUtils; + +implementation + +function ps4_sceHmdInitialize(param:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdInitialize315(param:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdReprojectionQueryOnionBuffSize():Integer; SysV_ABI_CDecl; +begin + Result:=$810; +end; + +function ps4_sceHmdReprojectionQueryOnionBuffAlign():Integer; SysV_ABI_CDecl; +begin + Result:=$100; +end; + +function ps4_sceHmdReprojectionQueryGarlicBuffSize():Integer; SysV_ABI_CDecl; +begin + Result:=$100000; +end; + +function ps4_sceHmdReprojectionQueryGarlicBuffAlign():Integer; SysV_ABI_CDecl; +begin + Result:=$100; +end; + +function ps4_sceHmdReprojectionSetUserEventStart(eq:Pointer;id:Integer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdReprojectionSetUserEventEnd(eq:Pointer;id:Integer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdGetDeviceInformation(info:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdReprojectionStop():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdReprojectionUnsetDisplayBuffers():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +procedure ps4_sceHmdReprojectionFinalize(); SysV_ABI_CDecl; +begin + // +end; + +function ps4_sceHmdReprojectionClearUserEventStart():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceHmdTerminate():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function Load_libSceHmd(Const name:RawByteString):TElf_node; +var + lib:PLIBRARY; +begin + Result:=TElf_node.Create; + Result.pFileName:=name; + lib:=Result._add_lib('libSceHmd'); + lib^.set_proc($2B82A71F44244F67,@ps4_sceHmdInitialize); + lib^.set_proc($B3F27AE9AAFD839D,@ps4_sceHmdInitialize315); + lib^.set_proc($90B50090DE9AD5EF,@ps4_sceHmdReprojectionQueryOnionBuffSize); + lib^.set_proc($216C9B59B47FC6F0,@ps4_sceHmdReprojectionQueryOnionBuffAlign); + lib^.set_proc($CF42AD375BEA1761,@ps4_sceHmdReprojectionQueryGarlicBuffSize); + lib^.set_proc($4E470035C18CD2CF,@ps4_sceHmdReprojectionQueryGarlicBuffAlign); + lib^.set_proc($EDAB340A35D6D41F,@ps4_sceHmdReprojectionSetUserEventStart); + lib^.set_proc($927C888659292E01,@ps4_sceHmdReprojectionSetUserEventEnd); + lib^.set_proc($B610EDF6EA59969F,@ps4_sceHmdGetDeviceInformation); + lib^.set_proc($BF33049300507223,@ps4_sceHmdReprojectionStop); + lib^.set_proc($88634DA430E3730A,@ps4_sceHmdReprojectionUnsetDisplayBuffers); + lib^.set_proc($66B579608A83D3D2,@ps4_sceHmdReprojectionFinalize); + lib^.set_proc($99DC856DA263EBA3,@ps4_sceHmdReprojectionClearUserEventStart); + lib^.set_proc($CFF44C20BA8FEAD1,@ps4_sceHmdTerminate); +end; + +initialization + ps4_app.RegistredPreLoad('libSceHmd.prx',@Load_libSceHmd); + +end. + diff --git a/src/ps4_libsceloginservice.pas b/src/ps4_libsceloginservice.pas new file mode 100644 index 00000000..fda4cdee --- /dev/null +++ b/src/ps4_libsceloginservice.pas @@ -0,0 +1,34 @@ +unit ps4_libSceLoginService; + +{$mode ObjFPC}{$H+} + +interface + + +uses + ps4_program, + Classes, + SysUtils; + +implementation + +function ps4_sceLoginServiceInitialize():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function Load_libSceLoginService(Const name:RawByteString):TElf_node; +var + lib:PLIBRARY; +begin + Result:=TElf_node.Create; + Result.pFileName:=name; + lib:=Result._add_lib('libSceLoginService'); + lib^.set_proc($4FDFCDB921C0BDC4,@ps4_sceLoginServiceInitialize); +end; + +initialization + ps4_app.RegistredPreLoad('libSceLoginService.prx',@Load_libSceLoginService); + +end. + diff --git a/src/ps4_libscevrtracker.pas b/src/ps4_libscevrtracker.pas new file mode 100644 index 00000000..4aad06d2 --- /dev/null +++ b/src/ps4_libscevrtracker.pas @@ -0,0 +1,46 @@ +unit ps4_libSceVrTracker; + +{$mode ObjFPC}{$H+} + +interface + + +uses + ps4_program, + Classes, + SysUtils; + +implementation + +function ps4_sceVrTrackerQueryMemory(param,pResult:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceVrTrackerInit(param:Pointer):Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function ps4_sceVrTrackerTerm():Integer; SysV_ABI_CDecl; +begin + Result:=0; +end; + +function Load_libSceVrTracker(Const name:RawByteString):TElf_node; +var + lib:PLIBRARY; +begin + Result:=TElf_node.Create; + Result.pFileName:=name; + lib:=Result._add_lib('libSceVrTracker'); + lib^.set_proc($2BBCA162BB0804F7,@ps4_sceVrTrackerQueryMemory); + lib^.set_proc($424465EE90114FD3,@ps4_sceVrTrackerInit); + lib^.set_proc($201BF83F7AB5A50D,@ps4_sceVrTrackerTerm); +end; + +initialization + ps4_app.RegistredPreLoad('libSceVrTracker.prx',@Load_libSceVrTracker); + +end. +