From 610bf9ad82ad2ef4ee9bb86eae2060b0f4e99f66 Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Sat, 21 Mar 2026 10:51:03 -0400 Subject: [PATCH] sysclk: fix logic errors --- Source/sys-clk/overlay/src/ui/gui/about_gui.cpp | 9 +++++++++ Source/sys-clk/overlay/src/ui/gui/about_gui.h | 2 +- Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp | 5 ++--- .../sys-clk/overlay/src/ui/gui/global_override_gui.cpp | 7 ++++++- Source/sys-clk/sysmodule/src/clock_manager.cpp | 4 +--- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/Source/sys-clk/overlay/src/ui/gui/about_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/about_gui.cpp index 76c8c888..bb0c935a 100644 --- a/Source/sys-clk/overlay/src/ui/gui/about_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/about_gui.cpp @@ -27,6 +27,7 @@ tsl::elm::ListItem* IddqItem = NULL; tsl::elm::ListItem* DramModule = NULL; tsl::elm::ListItem* sysdockStatusItem = NULL; tsl::elm::ListItem* saltyNXStatusItem = NULL; +tsl::elm::ListItem* RETROStatusItem = NULL; ImageElement* CatImage = NULL; HideableCategoryHeader* CatHeader = NULL; @@ -67,6 +68,12 @@ void AboutGui::listUI() saltyNXStatusItem = new tsl::elm::ListItem("SaltyNX status:"); this->listElement->addItem(saltyNXStatusItem); + + if(IsHoag()) { + RETROStatusItem = + new tsl::elm::ListItem("RR Display status:"); + this->listElement->addItem(RETROStatusItem); + } this->listElement->addItem( new tsl::elm::CategoryHeader("Credits") @@ -284,4 +291,6 @@ void AboutGui::refresh() DramModule->setValue(formatRamModule()); sysdockStatusItem->setValue(this->context->isSysDockInstalled ? "Installed" : "Not Installed"); saltyNXStatusItem->setValue(this->context->isSaltyNXInstalled ? "Installed" : "Not Installed"); + if(IsHoag()) + RETROStatusItem->setValue(this->context->isUsingRetroSuper ? "Installed" : "Not Installed"); } diff --git a/Source/sys-clk/overlay/src/ui/gui/about_gui.h b/Source/sys-clk/overlay/src/ui/gui/about_gui.h index be28522e..f2fef93a 100644 --- a/Source/sys-clk/overlay/src/ui/gui/about_gui.h +++ b/Source/sys-clk/overlay/src/ui/gui/about_gui.h @@ -26,7 +26,7 @@ class AboutGui : public BaseMenuGui { protected: - char strings[32][32]; // Pre-formatted strings + char strings[32][32]; public: AboutGui(); diff --git a/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp index 6fcad35a..729fe938 100644 --- a/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/app_profile_gui.cpp @@ -296,7 +296,7 @@ public: static constexpr struct { const char* label; int shift; } kAll[] = { {"CPU", 0}, {"GPU", 8}, {"VRR", 16} }; - int count = configList.values[HorizonOCConfigValue_OverwriteRefreshRate] ? 2 : 3; + int count = configList.values[HorizonOCConfigValue_OverwriteRefreshRate] ? 3 : 2; for (int i = 0; i < count; i++) { u8 cur = (this->profileList->mhzMap[this->profile][HorizonOCModule_Governor] >> kAll[i].shift) & 0xFF; @@ -416,8 +416,7 @@ void AppProfileGui::addProfileUI(SysClkProfile profile) NamedValue("115 Hz", 115), NamedValue("120 Hz", 120) }; - if(configList.values[HorizonOCConfigValue_OverwriteRefreshRate]) - this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 50, 120, 1, " Hz", 1, 0, ValueThresholds(), dockedFreqsStandard); + this->addModuleListItemValue(profile, HorizonOCModule_Display, "Display", 50, 120, 1, " Hz", 1, 0, ValueThresholds(), dockedFreqsStandard); } } } diff --git a/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp index 949234cc..93c91493 100644 --- a/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/global_override_gui.cpp @@ -299,12 +299,17 @@ public: GovernorOverrideSubMenuGui(u32 initialPacked) : packed(initialPacked) {} void listUI() override { + Result rc = sysclkIpcGetConfigValues(&configList); // idk why this is needed, probably some refreshing issue + if (R_FAILED(rc)) [[unlikely]] { + FatalGui::openWithResultCode("sysclkIpcGetConfigValues", rc); + return; + } this->listElement->addItem(new tsl::elm::CategoryHeader("Governor")); static constexpr struct { const char* label; int shift; } kAll[] = { {"CPU", 0}, {"GPU", 8}, {"VRR", 16} }; - int count = configList.values[HorizonOCConfigValue_OverwriteRefreshRate] ? 2 : 3; + int count = configList.values[HorizonOCConfigValue_OverwriteRefreshRate] ? 3 : 2; for (int i = 0; i < count; i++) { u8 cur = (this->packed >> kAll[i].shift) & 0xFF; diff --git a/Source/sys-clk/sysmodule/src/clock_manager.cpp b/Source/sys-clk/sysmodule/src/clock_manager.cpp index b53ff046..1dc1ec44 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.cpp +++ b/Source/sys-clk/sysmodule/src/clock_manager.cpp @@ -776,11 +776,9 @@ void ClockManager::SetClocks(bool isBoost) { if(noDisp && module == HorizonOCModule_Display) continue; - if(module == HorizonOCModule_Display && this->config->GetConfigValue(HorizonOCConfigValue_OverwriteRefreshRate)) { + if(module == HorizonOCModule_Display && this->config->GetConfigValue(HorizonOCConfigValue_OverwriteRefreshRate) && !noDisp) { if(targetHz) Board::SetHz(HorizonOCModule_Display, targetHz); - else - Board::ResetToStockDisplay(); } // Skip GPU and CPU if governors handle them