diff --git a/Source/sys-clk/common/include/sysclk/clock_manager.h b/Source/sys-clk/common/include/sysclk/clock_manager.h index bf27d993..7c94e948 100644 --- a/Source/sys-clk/common/include/sysclk/clock_manager.h +++ b/Source/sys-clk/common/include/sysclk/clock_manager.h @@ -43,6 +43,9 @@ typedef struct uint32_t PartLoad[SysClkPartLoad_EnumMax]; uint32_t voltages[HocClkVoltage_EnumMax]; uint32_t perfConfId; + u8 fps; + u8 lcdFreq; + u8 fanLevel; } SysClkContext; typedef struct @@ -54,7 +57,5 @@ typedef struct } SysClkTitleProfileList; #define SYSCLK_FREQ_LIST_MAX 32 -#define SYSCLK_GPU_BOOST_HZ 76800000 -#define SYSCLK_CPU_BOOST_HZ 1785000000 #define GLOBAL_PROFILE_ID 0xA111111111111111 \ No newline at end of file diff --git a/Source/sys-clk/common/include/sysclk/config.h b/Source/sys-clk/common/include/sysclk/config.h index 82f55dfc..52bf28cf 100644 --- a/Source/sys-clk/common/include/sysclk/config.h +++ b/Source/sys-clk/common/include/sysclk/config.h @@ -189,14 +189,14 @@ static inline const char* sysclkFormatConfigValue(SysClkConfigValue val, bool pr return pretty ? "Overwrite Boost Mode" : "ow_boost"; case HocClkConfigValue_EristaMaxCpuClock: - return pretty ? "Erista Max CPU Clock" : "cpu_max_e"; + return pretty ? "Max CPU Clock" : "cpu_max_e"; case HocClkConfigValue_EristaMaxGpuClock: - return pretty ? "Erista Max GPU Clock" : "gpu_max_e"; + return pretty ? "Max GPU Clock" : "gpu_max_e"; case HocClkConfigValue_EristaMaxMemClock: return pretty ? "Erista Max MEM Clock" : "mem_max_e"; case HocClkConfigValue_MarikoMaxCpuClock: - return pretty ? "Mariko Max CPU Clock" : "cpu_max_m"; + return pretty ? "CPU Max Display Clock" : "cpu_max_m"; case HocClkConfigValue_MarikoMaxGpuClock: return pretty ? "Mariko Max GPU Clock" : "gpu_max_m"; case HocClkConfigValue_MarikoMaxMemClock: diff --git a/Source/sys-clk/overlay/src/ui/gui/base_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/base_gui.cpp index 17a3c7ce..f2a7e1f4 100644 --- a/Source/sys-clk/overlay/src/ui/gui/base_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/base_gui.cpp @@ -126,16 +126,14 @@ static s32 drawDynamicUltraText( tsl::Color color(r, g, b, 15); // --------------------------------------------- - // Vertical Water Wobble + // Static Position (no vertical wobble) // --------------------------------------------- - s32 wobbleY = y + sin(phase) * 3; - std::string ls(1, letter); if (useNotificationMethod) - currentX += renderer->drawNotificationString(ls, false, currentX, wobbleY, fontSize, color).first; + currentX += renderer->drawNotificationString(ls, false, currentX, y, fontSize, color).first; else - currentX += renderer->drawString(ls, false, currentX, wobbleY, fontSize, color).first; + currentX += renderer->drawString(ls, false, currentX, y, fontSize, color).first; } return currentX; @@ -172,4 +170,4 @@ tsl::elm::Element* BaseGui::createUI() void BaseGui::update() { this->refresh(); -} +} \ No newline at end of file diff --git a/Source/sys-clk/overlay/src/ui/gui/base_menu_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/base_menu_gui.cpp index 5e5f24d5..5fd0b421 100644 --- a/Source/sys-clk/overlay/src/ui/gui/base_menu_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/base_menu_gui.cpp @@ -55,8 +55,8 @@ void BaseMenuGui::preDraw(tsl::gfx::Renderer* renderer) { if(!this->context) [[unlikely]] return; // All constants pre-calculated and cached - static constexpr const char* const labels[10] = { - "App ID", "Profile", "CPU", "GPU", "MEM", "SoC", "Board", "Skin", "Now", "Avg" + static constexpr const char* const labels[11] = { + "App ID", "Profile", "CPU", "GPU", "MEM", "SoC", "Board", "Skin", "Now", "Avg", "Fan" }; static constexpr u32 dataPositions[6] = {63-3+3, 200-1, 344-1-3, 200-1, 342-1, 321-1}; @@ -144,6 +144,13 @@ void BaseMenuGui::preDraw(tsl::gfx::Renderer* renderer) { renderer->drawString(displayStrings[15], false, dataPositions[3], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // Power now renderer->drawString(displayStrings[16], false, dataPositions[4], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // Power avg + + y+=20; + + renderer->drawString(labels[10], false, positions[5], y, SMALL_TEXT_SIZE, tsl::sectionTextColor); + + renderer->drawString(displayStrings[19], false, dataPositions[0], y, SMALL_TEXT_SIZE, tsl::infoTextColor); // Power now + } // Optimized refresh - now does all the string formatting once per second @@ -233,6 +240,7 @@ void BaseMenuGui::refresh() sprintf(displayStrings[17], "%u%%", context->PartLoad[HocClkPartLoad_GPU] / 10); sprintf(displayStrings[18], "%u%%", context->PartLoad[SysClkPartLoad_EMC] / 10); + sprintf(displayStrings[19], "%hhu%%", context->fanLevel); } diff --git a/Source/sys-clk/overlay/src/ui/gui/freq_choice_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/freq_choice_gui.cpp index c2ca5f48..3f1afcec 100644 --- a/Source/sys-clk/overlay/src/ui/gui/freq_choice_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/freq_choice_gui.cpp @@ -124,9 +124,9 @@ void FreqChoiceGui::listUI() this->configList->values[HocClkConfigValue_MarikoMaxCpuClock] < mhz) continue; - if (moduleName == "gpu" && - this->configList->values[HocClkConfigValue_MarikoMaxGpuClock] < mhz) - continue; + // if (moduleName == "gpu" && + // this->configList->values[HocClkConfigValue_MarikoMaxGpuClock] < mhz) + // continue; // if (moduleName == "mem" && // this->configList->values[HocClkConfigValue_MarikoMaxMemClock] < mhz) diff --git a/Source/sys-clk/overlay/src/ui/gui/main_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/main_gui.cpp index d8c29923..3a10026d 100644 --- a/Source/sys-clk/overlay/src/ui/gui/main_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/main_gui.cpp @@ -34,17 +34,17 @@ void MainGui::listUI() { - this->enabledToggle = new tsl::elm::ToggleListItem("Enable", false); - enabledToggle->setStateChangedListener([this](bool state) { - Result rc = sysclkIpcSetEnabled(state); - if(R_FAILED(rc)) - { - FatalGui::openWithResultCode("sysclkIpcSetEnabled", rc); - } + // this->enabledToggle = new tsl::elm::ToggleListItem("Enable", false); + // enabledToggle->setStateChangedListener([this](bool state) { + // Result rc = sysclkIpcSetEnabled(state); + // if(R_FAILED(rc)) + // { + // FatalGui::openWithResultCode("sysclkIpcSetEnabled", rc); + // } - this->lastContextUpdate = armGetSystemTick(); - this->context->enabled = state; - }); + // this->lastContextUpdate = armGetSystemTick(); + // this->context->enabled = state; + // }); // this->listElement->addItem(this->enabledToggle); tsl::elm::ListItem* appProfileItem = new tsl::elm::ListItem("Edit App Profile"); @@ -59,7 +59,6 @@ void MainGui::listUI() }); this->listElement->addItem(appProfileItem); - this->listElement->addItem(new tsl::elm::CategoryHeader("Advanced")); tsl::elm::ListItem* globalProfileItem = new tsl::elm::ListItem("Edit Global Profile"); globalProfileItem->setClickListener([this](u64 keys) { diff --git a/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp b/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp index 69db36ac..b9a544e6 100644 --- a/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp +++ b/Source/sys-clk/overlay/src/ui/gui/misc_gui.cpp @@ -223,21 +223,41 @@ void MiscGui::listUI() ValueThresholds thresholdsDisabled(0, 0); std::vector noNamedValues = {}; - this->listElement->addItem(new tsl::elm::CategoryHeader("Settings")); + std::map cpu_freq_label_m = { + {612000000, "Sleep Mode"}, + {1020000000, "Stock"}, + {1224000000, "Dev OC"}, + {1785000000, "Boost Mode"}, + {1963000000, "Safe Max"}, + {2397000000, "Unsafe Max"}, + {2805000000, "Absolute Max"}, + }; + + std::map cpu_freq_label_e = { + {612000000, "Sleep Mode"}, + {1020000000, "Stock"}, + {1224000000, "Dev OC"}, + {1785000000, "Boost Mode & Safe Max"}, + {2091000000, "Unsafe Max"}, + {2295000000, "Absolute Max"}, + }; + + // ========== MISC CATEGORY (TOP) ========== + this->listElement->addItem(new tsl::elm::CategoryHeader("Misc Settings")); + addConfigToggle(HocClkConfigValue_UncappedClocks, nullptr); addConfigToggle(HocClkConfigValue_OverwriteBoostMode, nullptr); - - addConfigToggle(HocClkConfigValue_HandheldGovernor, nullptr); - - this->listElement->addItem(new tsl::elm::CategoryHeader("Experimental")); + addConfigToggle(HocClkConfigValue_KipEditing, nullptr); addConfigToggle(HocClkConfigValue_ThermalThrottle, nullptr); addConfigToggle(HocClkConfigValue_HandheldTDP, nullptr); + std::map labels_pwr_r = { {8600, "Official Rating"} }; std::map labels_pwr_l = { {6400, "Official Rating"} }; + ValueThresholds tdpThresholds(8600, 9500); addConfigButton( HocClkConfigValue_HandheldTDPLimit, @@ -267,79 +287,16 @@ void MiscGui::listUI() &throttleThresholds ); - - std::map cpu_freq_label_m = { - {612000000, "Sleep Mode"}, - {1020000000, "Stock"}, - {1224000000, "Dev OC"}, - {1785000000, "Boost Mode"}, - {1963000000, "Safe Max"}, - {2397000000, "Unsafe Max"}, - {2805000000, "Absolute Max"}, - }; - - std::map cpu_freq_label_e = { - {612000000, "Sleep Mode"}, - {1020000000, "Stock"}, - {1224000000, "Dev OC"}, - {1785000000, "Boost Mode & Safe Max"}, - {2091000000, "Unsafe Max"}, - {2295000000, "Absolute Max"}, - }; - - std::map gpu_freq_label_e = { - {76800000, "Boost Mode"}, - {307200000, "Handheld"}, - {384000000, "Handheld"}, - {460800000, "Handheld Safe Max"}, - {768000000, "Docked"}, - {844000000, "Safe Max"}, - {998400000, "Unsafe Max"}, - {1075200000, "Absolute Max"}, - }; - - std::map gpu_freq_label_m = { - {76800000, "Boost Mode"}, - {307200000, "Handheld"}, - {384000000, "Handheld"}, - {460800000, "Handheld"}, - {614400000, "Handheld Safe Max"}, - {768000000, "Docked"}, - {1075200000, "Safe Max"}, - {1305600000, "Unsafe Max"}, - {1536000000, "Absolute Max"}, - }; - - std::map emc_freq_label_e = { - {133120000, "Handheld"}, - {160000000, "Docked & Safe Max"}, - {213100000, "JEDEC Max"}, - {236000000, "Absolute Max"}, - }; - - - std::map emc_freq_label_m = { - {133120000, "Handheld"}, - {160000000, "Docked"}, - {186600000, "Safe Max (3733MT/s)"}, - {213300000, "Safe Max (4266MT/s)"}, - {320000000, "Unsafe Max"}, - {350000000, "Absolute Max"}, - }; - if(IsMariko()) { addFreqButton(HocClkConfigValue_MarikoMaxCpuClock, nullptr, SysClkModule_CPU, cpu_freq_label_m); - addFreqButton(HocClkConfigValue_MarikoMaxGpuClock, nullptr, SysClkModule_GPU, gpu_freq_label_m); - // addFreqButton(HocClkConfigValue_MarikoMaxMemClock, nullptr, SysClkModule_MEM, emc_freq_label_m); } else { addFreqButton(HocClkConfigValue_EristaMaxCpuClock, nullptr, SysClkModule_CPU, cpu_freq_label_e); - addFreqButton(HocClkConfigValue_EristaMaxGpuClock, nullptr, SysClkModule_GPU, gpu_freq_label_e); - // addFreqButton(HocClkConfigValue_EristaMaxMemClock, nullptr, SysClkModule_MEM, emc_freq_label_e); } - this->listElement->addItem(new tsl::elm::CategoryHeader("KIP Editing")); - - addConfigToggle(HocClkConfigValue_KipEditing, nullptr); + if(IsMariko()) + addFreqButton(KipConfigValue_marikoCpuBoostClock, nullptr, SysClkModule_CPU, cpu_freq_label_m); + else + addFreqButton(KipConfigValue_eristaCpuBoostClock, nullptr, SysClkModule_CPU, cpu_freq_label_e); std::vector kipNameLabels = { NamedValue("hoc.kip", 0), @@ -356,12 +313,45 @@ void MiscGui::listUI() kipNameLabels, false ); - this->listElement->addItem(new tsl::elm::CategoryHeader("KIP Settings")); - if(IsMariko()) - addFreqButton(KipConfigValue_marikoCpuBoostClock, nullptr, SysClkModule_CPU, cpu_freq_label_m); - else - addFreqButton(KipConfigValue_eristaCpuBoostClock, nullptr, SysClkModule_CPU, cpu_freq_label_e); + tsl::elm::ListItem* saveBtn = new tsl::elm::ListItem("Save KIP Settings"); + saveBtn->setClickListener([](u64 keys) { + if (keys & HidNpadButton_A) { + Result rc = hocClkIpcSetKipData(); + if (R_FAILED(rc)) { + FatalGui::openWithResultCode("hocClkIpcSetKipData", rc); + return false; + } + return true; + } + return false; + }); + this->listElement->addItem(saveBtn); + + this->listElement->addItem(new tsl::elm::CategoryHeader("RAM/Memory Settings")); + + std::map emc_freq_label_e = { + {133120000, "Handheld"}, + {160000000, "Docked & Safe Max"}, + {213100000, "JEDEC Max"}, + {236000000, "Absolute Max"}, + }; + + std::map emc_freq_label_m = { + {133120000, "Handheld"}, + {160000000, "Docked"}, + {186600000, "Safe Max (3733MT/s)"}, + {213300000, "Safe Max (4266MT/s)"}, + {320000000, "Unsafe Max"}, + {350000000, "Absolute Max"}, + }; + + // Uncomment these if you want max memory clock options + // if(IsMariko()) { + // addFreqButton(HocClkConfigValue_MarikoMaxMemClock, nullptr, SysClkModule_MEM, emc_freq_label_m); + // } else { + // addFreqButton(HocClkConfigValue_EristaMaxMemClock, nullptr, SysClkModule_MEM, emc_freq_label_e); + // } std::vector autoAdjOptions = { NamedValue("AUTO_ADJ", 0), @@ -411,10 +401,12 @@ void MiscGui::listUI() NamedValue("1766MHz", 1766000), NamedValue("1800MHz", 1800000), NamedValue("1833MHz", 1833000), + NamedValue("1862MHz", 1862400), NamedValue("1866MHz", 1866000), NamedValue("1900MHz", 1900000), NamedValue("1933MHz", 1933000), NamedValue("1966MHz", 1966000), + NamedValue("1996MHz", 1996800), NamedValue("2000MHz", 2000000), NamedValue("2033MHz", 2033000), NamedValue("2066MHz", 2066000), @@ -490,6 +482,7 @@ void MiscGui::listUI() NamedValue("2366MHz (high power draw!)", 2366000), NamedValue("2400MHz (high power draw!)", 2400000), }; + if(IsErista()) { addConfigButton( KipConfigValue_eristaEmcMaxClock, @@ -524,89 +517,15 @@ void MiscGui::listUI() ); } - addConfigButton( - KipConfigValue_t1_tRCD, - "t1 tRCD", - ValueRange(0, 8, 1, "", 1), - "tRCD", - &thresholdsDisabled, - {}, - {}, - false - ); - addConfigButton( - KipConfigValue_t2_tRP, - "t2 tRP", - ValueRange(0, 8, 1, "", 1), - "tRP", - &thresholdsDisabled, - {}, - {}, - false - ); - addConfigButton( - KipConfigValue_t3_tRAS, - "t3 tRAS", - ValueRange(0, 10, 1, "", 1), - "tRAS", - &thresholdsDisabled, - {}, - {}, - false - ); - addConfigButton( - KipConfigValue_t4_tRRD, - "t4 tRRD", - ValueRange(0, 7, 1, "", 1), - "tRRD", - &thresholdsDisabled, - {}, - {}, - false - ); - addConfigButton( - KipConfigValue_t5_tRFC, - "t5 tRFC", - ValueRange(0, 11, 1, "", 1), - "tRFC", - &thresholdsDisabled, - {}, - {}, - false - ); - - addConfigButton( - KipConfigValue_t6_tRTW, - "t6 tRTW", - ValueRange(0, 10, 1, "", 1), - "tRTW", - &thresholdsDisabled, - {}, - {}, - false - ); - - addConfigButton( - KipConfigValue_t7_tWTR, - "t7 tWTR", - ValueRange(0, 10, 1, "", 1), - "tWTR", - &thresholdsDisabled, - {}, - {}, - false - ); - - addConfigButton( - KipConfigValue_t8_tREFI, - "t8 tREFI", - ValueRange(0, 6, 1, "", 1), - "tREFI", - &thresholdsDisabled, - {}, - {}, - false - ); + // Memory Timings + addConfigButton(KipConfigValue_t1_tRCD, "t1 tRCD", ValueRange(0, 8, 1, "", 1), "tRCD", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t2_tRP, "t2 tRP", ValueRange(0, 8, 1, "", 1), "tRP", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t3_tRAS, "t3 tRAS", ValueRange(0, 10, 1, "", 1), "tRAS", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t4_tRRD, "t4 tRRD", ValueRange(0, 7, 1, "", 1), "tRRD", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t5_tRFC, "t5 tRFC", ValueRange(0, 11, 1, "", 1), "tRFC", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t6_tRTW, "t6 tRTW", ValueRange(0, 10, 1, "", 1), "tRTW", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t7_tWTR, "t7 tWTR", ValueRange(0, 10, 1, "", 1), "tWTR", &thresholdsDisabled, {}, {}, false); + addConfigButton(KipConfigValue_t8_tREFI, "t8 tREFI", ValueRange(0, 6, 1, "", 1), "tREFI", &thresholdsDisabled, {}, {}, false); std::vector rlLabels = { NamedValue("1600BL", 0), @@ -643,23 +562,10 @@ void MiscGui::listUI() ); - std::vector marikoTableConf = { - NamedValue("Auto", 0), - NamedValue("Default", 1), - NamedValue("1581MHz Tbreak", 2), - NamedValue("1683MHz Tbreak", 3), - NamedValue("Extreme UV Table", 4) - }; - std::vector gpuUvConf = { - NamedValue("No UV", 0), - NamedValue("SLT Table", 1), - NamedValue("HiOPT Table", 2), - }; + this->listElement->addItem(new tsl::elm::CategoryHeader("CPU Settings")); ValueThresholds mCpuVoltThresholds(1160, 1180); - ValueThresholds MgpuVmaxThresholds(800, 850); - ValueThresholds EgpuVmaxThresholds(950, 975); if(IsErista()) { addConfigButton( @@ -682,28 +588,15 @@ void MiscGui::listUI() {}, false ); - addConfigButton( - KipConfigValue_eristaGpuUV, - "GPU Undervolt Table", - ValueRange(0, 1, 1, "", 1), - "GPU Undervolt Table", - &thresholdsDisabled, - {}, - gpuUvConf, - false - ); - addConfigButton( - KipConfigValue_eristaGpuVmin, - "GPU VMIN", - ValueRange(700, 875, 5, "mV", 1), - "GPU VMIN", - &thresholdsDisabled, - {}, - {}, - false - ); - } else { + std::vector marikoTableConf = { + NamedValue("Auto", 0), + NamedValue("Default", 1), + NamedValue("1581MHz Tbreak", 2), + NamedValue("1683MHz Tbreak", 3), + NamedValue("Extreme UV Table", 4) + }; + addConfigButton( KipConfigValue_tableConf, "CPU UV Table", @@ -763,7 +656,72 @@ void MiscGui::listUI() maxClkOptions, false ); + } + // ========== GPU CATEGORY ========== + this->listElement->addItem(new tsl::elm::CategoryHeader("GPU Settings")); + + std::map gpu_freq_label_e = { + {76800000, "Boost Mode"}, + {307200000, "Handheld"}, + {384000000, "Handheld"}, + {460800000, "Handheld Safe Max"}, + {768000000, "Docked"}, + {844000000, "Safe Max"}, + {998400000, "Unsafe Max"}, + {1075200000, "Absolute Max"}, + }; + + std::map gpu_freq_label_m = { + {76800000, "Boost Mode"}, + {307200000, "Handheld"}, + {384000000, "Handheld"}, + {460800000, "Handheld"}, + {614400000, "Handheld Safe Max"}, + {768000000, "Docked"}, + {1075200000, "Safe Max"}, + {1305600000, "Unsafe Max"}, + {1536000000, "Absolute Max"}, + }; + + // Uncomment these if you want max GPU clock options + // if(IsMariko()) { + // addFreqButton(HocClkConfigValue_MarikoMaxGpuClock, nullptr, SysClkModule_GPU, gpu_freq_label_m); + // } else { + // addFreqButton(HocClkConfigValue_EristaMaxGpuClock, nullptr, SysClkModule_GPU, gpu_freq_label_e); + // } + + std::vector gpuUvConf = { + NamedValue("No UV", 0), + NamedValue("SLT Table", 1), + NamedValue("HiOPT Table", 2), + }; + + ValueThresholds MgpuVmaxThresholds(800, 850); + ValueThresholds EgpuVmaxThresholds(950, 975); + + if(IsErista()) { + addConfigButton( + KipConfigValue_eristaGpuUV, + "GPU Undervolt Table", + ValueRange(0, 1, 1, "", 1), + "GPU Undervolt Table", + &thresholdsDisabled, + {}, + gpuUvConf, + false + ); + addConfigButton( + KipConfigValue_eristaGpuVmin, + "GPU VMIN", + ValueRange(700, 875, 5, "mV", 1), + "GPU VMIN", + &thresholdsDisabled, + {}, + {}, + false + ); + } else { addConfigButton( KipConfigValue_marikoGpuUV, "GPU Undervolt Table", @@ -786,7 +744,6 @@ void MiscGui::listUI() false ); - addConfigButton( KipConfigValue_marikoGpuVmax, "GPU VMAX", @@ -797,7 +754,6 @@ void MiscGui::listUI() {}, false ); - } addConfigButton( @@ -814,13 +770,12 @@ void MiscGui::listUI() if(IsMariko()) addConfigToggle(KipConfigValue_marikoGpuFullUnlock, "GPU Full Unlock"); - + // GPU Custom Table this->listElement->addItem(new tsl::elm::CategoryHeader("GPU Custom Table")); std::vector mGpuVolts = { NamedValue("Disabled", 2000), NamedValue("Auto", 0), - NamedValue("480mV", 480), NamedValue("485mV", 485), NamedValue("490mV", 490), @@ -923,7 +878,6 @@ void MiscGui::listUI() std::vector eGpuVolts = { NamedValue("Disabled", 2000), NamedValue("Auto", 0), - NamedValue("700mV", 700), NamedValue("705mV", 705), NamedValue("710mV", 710), @@ -986,585 +940,65 @@ void MiscGui::listUI() NamedValue("995mV", 995), }; - if (IsMariko()) { - - addConfigButton( - KipConfigValue_g_volt_76800, - "GPU Voltage (76.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_153600, - "GPU Voltage (153.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_230400, - "GPU Voltage (230.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_307200, - "GPU Voltage (307.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_384000, - "GPU Voltage (384.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_460800, - "GPU Voltage (460.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_537600, - "GPU Voltage (537.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_614400, - "GPU Voltage (614.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_691200, - "GPU Voltage (691.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_768000, - "GPU Voltage (768.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_844800, - "GPU Voltage (844.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_921600, - "GPU Voltage (921.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_998400, - "GPU Voltage (998.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1075200, - "GPU Voltage (1075.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1152000, - "GPU Voltage (1152.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1228800, - "GPU Voltage (1228.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1267200, - "GPU Voltage (1267.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1305600, - "GPU Voltage (1305.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1344000, - "GPU Voltage (1344.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1382400, - "GPU Voltage (1382.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1420800, - "GPU Voltage (1420.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1459200, - "GPU Voltage (1459.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1497600, - "GPU Voltage (1497.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_1536000, - "GPU Voltage (1536.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &MgpuVmaxThresholds, - {}, - mGpuVolts, - false - ); - + addConfigButton(KipConfigValue_g_volt_76800, "GPU Voltage (76.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_153600, "GPU Voltage (153.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_230400, "GPU Voltage (230.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_307200, "GPU Voltage (307.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_384000, "GPU Voltage (384.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_460800, "GPU Voltage (460.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_537600, "GPU Voltage (537.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_614400, "GPU Voltage (614.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_691200, "GPU Voltage (691.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_768000, "GPU Voltage (768.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_844800, "GPU Voltage (844.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_921600, "GPU Voltage (921.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_998400, "GPU Voltage (998.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1075200, "GPU Voltage (1075.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1152000, "GPU Voltage (1152.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1228800, "GPU Voltage (1228.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1267200, "GPU Voltage (1267.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1305600, "GPU Voltage (1305.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1344000, "GPU Voltage (1344.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1382400, "GPU Voltage (1382.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1420800, "GPU Voltage (1420.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1459200, "GPU Voltage (1459.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1497600, "GPU Voltage (1497.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_1536000, "GPU Voltage (1536.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &MgpuVmaxThresholds, {}, mGpuVolts, false); } else { - - addConfigButton( - KipConfigValue_g_volt_e_76800, - "GPU Voltage (76.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_115200, - "GPU Voltage (115.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_153600, - "GPU Voltage (153.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_192000, - "GPU Voltage (192.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_230400, - "GPU Voltage (230.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_268800, - "GPU Voltage (268.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_307200, - "GPU Voltage (307.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_345600, - "GPU Voltage (345.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_384000, - "GPU Voltage (384.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_422400, - "GPU Voltage (422.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_460800, - "GPU Voltage (460.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_499200, - "GPU Voltage (499.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_537600, - "GPU Voltage (537.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_576000, - "GPU Voltage (576.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_614400, - "GPU Voltage (614.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_652800, - "GPU Voltage (652.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_691200, - "GPU Voltage (691.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_729600, - "GPU Voltage (729.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_768000, - "GPU Voltage (768.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_806400, - "GPU Voltage (806.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_844800, - "GPU Voltage (844.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_883200, - "GPU Voltage (883.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_921600, - "GPU Voltage (921.6MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_960000, - "GPU Voltage (960.0MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_998400, - "GPU Voltage (998.4MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_1036800, - "GPU Voltage (1036.8MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); - - addConfigButton( - KipConfigValue_g_volt_e_1075200, - "GPU Voltage (1075.2MHz)", - ValueRange(0, 0, 0, "0", 1), - "Voltage", - &EgpuVmaxThresholds, - {}, - eGpuVolts, - false - ); + addConfigButton(KipConfigValue_g_volt_e_76800, "GPU Voltage (76.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_115200, "GPU Voltage (115.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_153600, "GPU Voltage (153.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_192000, "GPU Voltage (192.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_230400, "GPU Voltage (230.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_268800, "GPU Voltage (268.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_307200, "GPU Voltage (307.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_345600, "GPU Voltage (345.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_384000, "GPU Voltage (384.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_422400, "GPU Voltage (422.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_460800, "GPU Voltage (460.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_499200, "GPU Voltage (499.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_537600, "GPU Voltage (537.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_576000, "GPU Voltage (576.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_614400, "GPU Voltage (614.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_652800, "GPU Voltage (652.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_691200, "GPU Voltage (691.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_729600, "GPU Voltage (729.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_768000, "GPU Voltage (768.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_806400, "GPU Voltage (806.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_844800, "GPU Voltage (844.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_883200, "GPU Voltage (883.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_921600, "GPU Voltage (921.6MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_960000, "GPU Voltage (960.0MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_998400, "GPU Voltage (998.4MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_1036800, "GPU Voltage (1036.8MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); + addConfigButton(KipConfigValue_g_volt_e_1075200, "GPU Voltage (1075.2MHz)", ValueRange(0, 0, 0, "0", 1), "Voltage", &EgpuVmaxThresholds, {}, eGpuVolts, false); } - tsl::elm::ListItem* saveBtn = new tsl::elm::ListItem("Save KIP Settings"); - saveBtn->setClickListener([](u64 keys) { - if (keys & HidNpadButton_A) { - Result rc = hocClkIpcSetKipData(); - if (R_FAILED(rc)) { - FatalGui::openWithResultCode("hocClkIpcSetKipData", rc); - return false; - } - return true; - } - return false; - }); - this->listElement->addItem(saveBtn); + + // ========== EXPERIMENTAL CATEGORY (BOTTOM) ========== + this->listElement->addItem(new tsl::elm::CategoryHeader("Experimental")); + + addConfigToggle(HocClkConfigValue_HandheldGovernor, nullptr); } diff --git a/Source/sys-clk/sysmodule/src/board.cpp b/Source/sys-clk/sysmodule/src/board.cpp index 599986f0..562cc338 100644 --- a/Source/sys-clk/sysmodule/src/board.cpp +++ b/Source/sys-clk/sysmodule/src/board.cpp @@ -49,6 +49,11 @@ Thread cpuCore0Thread; Thread cpuCore1Thread; Thread cpuCore2Thread; Thread cpuCore3Thread; +Thread MISCThread; + +FanController fanController; +Result fanCheck = 1; +u8 fanSpeed = 0; uint32_t GPU_Load_u = 0, fd = 0; @@ -169,6 +174,14 @@ void gpuLoadThread(void*) { } while(true); } +void miscThread(void*) { + float temp; + for(;;) { + fanControllerGetRotationSpeedLevel(&fanController, &temp); + fanSpeed = (u8)temp; + } +} + void Board::Initialize() { @@ -205,6 +218,15 @@ void Board::Initialize() if (R_SUCCEEDED(nvInitialize())) nvCheck = nvOpen(&fd, "/dev/nvhost-ctrl-gpu"); + rc = rgltrInitialize(); + ASSERT_RESULT_OK(rc, "rgltrInitialize"); + + if (R_SUCCEEDED(fanInitialize())) { + if (hosversionAtLeast(7,0,0)) fanCheck = fanOpenController(&fanController, 0x3D000001); + else fanCheck = fanOpenController(&fanController, 1); + } + + threadCreate(&gpuLThread, gpuLoadThread, NULL, NULL, 0x1000, 0x3F, -2); threadStart(&gpuLThread); @@ -220,8 +242,8 @@ void Board::Initialize() threadCreate(&cpuCore3Thread, CheckCore3, NULL, NULL, 0x1000, 0x10, 3); threadStart(&cpuCore3Thread); - rc = rgltrInitialize(); - ASSERT_RESULT_OK(rc, "rgltrInitialize"); + threadCreate(&MISCThread, miscThread, NULL, NULL, 0x1000, 0x3F, -2); + threadStart(&MISCThread); FetchHardwareInfos(); @@ -254,6 +276,8 @@ void Board::Exit() threadClose(&cpuCore1Thread); threadClose(&cpuCore2Thread); threadClose(&cpuCore3Thread); + threadClose(&MISCThread); + rgltrExit(); } @@ -729,3 +753,7 @@ std::uint32_t Board::GetVoltage(HocClkVoltage voltage) return out > 0 ? out : 0; } + +u8 Board::GetFanRotationLevel() { + return fanSpeed; +} diff --git a/Source/sys-clk/sysmodule/src/board.h b/Source/sys-clk/sysmodule/src/board.h index 575b9d37..f12c59a1 100644 --- a/Source/sys-clk/sysmodule/src/board.h +++ b/Source/sys-clk/sysmodule/src/board.h @@ -55,6 +55,7 @@ class Board static SysClkSocType GetSocType(); static HorizonOCConsoleType GetConsoleType(); static std::uint32_t GetVoltage(HocClkVoltage voltage); + static u8 GetFanRotationLevel(); protected: static void FetchHardwareInfos(); diff --git a/Source/sys-clk/sysmodule/src/clock_manager.cpp b/Source/sys-clk/sysmodule/src/clock_manager.cpp index 08a49899..53381069 100644 --- a/Source/sys-clk/sysmodule/src/clock_manager.cpp +++ b/Source/sys-clk/sysmodule/src/clock_manager.cpp @@ -81,7 +81,7 @@ ClockManager::ClockManager() this->rnxSync = new ReverseNXSync; if(this->config->GetConfigValue(HocClkConfigValue_KipEditing)) - this->GetKipData(); + this->GetKipData(); } ClockManager::~ClockManager() @@ -512,6 +512,8 @@ bool ClockManager::RefreshContext() FileUtils::WriteContextToCsv(this->context); } + this->context->fanLevel = Board::GetFanRotationLevel(); + return hasChanged; } @@ -632,7 +634,7 @@ void ClockManager::GetKipData() { configValues.values[KipConfigValue_marikoCpuLowVmin] = cust_get_mariko_cpu_low_vmin(&table); configValues.values[KipConfigValue_marikoCpuHighVmin] = cust_get_mariko_cpu_high_vmin(&table); configValues.values[KipConfigValue_marikoCpuMaxVolt] = cust_get_mariko_cpu_max_volt(&table); - configValues.values[KipConfigValue_marikoCpuMaxClock] = cust_get_marikoCpuMaxClock(&table) / 1000; + configValues.values[KipConfigValue_marikoGpuFullUnlock] = cust_get_marikoCpuMaxClock(&table) / 1000; configValues.values[KipConfigValue_eristaCpuBoostClock] = cust_get_erista_cpu_boost(&table) / 1000; configValues.values[KipConfigValue_marikoCpuBoostClock] = cust_get_mariko_cpu_boost(&table) / 1000;