Replace QueryPerformanceCounter. (#35)

This commit is contained in:
Darío 2024-12-15 08:55:40 -03:00 committed by GitHub
parent 9b6e4406b7
commit 4a38878aa0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3,16 +3,20 @@
BOOL QueryPerformanceCounterImpl(LARGE_INTEGER* lpPerformanceCount) BOOL QueryPerformanceCounterImpl(LARGE_INTEGER* lpPerformanceCount)
{ {
BOOL result = QueryPerformanceCounter(lpPerformanceCount); lpPerformanceCount->QuadPart = ByteSwap(std::chrono::steady_clock::now().time_since_epoch().count());
ByteSwapInplace(lpPerformanceCount->QuadPart); return TRUE;
return result;
} }
BOOL QueryPerformanceFrequencyImpl(LARGE_INTEGER* lpFrequency) BOOL QueryPerformanceFrequencyImpl(LARGE_INTEGER* lpFrequency)
{ {
BOOL result = QueryPerformanceFrequency(lpFrequency); constexpr auto Frequency = std::chrono::steady_clock::period::den / std::chrono::steady_clock::period::num;
ByteSwapInplace(lpFrequency->QuadPart); lpFrequency->QuadPart = ByteSwap(Frequency);
return result; return TRUE;
}
DWORD GetTickCountImpl()
{
return DWORD(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now().time_since_epoch()).count());
} }
void GlobalMemoryStatusImpl(XLPMEMORYSTATUS lpMemoryStatus) void GlobalMemoryStatusImpl(XLPMEMORYSTATUS lpMemoryStatus)
@ -42,7 +46,7 @@ GUEST_FUNCTION_HOOK(sub_82BD4CA8, OutputDebugStringA);
GUEST_FUNCTION_HOOK(sub_82BD4AC8, QueryPerformanceCounterImpl); GUEST_FUNCTION_HOOK(sub_82BD4AC8, QueryPerformanceCounterImpl);
GUEST_FUNCTION_HOOK(sub_831CD040, QueryPerformanceFrequencyImpl); GUEST_FUNCTION_HOOK(sub_831CD040, QueryPerformanceFrequencyImpl);
GUEST_FUNCTION_HOOK(sub_831CDAD0, GetTickCount); GUEST_FUNCTION_HOOK(sub_831CDAD0, GetTickCountImpl);
GUEST_FUNCTION_HOOK(sub_82BD4BC0, GlobalMemoryStatusImpl); GUEST_FUNCTION_HOOK(sub_82BD4BC0, GlobalMemoryStatusImpl);