From 366bbbf672e2c548a5422c3edeea3c84b8b808ed Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 21 Apr 2026 16:55:33 +0000 Subject: [PATCH 1/2] fixup nce --- src/common/wall_clock.cpp | 10 ++++++---- src/core/arm/nce/patcher.cpp | 8 ++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/common/wall_clock.cpp b/src/common/wall_clock.cpp index d435375267..e81c8ba5e3 100644 --- a/src/common/wall_clock.cpp +++ b/src/common/wall_clock.cpp @@ -136,10 +136,12 @@ s64 WallClock::GetGPUTick() const { s64 WallClock::GetUptime() const { s64 cntvct_el0 = 0; - asm volatile("dsb ish\n\t" - "mrs %[cntvct_el0], cntvct_el0\n\t" - "dsb ish\n\t" - : [cntvct_el0] "=r"(cntvct_el0)); + asm volatile( + "dsb ish\n\t" + "mrs %[cntvct_el0], cntvct_el0\n\t" + "dsb ish\n\t" + : [cntvct_el0] "=r"(cntvct_el0) + ); return cntvct_el0; } diff --git a/src/core/arm/nce/patcher.cpp b/src/core/arm/nce/patcher.cpp index 37b0688da6..bf72b207b9 100644 --- a/src/core/arm/nce/patcher.cpp +++ b/src/core/arm/nce/patcher.cpp @@ -3,7 +3,7 @@ #include #include -#include "common/arm64/native_clock.h" +#include "common/wall_clock.h" #include "common/alignment.h" #include "common/literals.h" #include "core/arm/nce/arm_nce.h" @@ -578,7 +578,11 @@ void Patcher::WriteMsrHandler(ModuleDestLabel module_dest, oaknut::XReg src_reg, } void Patcher::WriteCntpctHandler(ModuleDestLabel module_dest, oaknut::XReg dest_reg, oaknut::VectorCodeGenerator& cg) { - static Common::WallClock clock{}; +#if defined(HAS_NCE) + static Common::WallClock clock(false, 1); +#else + static Common::WallClock clock(true, 1); +#endif const auto factor = clock.GetGuestCNTFRQFactor(); const auto raw_factor = std::bit_cast>(factor); From 43ba8b2943316d4cd5c3c86f7f59fc5c6eede2ea Mon Sep 17 00:00:00 2001 From: lizzie Date: Tue, 21 Apr 2026 17:19:50 +0000 Subject: [PATCH 2/2] fuck android --- src/common/wall_clock.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/common/wall_clock.cpp b/src/common/wall_clock.cpp index e81c8ba5e3..fd5c31db0f 100644 --- a/src/common/wall_clock.cpp +++ b/src/common/wall_clock.cpp @@ -8,6 +8,9 @@ #include "common/uint128.h" #include "common/wall_clock.h" +#ifdef __ANDROID__ +#include +#endif #ifdef ARCHITECTURE_x86_64 #include "common/x64/cpu_detect.h" #include "common/x64/rdtsc.h"