mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-02-26 08:55:58 +00:00
Add more accurate cycles in sceRtc and sceDisplay.
This commit is contained in:
parent
bf826ed9c1
commit
2df10e9b69
@ -26,6 +26,7 @@
|
||||
#include "Thread.h"
|
||||
#include "../Core/CoreTiming.h"
|
||||
#include "../Core/CoreParameter.h"
|
||||
#include "Core/Reporting.h"
|
||||
#include "../MIPS/MIPS.h"
|
||||
#include "../HLE/HLE.h"
|
||||
#include "sceAudio.h"
|
||||
@ -525,7 +526,7 @@ u32 sceDisplayWaitVblank() {
|
||||
return 0;
|
||||
} else {
|
||||
DEBUG_LOG(HLE,"sceDisplayWaitVblank() - not waiting since in vBlank");
|
||||
hleEatCycles(5 * 222);
|
||||
hleEatCycles(1110);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -545,7 +546,7 @@ u32 sceDisplayWaitVblankCB() {
|
||||
return 0;
|
||||
} else {
|
||||
DEBUG_LOG(HLE,"sceDisplayWaitVblank() - not waiting since in vBlank");
|
||||
hleEatCycles(5 * 222);
|
||||
hleEatCycles(1110);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -567,18 +568,19 @@ u32 sceDisplayWaitVblankStartMultiCB(int vblanks) {
|
||||
u32 sceDisplayGetVcount() {
|
||||
VERBOSE_LOG(HLE,"%i=sceDisplayGetVcount()", vCount);
|
||||
|
||||
hleEatCycles(2 * 222);
|
||||
hleEatCycles(150);
|
||||
return vCount;
|
||||
}
|
||||
|
||||
u32 sceDisplayGetCurrentHcount() {
|
||||
u32 currentHCount = (CoreTiming::GetTicks() - frameStartTicks) / ((u64)CoreTiming::GetClockFrequencyMHz() * 1000000 / 60 / hCountPerVblank);
|
||||
DEBUG_LOG(HLE,"%i=sceDisplayGetCurrentHcount()", currentHCount);
|
||||
hleEatCycles(275);
|
||||
return currentHCount;
|
||||
}
|
||||
|
||||
u32 sceDisplayAdjustAccumulatedHcount() {
|
||||
ERROR_LOG(HLE,"UNIMPL sceDisplayAdjustAccumulatedHcount()");
|
||||
ERROR_LOG_REPORT(HLE,"UNIMPL sceDisplayAdjustAccumulatedHcount()");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -586,6 +588,7 @@ u32 sceDisplayGetAccumulatedHcount() {
|
||||
u32 currentHCount = (CoreTiming::GetTicks() - frameStartTicks) / ((u64)CoreTiming::GetClockFrequencyMHz() * 1000000 / 60 / hCountPerVblank);
|
||||
u32 accumHCount = currentHCount + (u32) (vCount * hCountPerVblank);
|
||||
DEBUG_LOG(HLE,"%i=sceDisplayGetAccumulatedHcount()", accumHCount);
|
||||
hleEatCycles(235);
|
||||
return accumHCount;
|
||||
}
|
||||
|
||||
|
@ -193,7 +193,7 @@ u32 sceRtcGetCurrentTick(u32 tickPtr)
|
||||
u64 curTick = __RtcGetCurrentTick();
|
||||
if (Memory::IsValidAddress(tickPtr))
|
||||
Memory::Write_U64(curTick, tickPtr);
|
||||
hleEatCycles(222);
|
||||
hleEatCycles(300);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -228,6 +228,7 @@ u32 sceRtcGetCurrentClock(u32 pspTimePtr, int tz)
|
||||
if (Memory::IsValidAddress(pspTimePtr))
|
||||
Memory::WriteStruct(pspTimePtr, &ret);
|
||||
|
||||
hleEatCycles(1900);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -252,6 +253,7 @@ u32 sceRtcGetCurrentClockLocalTime(u32 pspTimePtr)
|
||||
if (Memory::IsValidAddress(pspTimePtr))
|
||||
Memory::WriteStruct(pspTimePtr, &ret);
|
||||
|
||||
hleEatCycles(2000);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user