From b3cb87b2361bd40ddc171cbc93d52b5385ed4edb Mon Sep 17 00:00:00 2001 From: Lightos1 <124387232+Lightos1@users.noreply.github.com> Date: Wed, 3 Dec 2025 17:15:19 +0100 Subject: [PATCH] Undo bad change, prevents console from booting, fix later --- .../loader/source/oc/pcv/pcv_mariko.cpp | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp index 8e1670fa..7225093c 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp @@ -55,20 +55,27 @@ namespace ams::ldr::oc::pcv::mariko { } Result CpuVoltRange(u32 *ptr) { - if(!C.marikoCpuHighVmin && !C.marikoCpuLowVmin) - R_SKIP(); - PATCH_OFFSET((ptr - 5), C.marikoCpuHighVmin); // hf vmin - PATCH_OFFSET((ptr - 1), C.marikoCpuLowVmin); // lf vmin - R_SUCCEED(); - } + u32 min_volt_got = *(ptr - 1); + for (const auto &mv : CpuMinVolts) { + if (min_volt_got != mv) + continue; - Result CpuVmax(u32 *ptr) { - if (!C.marikoCpuMaxVolt) - R_SKIP(); + if (!C.marikoCpuMaxVolt) + R_SKIP(); - PATCH_OFFSET(ptr, C.marikoCpuMaxVolt); - - R_SUCCEED(); + PATCH_OFFSET(ptr, C.marikoCpuMaxVolt); + // Patch vmin for slt + if (C.marikoCpuUV) { + if (*(ptr - 5) == 620) { + PATCH_OFFSET((ptr - 5), C.marikoCpuLowVmin); // hf vmin + } + if (*(ptr - 1) == 620) { + PATCH_OFFSET((ptr - 1), C.marikoCpuHighVmin); // lf vmin + } + } + R_SUCCEED(); + } + R_THROW(ldr::ResultInvalidCpuMinVolt()); } Result CpuVoltDfll(u32 *ptr) { @@ -839,8 +846,7 @@ namespace ams::ldr::oc::pcv::mariko { PatcherEntry patches[] = { {"CPU Freq Vdd", &CpuFreqVdd, 1, nullptr, CpuClkOSLimit}, {"CPU Freq Table", CpuFreqCvbTable, 1, nullptr, CpuCvbDefaultMaxFreq}, - {"CPU Volt Range", &CpuVoltRange, 1, nullptr, CpuVminOfficial}, - {"CPU Volt Limit", &CpuVmax, 13, nullptr, CpuVoltOfficial}, + {"CPU Volt Range", &CpuVoltRange, 13, nullptr, CpuVminOfficial}, {"CPU Volt Dfll", &CpuVoltDfll, 1, nullptr, 0x0000FFCF}, {"GPU Freq Table", GpuFreqCvbTable, 1, nullptr, GpuCvbDefaultMaxFreq}, {"GPU Freq Asm", &GpuFreqMaxAsm, 2, &GpuMaxClockPatternFn},