Add more accurate cycles in sceRtc and sceDisplay.

This commit is contained in:
Unknown W. Brackets 2013-05-04 23:35:46 -07:00
parent bf826ed9c1
commit 2df10e9b69
2 changed files with 10 additions and 5 deletions

View File

@ -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;
}

View File

@ -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;
}