mirror of https://github.com/red-prig/fpPS4.git
This commit is contained in:
parent
5a85f534e5
commit
7fdb7bacc0
|
@ -306,6 +306,7 @@
|
|||
<Unit67>
|
||||
<Filename Value="src\ps4_libscegnmdriver.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ps4_libSceGnmDriver"/>
|
||||
</Unit67>
|
||||
<Unit68>
|
||||
<Filename Value="src\ps4_libscehttp.pas"/>
|
||||
|
@ -339,6 +340,7 @@
|
|||
<Unit75>
|
||||
<Filename Value="src\ps4_libscertc.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ps4_libSceRtc"/>
|
||||
</Unit75>
|
||||
<Unit76>
|
||||
<Filename Value="src\ps4_libscesavedata.pas"/>
|
||||
|
@ -351,6 +353,7 @@
|
|||
<Unit78>
|
||||
<Filename Value="src\ps4_libsceuserservice.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ps4_libSceUserService"/>
|
||||
</Unit78>
|
||||
<Unit79>
|
||||
<Filename Value="src\ps4_libscevideoout.pas"/>
|
||||
|
@ -373,6 +376,7 @@
|
|||
<Unit83>
|
||||
<Filename Value="src\audio\ps4_libsceaudioout.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="ps4_libSceAudioOut"/>
|
||||
</Unit83>
|
||||
<Unit84>
|
||||
<Filename Value="src\np\ps4_libscenpmanager.pas"/>
|
||||
|
|
33
fpPS4.lpr
33
fpPS4.lpr
|
@ -13,7 +13,7 @@ uses
|
|||
sys_types,
|
||||
sys_pthread,
|
||||
ps4libdoc,
|
||||
//ps4_libSceRtc
|
||||
ps4_libSceRtc,
|
||||
ps4_libSceNpSignaling,
|
||||
ps4_libSceNpMatching2,
|
||||
ps4_libSceRemoteplay,
|
||||
|
@ -306,6 +306,14 @@ begin
|
|||
begin
|
||||
|
||||
Case Info^.lib^.strName of
|
||||
'libSceVideoOut':;
|
||||
'libSceSystemService':;
|
||||
'libSceUserService':;
|
||||
'libSceNetCtl':;
|
||||
'libSceNpManager':;
|
||||
'libSceNpManagerForToolkit':;
|
||||
'libScePad':;
|
||||
'libSceFios2':;
|
||||
'libSceGnmDriver':;
|
||||
'libSceAjm':;
|
||||
'libSceAudioOut':;
|
||||
|
@ -313,7 +321,16 @@ begin
|
|||
'libSceLibcInternal':;
|
||||
else
|
||||
Case RawByteString(ps4libdoc.GetFunctName(Info^.Nid)) of
|
||||
'scePthreadCondSignal':;
|
||||
'scePthreadCondTimedwait':;
|
||||
'scePthreadYield':;
|
||||
'nanosleep':;
|
||||
'sceKernelGetProcessTimeCounter':;
|
||||
'clock_gettime':;
|
||||
'pthread_mutex_init':;
|
||||
'sceKernelLseek':;
|
||||
'scePthreadMutexDestroy':;
|
||||
'sceKernelRead':;
|
||||
'sceKernelSignalSema':;
|
||||
'sceKernelWaitSema':;
|
||||
'scePthreadMutexInit':;
|
||||
|
@ -333,7 +350,7 @@ begin
|
|||
'sceKernelPread':;
|
||||
'sceKernelClose':;
|
||||
'sceDiscMapIsRequestOnHDD':;
|
||||
'Unknow':;
|
||||
//'Unknow':;
|
||||
'sceFiosIOFilterPsarcDearchiver':;
|
||||
'sceFiosFHReadSync':;
|
||||
'sceFiosFHTell':;
|
||||
|
@ -346,8 +363,6 @@ begin
|
|||
'scePthreadCondBroadcast':;
|
||||
'sceFiosFHCloseSync':;
|
||||
'sceKernelStat':;
|
||||
'sceFiosFHOpenSync':;
|
||||
'sceFiosFHGetSize':;
|
||||
'sceKernelOpen':;
|
||||
'sceKernelUsleep':;
|
||||
'_write':;
|
||||
|
@ -612,6 +627,16 @@ begin
|
|||
//ps4_app.app_path:='C:\Users\User\Desktop\Games\SPELUNKY2\CUSA20601\';
|
||||
//ps4_app.app_file:='C:\Users\User\Desktop\Games\SPELUNKY2\CUSA20601\eboot.bin';
|
||||
|
||||
//ps4_app.app_path:='G:\Games\Desert.Child\CUSA12744\';
|
||||
//ps4_app.app_file:='G:\Games\Desert.Child\CUSA12744\eboot.bin';
|
||||
|
||||
//ps4_app.app_path:='G:\Games\Blackhole\CUSA06921\';
|
||||
//ps4_app.app_file:='G:\Games\Blackhole\CUSA06921\eboot.bin';
|
||||
|
||||
//ps4_app.app_path:='G:\Games\Spelunky\CUSA00491\';
|
||||
//ps4_app.app_file:='G:\Games\Spelunky\CUSA00491\eboot.bin';
|
||||
|
||||
|
||||
ps4_app.resolve_cb:=@ResolveImport;
|
||||
ps4_app.reload_cb :=@ReloadImport;
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ type
|
|||
hour :Word;
|
||||
minute:Word;
|
||||
second:Word;
|
||||
microsecond:QWORD;
|
||||
microsecond:DWORD;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
@ -94,6 +94,12 @@ var
|
|||
begin
|
||||
if (pTick0=nil) or (pTick1=nil) then Exit(-$7f4afffe);
|
||||
|
||||
if (lSub=0) then
|
||||
begin
|
||||
pTick0^:=pTick1^;
|
||||
Exit(0);
|
||||
end;
|
||||
|
||||
t1:=pTick1^;
|
||||
|
||||
if (lSub<0) then
|
||||
|
@ -116,6 +122,12 @@ var
|
|||
begin
|
||||
if (pTick0=nil) or (pTick1=nil) then Exit(-$7f4afffe);
|
||||
|
||||
if (lAdd=0) then
|
||||
begin
|
||||
pTick0^:=pTick1^;
|
||||
Exit(0);
|
||||
end;
|
||||
|
||||
ladd_mul:=lAdd*60000000;
|
||||
|
||||
t1:=pTick1^;
|
||||
|
@ -388,11 +400,13 @@ begin
|
|||
tick := _tick + $dcbffeff2bc000;
|
||||
|
||||
Result:=ps4_sceKernelConvertUtcToLocaltime(_tick div 1000000,@local_time,@tsec,nil);
|
||||
|
||||
if (Result>=0) then
|
||||
begin
|
||||
ps4_sceRtcTickAddMinutes(@tick,@tick,(tsec.tz_dstsec + tsec.tz_secwest) div $3c);
|
||||
ps4_sceRtcSetTick(pTime,@tick);
|
||||
end;
|
||||
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -857,6 +871,74 @@ begin
|
|||
end;
|
||||
end;
|
||||
|
||||
function ps4_sceRtcTickAddMonths(pTick0,pTick1:PQWORD;iAdd:Integer):Integer; SysV_ABI_CDecl;
|
||||
var
|
||||
Time:SceRtcDateTime;
|
||||
TempMonth,S:Integer;
|
||||
begin
|
||||
if (pTick0=nil) or (pTick1=nil) then Exit(-$7f4afffe);
|
||||
|
||||
if (iAdd=0) then
|
||||
begin
|
||||
pTick0^:=pTick1^;
|
||||
Exit(0);
|
||||
end;
|
||||
|
||||
ps4_sceRtcSetTick(@Time,pTick1);
|
||||
|
||||
If (iAdd>=0) then
|
||||
begin
|
||||
s:=1
|
||||
end else
|
||||
begin
|
||||
s:=-1;
|
||||
end;
|
||||
|
||||
inc(Time.Year,(iAdd div 12));
|
||||
TempMonth:=Time.Month+(iAdd mod 12)-1;
|
||||
|
||||
if (TempMonth>11) or
|
||||
(TempMonth<0) then
|
||||
begin
|
||||
Dec(TempMonth,S*12);
|
||||
Inc(Time.Year,S);
|
||||
end;
|
||||
|
||||
Time.Month:=TempMonth+1;
|
||||
|
||||
If (Time.Day>MonthDays[leap_year(Time.Year)][Time.Month]) then
|
||||
begin
|
||||
Time.Day:=MonthDays[leap_year(Time.Year)][Time.Month];
|
||||
end;
|
||||
|
||||
Result:=_sceRtcCheckValid(@Time);
|
||||
if (Result<>0) then Exit;
|
||||
|
||||
Result:=_sceRtcGetTick(@Time,pTick0);
|
||||
end;
|
||||
|
||||
function ps4_sceRtcTickAddYears(pTick0,pTick1:PQWORD;iAdd:Integer):Integer; SysV_ABI_CDecl;
|
||||
var
|
||||
Time:SceRtcDateTime;
|
||||
begin
|
||||
if (pTick0=nil) or (pTick1=nil) then Exit(-$7f4afffe);
|
||||
|
||||
if (iAdd=0) then
|
||||
begin
|
||||
pTick0^:=pTick1^;
|
||||
Exit(0);
|
||||
end;
|
||||
|
||||
ps4_sceRtcSetTick(@Time,pTick1);
|
||||
|
||||
Inc(Time.Year,iAdd);
|
||||
|
||||
Result:=_sceRtcCheckValid(@Time);
|
||||
if (Result<>0) then Exit;
|
||||
|
||||
Result:=_sceRtcGetTick(@Time,pTick0);
|
||||
end;
|
||||
|
||||
function Load_libSceRtc(Const name:RawByteString):TElf_node;
|
||||
var
|
||||
lib:PLIBRARY;
|
||||
|
@ -905,13 +987,12 @@ begin
|
|||
lib^.set_proc($6C311554FE1B4E34,@ps4_sceRtcSetTime_t);
|
||||
lib^.set_proc($06DAA6A534571E09,@ps4_sceRtcGetTime_t);
|
||||
lib^.set_proc($7CD699E036F31C01,@ps4_sceRtcCompareTick);
|
||||
lib^.set_proc($08BEB2F6AFD76EE4,@ps4_sceRtcTickAddMonths);
|
||||
lib^.set_proc($FF9CB6B89EB6A92F,@ps4_sceRtcTickAddYears);
|
||||
|
||||
ps4_module_start(0,nil);
|
||||
end;
|
||||
|
||||
//TODO sceRtcTickAddMonths
|
||||
//TODO sceRtcTickAddYears
|
||||
|
||||
//TODO sceRtcParseDateTime
|
||||
//TODO sceRtcParseRFC3339
|
||||
//TODO sceRtcFormatRFC2822LocalTime
|
||||
|
@ -920,7 +1001,7 @@ end;
|
|||
//TODO sceRtcFormatRFC3339
|
||||
|
||||
initialization
|
||||
//ps4_app.RegistredPreLoad('libSceRtc.prx',@Load_libSceRtc);
|
||||
ps4_app.RegistredPreLoad('libSceRtc.prx',@Load_libSceRtc);
|
||||
|
||||
end.
|
||||
|
||||
|
|
Loading…
Reference in New Issue