diff --git a/Source/hoc-clk/common/include/hocclk/config.h b/Source/hoc-clk/common/include/hocclk/config.h index 819fb861..b32d40ff 100644 --- a/Source/hoc-clk/common/include/hocclk/config.h +++ b/Source/hoc-clk/common/include/hocclk/config.h @@ -85,6 +85,7 @@ typedef enum { KipConfigValue_marikoEmcMaxClock, KipConfigValue_marikoEmcVddqVolt, KipConfigValue_emcDvbShift, + KipConfigValue_marikoSocVmax, KipConfigValue_t1_tRCD, KipConfigValue_t2_tRP, @@ -310,7 +311,8 @@ static inline const char* hocclkFormatConfigValue(HocClkConfigValue val, bool pr return pretty ? "Mariko EMC VDDQ Voltage" : "mariko_emc_vddq_volt"; case KipConfigValue_emcDvbShift: return pretty ? "EMC DVB Shift" : "emc_dvb_shift"; - + case KipConfigValue_marikoSocVmax: + return pretty ? "SOC Vmax" : "soc_vmax"; // Memory timings case KipConfigValue_t1_tRCD: return pretty ? "t1 - tRCD" : "t1_trcd"; @@ -566,6 +568,7 @@ static inline uint64_t hocclkValidConfigValue(HocClkConfigValue val, uint64_t in case KipConfigValue_marikoEmcMaxClock: case KipConfigValue_marikoEmcVddqVolt: case KipConfigValue_emcDvbShift: + case KipConfigValue_marikoSocVmax: case KipConfigValue_t1_tRCD: case KipConfigValue_t2_tRP: case KipConfigValue_t3_tRAS: diff --git a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp index d8d69965..15512c93 100644 --- a/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp +++ b/Source/hoc-clk/overlay/src/ui/gui/misc_gui.cpp @@ -901,8 +901,35 @@ protected: this->listElement->addItem(new tsl::elm::CategoryHeader("RAM Settings")); - addConfigTrackbar(KipConfigValue_emcDvbShift, "SoC DVB Shift", ValueRange(0, 10, 1)); + addConfigTrackbar(KipConfigValue_emcDvbShift, "SoC DVB Shift", ValueRange(0, 16, 1)); // yes, DVB 16 is nessesary + if(IsMariko()) { + std::vector marikovmaxconf = { + NamedValue("Auto", 0), + NamedValue("1000 mV", 1000), + NamedValue("1025 mV", 1025), + NamedValue("1050 mV", 1050), + NamedValue("1075 mV", 1075), + NamedValue("1100 mV", 1100), + NamedValue("1125 mV", 1125), + NamedValue("1150 mV", 1150), + NamedValue("1175 mV", 1175), + NamedValue("1200 mV", 1200), + }; + ValueThresholds marikovmaxT(1075, 1150); + addConfigButton( + KipConfigValue_marikoSocVmax, + "SoC Max Volt", + ValueRange(0, 12, 1, "", 0), + "SoC Max Volt", + &marikovmaxT, + {}, + marikovmaxconf, + false, + true + ); + } + addConfigToggle(KipConfigValue_hpMode, "HP Mode", true); std::map emc_voltage_label = { diff --git a/Source/hoc-clk/sysmodule/src/kip.cpp b/Source/hoc-clk/sysmodule/src/kip.cpp index 2b45abe9..6f4a9476 100644 --- a/Source/hoc-clk/sysmodule/src/kip.cpp +++ b/Source/hoc-clk/sysmodule/src/kip.cpp @@ -69,6 +69,7 @@ namespace kip { CUST_WRITE_FIELD_BATCH(&table, marikoEmcMaxClock, config::GetConfigValue(KipConfigValue_marikoEmcMaxClock)); CUST_WRITE_FIELD_BATCH(&table, marikoEmcVddqVolt, config::GetConfigValue(KipConfigValue_marikoEmcVddqVolt)); CUST_WRITE_FIELD_BATCH(&table, emcDvbShift, config::GetConfigValue(KipConfigValue_emcDvbShift)); + CUST_WRITE_FIELD_BATCH(&table, marikoSocVmax, config::GetConfigValue(KipConfigValue_marikoSocVmax)); CUST_WRITE_FIELD_BATCH(&table, t1_tRCD, config::GetConfigValue(KipConfigValue_t1_tRCD)); CUST_WRITE_FIELD_BATCH(&table, t2_tRP, config::GetConfigValue(KipConfigValue_t2_tRP)); @@ -208,6 +209,7 @@ namespace kip { configValues.values[KipConfigValue_marikoEmcMaxClock] = cust_get_mariko_emc_max(&table); configValues.values[KipConfigValue_marikoEmcVddqVolt] = cust_get_mariko_emc_vddq(&table); configValues.values[KipConfigValue_emcDvbShift] = cust_get_emc_dvb_shift(&table); + configValues.values[KipConfigValue_marikoSocVmax] = cust_get_marikoSocVmax(&table); configValues.values[KipConfigValue_t1_tRCD] = cust_get_tRCD(&table); configValues.values[KipConfigValue_t2_tRP] = cust_get_tRP(&table); diff --git a/Source/hoc-clk/sysmodule/src/kip.hpp b/Source/hoc-clk/sysmodule/src/kip.hpp index 8a57f2a2..8f32073b 100644 --- a/Source/hoc-clk/sysmodule/src/kip.hpp +++ b/Source/hoc-clk/sysmodule/src/kip.hpp @@ -44,6 +44,8 @@ namespace kip { u32 marikoEmcMaxClock; u32 marikoEmcVddqVolt; u32 emcDvbShift; + u32 marikoSocVmax; + // advanced config u32 t1_tRCD; u32 t2_tRP; @@ -266,6 +268,7 @@ namespace kip { static inline bool cust_set_common_gpu_offset(const char* p, u32 v) { CUST_WRITE_FIELD(p, commonGpuVoltOffset, v); } static inline bool cust_set_gpu_speedo(const char* p, u32 v) { CUST_WRITE_FIELD(p, gpuSpeedo, v); } static inline bool cust_set_marikoCpuMaxClock(const char* p, u32 v) { CUST_WRITE_FIELD(p, marikoCpuMaxClock, v); } + static inline bool cust_set_marikoSocVmax(const char* p, u32 v) { CUST_WRITE_FIELD(p, marikoSocVmax, v); } /* GPU VOLT ARRAY HELPERS */ static inline bool cust_set_erista_gpu_volt(const char* p, int idx, u32 v) { @@ -354,6 +357,7 @@ namespace kip { static inline u32 cust_get_common_gpu_offset(const CustomizeTable* t) { return CUST_GET_FIELD(t, commonGpuVoltOffset); } static inline u32 cust_get_gpu_speedo(const CustomizeTable* t) { return CUST_GET_FIELD(t, gpuSpeedo); } static inline u32 cust_get_marikoCpuMaxClock(const CustomizeTable* t) { return CUST_GET_FIELD(t, marikoCpuMaxClock); } + static inline u32 cust_get_marikoSocVmax(const CustomizeTable* t) { return CUST_GET_FIELD(t, marikoSocVmax); } static inline u32 cust_get_erista_gpu_volt(const CustomizeTable* t, int idx) { if (!t || idx < 0 || idx >= 27) return 0; diff --git a/build.sh b/build.sh index b5eeb31a..b8bd22b9 100644 --- a/build.sh +++ b/build.sh @@ -1,7 +1,7 @@ #!/bin/sh -SRC="Source/Atmosphere/stratosphere/loader/source/oc" -DEST="build/stratosphere/loader/source/oc" +SRC="Source/Atmosphere/stratosphere/loader/" +DEST="build/stratosphere/loader/" mkdir -p "dist/atmosphere/kips/" mkdir -p "$DEST" diff --git a/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp b/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp index fc3befa9..4971645c 100644 Binary files a/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp and b/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp differ diff --git a/dist/atmosphere/kips/hoc.kip b/dist/atmosphere/kips/hoc.kip index b36b01be..c3357e6d 100644 Binary files a/dist/atmosphere/kips/hoc.kip and b/dist/atmosphere/kips/hoc.kip differ diff --git a/dist/switch/.overlays/Horizon-OC-Monitor.ovl b/dist/switch/.overlays/Horizon-OC-Monitor.ovl index 08258a71..3a3a693b 100644 Binary files a/dist/switch/.overlays/Horizon-OC-Monitor.ovl and b/dist/switch/.overlays/Horizon-OC-Monitor.ovl differ diff --git a/dist/switch/.overlays/horizon-oc-overlay.ovl b/dist/switch/.overlays/horizon-oc-overlay.ovl index 3b738d1d..29632d92 100644 Binary files a/dist/switch/.overlays/horizon-oc-overlay.ovl and b/dist/switch/.overlays/horizon-oc-overlay.ovl differ