Support relative and absolute time

This fixes #23
This commit is contained in:
momo5502
2024-11-10 15:34:21 +01:00
parent 6f8f840b57
commit d1493867fe
5 changed files with 56 additions and 11 deletions

View File

@@ -22,17 +22,28 @@ namespace
{
performance_counter.access([&](LARGE_INTEGER& value)
{
value.QuadPart = static_cast<LONGLONG>(c.proc.executed_instructions);
//QueryPerformanceCounter(&value);
if (c.win_emu.time_is_relative())
{
value.QuadPart = static_cast<LONGLONG>(c.proc.executed_instructions);
}
else
{
value.QuadPart = std::chrono::steady_clock::now().time_since_epoch().count();
}
});
}
if (performance_frequency)
{
performance_frequency.access([](LARGE_INTEGER& value)
int64_t frequency{};
c.proc.kusd.access([&](const KUSER_SHARED_DATA& kusd)
{
value.QuadPart = 10000;
//QueryPerformanceFrequency(&value);
frequency = kusd.QpcFrequency;
});
performance_frequency.access([&](LARGE_INTEGER& value)
{
value.QuadPart = frequency;
});
}