From 5264cf5ff35250ae6257b6274713cdf01265af9a Mon Sep 17 00:00:00 2001 From: hanabbi Date: Wed, 14 Jun 2023 21:11:36 +0900 Subject: [PATCH] adjust emc dvb table --- .../loader/source/oc/pcv/pcv_mariko.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 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 66de18d..b85d548 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/pcv/pcv_mariko.cpp @@ -338,14 +338,20 @@ Result MemFreqDvbTable(u32* ptr) { if (C.marikoEmcMaxClock <= EmcClkOSLimit) R_SKIP(); - if (C.marikoEmcMaxClock <= 1862400) { + if (C.marikoEmcMaxClock < 1862400) { std::memcpy(new_start, default_end, sizeof(emc_dvb_dvfs_table_t)); - } else if (C.marikoEmcMaxClock <= 2131200){ - emc_dvb_dvfs_table_t oc_table = { 2131200, { 700, 675, 650, } }; + } else if (C.marikoEmcMaxClock < 2131200){ + emc_dvb_dvfs_table_t oc_table = { 1862400, { 700, 675, 650, } }; std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t)); - } else { + } else if (C.marikoEmcMaxClock < 2400000){ + emc_dvb_dvfs_table_t oc_table = { 2131200, { 725, 700, 675, } }; + std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t)); + } else if (C.marikoEmcMaxClock < 2665600){ emc_dvb_dvfs_table_t oc_table = { 2400000, { 750, 725, 700, } }; std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t)); + } else { + emc_dvb_dvfs_table_t oc_table = { 2665600, { 775, 750, 725, } }; + std::memcpy(new_start, &oc_table, sizeof(emc_dvb_dvfs_table_t)); } new_start->freq = C.marikoEmcMaxClock;