Fix timestamp desync

This commit is contained in:
AtelierWindows\SilicaAndPina 2019-01-15 22:32:50 +13:00
parent e2eb32beee
commit 4c8c7c9633
1 changed files with 16 additions and 12 deletions

View File

@ -215,7 +215,6 @@ int pfsMount(const char *path) {
} }
void sceNpTrophySetupDialogParamInit(SceNpTrophySetupDialogParam* param) void sceNpTrophySetupDialogParamInit(SceNpTrophySetupDialogParam* param)
{ {
sceClibMemset( param, 0x0, sizeof(SceNpTrophySetupDialogParam) ); sceClibMemset( param, 0x0, sizeof(SceNpTrophySetupDialogParam) );
@ -226,14 +225,10 @@ void sceNpTrophySetupDialogParamInit(SceNpTrophySetupDialogParam* param)
} }
int setSecureTick(unsigned long long int psTime) int setSecureTick(unsigned long long int psTime)
{ {
SceRtcTick utcTime = {0};
SceRtcTick localTime = {0};
utcTime.tick = psTime;
sceRtcConvertUtcToLocalTime(&utcTime,&localTime);
psTime = localTime.tick;
printf("setSecureTick: %llx\n",psTime); printf("setSecureTick: %llx\n",psTime);
@ -260,6 +255,13 @@ int setSecureTick(unsigned long long int psTime)
int main() { int main() {
gxm_init(); gxm_init();
psvDebugScreenInit(); psvDebugScreenInit();
SceRtcTick fakeTime = {0};
sceRtcGetCurrentTick(&fakeTime);
sceRtcConvertUtcToLocalTime(&fakeTime,&fakeTime);
start: start:
psvDebugScreenClear(); psvDebugScreenClear();
@ -947,13 +949,10 @@ selectTrophyMenu:
int selectedPartOfTime = 0; int selectedPartOfTime = 0;
SceDateTime dateTime; SceDateTime dateTime;
memset(&dateTime,0x00,sizeof(SceDateTime)); memset(&dateTime,0x00,sizeof(SceDateTime));
SceRtcTick fakeTime = {0};
sceRtcGetCurrentTick(&fakeTime);
sceRtcSetTick(&dateTime,&fakeTime); sceRtcSetTick(&dateTime,&fakeTime);
while(1) while(1)
{ {
@ -1104,6 +1103,7 @@ selectTrophyMenu:
dateTime.second --; dateTime.second --;
} }
} }
sceKernelDelayThread(150000); sceKernelDelayThread(150000);
} }
@ -1180,7 +1180,10 @@ selectTrophyMenu:
SceNpTrophyId id = selection; SceNpTrophyId id = selection;
SceNpTrophyId platid; SceNpTrophyId platid;
FakeTimes(1); FakeTimes(1);
sceRtcConvertLocalTimeToUtc(&fakeTime, &fakeTime);
setSecureTick(fakeTime.tick); setSecureTick(fakeTime.tick);
ret = sceNpTrophyUnlockTrophy(trophyContext,handle,id,&platid); ret = sceNpTrophyUnlockTrophy(trophyContext,handle,id,&platid);
if(ret < 0){ if(ret < 0){
if(ret == 0x8055160f) if(ret == 0x8055160f)
@ -1209,6 +1212,7 @@ selectTrophyMenu:
sceKernelDelayThread(500000); sceKernelDelayThread(500000);
goto selectTrophyMenu; goto selectTrophyMenu;
} }
;
} }
} }
} }