[Base] Test changing frequency to 49.875 instead of 50
Some public slides mention this is the actual frequency it runs at (slide 15: https://slideplayer.com/slide/9528088/) KeQueryPerfFrequency always returns 50MHz though.
This commit is contained in:
parent
f92f660251
commit
1b36f593c8
|
@ -119,8 +119,8 @@ X_STATUS Emulator::Setup(
|
||||||
display_window_ = display_window;
|
display_window_ = display_window;
|
||||||
|
|
||||||
// Initialize clock.
|
// Initialize clock.
|
||||||
// 360 uses a 50MHz clock.
|
// 360 uses a ~49.875MHz clock.
|
||||||
Clock::set_guest_tick_frequency(50000000);
|
Clock::set_guest_tick_frequency(49875000);
|
||||||
// We could reset this with save state data/constant value to help replays.
|
// We could reset this with save state data/constant value to help replays.
|
||||||
Clock::set_guest_system_time_base(Clock::QueryHostSystemTime());
|
Clock::set_guest_system_time_base(Clock::QueryHostSystemTime());
|
||||||
// This can be adjusted dynamically, as well.
|
// This can be adjusted dynamically, as well.
|
||||||
|
|
|
@ -283,8 +283,7 @@ void KeSetCurrentProcessType(dword_t type) {
|
||||||
DECLARE_XBOXKRNL_EXPORT1(KeSetCurrentProcessType, kThreading, kImplemented);
|
DECLARE_XBOXKRNL_EXPORT1(KeSetCurrentProcessType, kThreading, kImplemented);
|
||||||
|
|
||||||
dword_result_t KeQueryPerformanceFrequency() {
|
dword_result_t KeQueryPerformanceFrequency() {
|
||||||
uint64_t result = Clock::guest_tick_frequency();
|
return 50000000; // always returns 50MHz, even though X360 is at 49.875 or so
|
||||||
return static_cast<uint32_t>(result);
|
|
||||||
}
|
}
|
||||||
DECLARE_XBOXKRNL_EXPORT2(KeQueryPerformanceFrequency, kThreading, kImplemented,
|
DECLARE_XBOXKRNL_EXPORT2(KeQueryPerformanceFrequency, kThreading, kImplemented,
|
||||||
kHighFrequency);
|
kHighFrequency);
|
||||||
|
|
Loading…
Reference in New Issue