From 7e4474dca52efdd313df6abb4b7d2f8acf4d37f1 Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Thu, 1 Jan 2026 19:09:15 -0500 Subject: [PATCH] sysclk: fix cpu volt bug this is the most hacky way ever to do this but hey, it works --- Source/sys-clk/sysmodule/src/clock_manager.cpp | 18 ++++++++++++++++-- Source/sys-clk/sysmodule/src/clock_manager.h | 1 + 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Source/sys-clk/sysmodule/src/clock_manager.cpp b/Source/sys-clk/sysmodule/src/clock_manager.cpp index 80731712..6291bb93 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.cpp +++ b/Source/sys-clk/sysmodule/src/clock_manager.cpp @@ -100,13 +100,27 @@ ClockManager::ClockManager() -2 ); - - threadStart(&governorTHREAD); + FixCpuBug(); this->context->speedos[HorizonOCSpeedo_CPU] = Board::getCPUSpeedo(); this->context->speedos[HorizonOCSpeedo_GPU] = Board::getGPUSpeedo(); this->context->speedos[HorizonOCSpeedo_SOC] = Board::getSOCSpeedo(); + +} + +void ClockManager::FixCpuBug() { + Board::SetHz(SysClkModule_CPU, 1785000000); // this will just set to the max when kip is unloaded so idgaf + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 1963000000); + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 2091000000); + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 2397000000); + svcSleepThread(5'000'000); + Board::SetHz(SysClkModule_CPU, 1020000000); + svcSleepThread(5'000'000); + ResetToStockClocks(); } ClockManager::~ClockManager() diff --git a/Source/sys-clk/sysmodule/src/clock_manager.h b/Source/sys-clk/sysmodule/src/clock_manager.h index ff52fe4e..da6dedec 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.h +++ b/Source/sys-clk/sysmodule/src/clock_manager.h @@ -49,6 +49,7 @@ class ClockManager ClockManager(); virtual ~ClockManager(); + void FixCpuBug(); SysClkContext GetCurrentContext(); Config* GetConfig();