diff --git a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp index d35b02d9..f744d349 100644 --- a/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp +++ b/Source/Atmosphere/stratosphere/loader/source/oc/customize.cpp @@ -37,7 +37,7 @@ volatile CustomizeTable C = { .commonCpuBoostClock = 1785000, // Default boost clock -.commonEmcMemVolt = 1125000, // LPDDR4X JEDEC Specification +.commonEmcMemVolt = 1175000, // LPDDR4X JEDEC Specification .eristaCpuMaxVolt = 1235, @@ -45,13 +45,13 @@ volatile CustomizeTable C = { .marikoCpuMaxVolt = 1120, -.marikoEmcMaxClock = 3000000, // Hynix NME and Samsung AM-MGCJ Rating (others are 4766MT, 2133MHz) +.marikoEmcMaxClock = 2700000, // Hynix NME and Samsung AM-MGCJ Rating (others are 4766MT, 2133MHz) .marikoEmcVddqVolt = 640000, .marikoCpuUV = 0, // No undervolt -.marikoGpuUV = 3, +.marikoGpuUV = 2, .eristaCpuUV = 0, @@ -64,21 +64,21 @@ volatile CustomizeTable C = { // Defaults - Zeroed // Primary -.t1_tRCD = 0, -.t2_tRP = 0, -.t3_tRAS = 0, +.t1_tRCD = 4, +.t2_tRP = 3, +.t3_tRAS = 8, // Secondary -.t4_tRRD = 0, -.t5_tRFC = 0, -.t6_tRTW = 0, -.t7_tWTR = 0, -.t8_tREFI= 0, +.t4_tRRD = 2, +.t5_tRFC = 5, +.t6_tRTW = 4, +.t7_tWTR = 4, +.t8_tREFI= 6, // .mem_burst_latency = 0, // 0 - 1600l, 1 = 1866bl, 2 = 2133bl /* TODO: Remove/fix. */ -.marikoCpuHighVmin = 750, +.marikoCpuHighVmin = 800, -.marikoCpuLowVmin = 600, +.marikoCpuLowVmin = 650, .eristaGpuVmin = 810, @@ -99,18 +99,18 @@ volatile CustomizeTable C = { 610 /* 614 */, 610 /* 691 */, 610 /* 768 */, - 620 /* 844 */, - 640 /* 921 */, - 675 /* 998 */, - 710 /* 1075 */, - 735 /* 1152 */, - 785 /* 1228 */, - 785 /* 1267 (Disabled by default) */, - 960 /* 1305 (Disabled by default) */, - 960 /* 1344 (Disabled by default) */, - 960 /* 1382 (Disabled by default) */, - 960 /* 1420 (Disabled by default) */, - 960 /* 1459 (Disabled by default) */, + 610 /* 844 */, + 625 /* 921 */, + 655 /* 998 */, + 685 /* 1075 */, + 725 /* 1152 */, + 750 /* 1228 */, + 765 /* 1267 (Disabled by default) */, + 790 /* 1305 (Disabled by default) */, + 0 /* 1344 (Disabled by default) */, + 0 /* 1382 (Disabled by default) */, + 0 /* 1420 (Disabled by default) */, + 0 /* 1459 (Disabled by default) */, 0 /* 1497 (Disabled by default) */, 0 /* 1536 (Disabled by default) */, diff --git a/Source/Configurator/src/cpu.py b/Source/Configurator/src/cpu.py index 94263fb0..16d68877 100644 --- a/Source/Configurator/src/cpu.py +++ b/Source/Configurator/src/cpu.py @@ -74,11 +74,17 @@ def populate(): dpg.add_combo( items=vmin_processed_voltages, default_value="Default (600mV)", - label="CPU vMin (Mariko)", - tag="marikoCpuVmin", + label="CPU High vMin (Mariko)", + tag="marikoCpuHighVmin", + callback=k.grab_kip_storage_values_no_mult + ) + dpg.add_combo( + items=vmin_processed_voltages, + default_value="Default (800mV)", + label="CPU Low vMin (Mariko)", + tag="marikoCpuLowVmin", callback=k.grab_kip_storage_values_no_mult ) - dpg.add_combo( items=processed_voltages, default_value="Disabled", diff --git a/Source/Configurator/src/ram.py b/Source/Configurator/src/ram.py index 174fa780..137818fc 100644 --- a/Source/Configurator/src/ram.py +++ b/Source/Configurator/src/ram.py @@ -50,6 +50,23 @@ def populate(): dpg.add_button(label="Apply Tight Preset", callback=preset.apply_st_timings) dpg.add_button(label="Load Default Preset", callback=preset.load_defaults) + dpg.add_combo( + items=["0", "1"], + default_value="0", + label="MTC Configuraton", + tag="mtcConf", + callback=k.grab_kip_storage_values + ) + + + dpg.add_combo( + items=["0", "1"], + default_value="0", + label="HP Mode", + tag="hpMode", + callback=k.grab_kip_storage_values + ) + dpg.add_separator(label="Frequencies (Mariko)") dpg.add_text("Multiple Ram Frequencies on Mariko is in development") dpg.add_combo( @@ -114,7 +131,7 @@ def populate(): dpg.add_combo( items=["0 (1600bl)", "2 (1866bl)", "4 (2133bl)"], default_value="2", - label="Base Latency", + label="Base Latency (unused)", callback=k.grab_kip_storage_values_no_mult, tag="mem_burst_latency" ) diff --git a/Source/Configurator/src/settings.py b/Source/Configurator/src/settings.py index 3f48b8b9..3fbeb8fe 100644 --- a/Source/Configurator/src/settings.py +++ b/Source/Configurator/src/settings.py @@ -18,8 +18,8 @@ freqs_khz = [ 1459200, 1497600, 1536000 ] freqs_khz_e = [ - 76800, 153600, 230400, 307200, 384000, 460800, 537600, 614400, 691200, 768000, - 844800, 921600, 998400, 1075200 #, 1152000, 1228800 # Disabled by default as these freqs can cause board damage + 76800, 115200, 153600, 192000, 230400, 268800, 307200, 345600, 384000, 422400, 460800, 499200, 537600, + 576000,614400, 652800,691200,729600, 768000,806400, 844800,883200, 921600,960000, 998400,1036800, 1075200# , ] freqs_mhz = [ @@ -84,7 +84,8 @@ variables = [ ("t7_tWTR", "u32"), ("t8_tREFI", "u32"), ("mem_burst_latency", "u32"), - ("marikoCpuVmin", "u32"), + ("marikoCpuHighVmin", "u32"), + ("marikoCpuLowVmin", "u32"), ("eristaGpuVmin", "u32"), ("marikoGpuVmin", "u32"), ("marikoGpuVmax", "u32"), @@ -115,18 +116,31 @@ variables = [ ("g_volt_e_76800", "u32"), + ("g_volt_e_115200", "u32"), ("g_volt_e_153600", "u32"), + ("g_volt_e_192000", "u32"), ("g_volt_e_230400", "u32"), + ("g_volt_e_268800", "u32"), ("g_volt_e_307200", "u32"), + ("g_volt_e_345600", "u32"), ("g_volt_e_384000", "u32"), + ("g_volt_e_422400", "u32"), ("g_volt_e_460800", "u32"), + ("g_volt_e_499200", "u32"), ("g_volt_e_537600", "u32"), + ("g_volt_e_576000", "u32"), ("g_volt_e_614400", "u32"), + ("g_volt_e_652800", "u32"), ("g_volt_e_691200", "u32"), + ("g_volt_e_729600", "u32"), ("g_volt_e_768000", "u32"), + ("g_volt_e_806400", "u32"), ("g_volt_e_844800", "u32"), + ("g_volt_e_883200", "u32"), ("g_volt_e_921600", "u32"), + ("g_volt_e_960000", "u32"), ("g_volt_e_998400", "u32"), + ("g_volt_e_1036800", "u32"), ("g_volt_e_1075200", "u32"), # ("g_volt_e_1152000", "u32"), # ("g_volt_e_1228800", "u32"), @@ -142,6 +156,7 @@ fmt_map = { def load_all_vars(): c.load_entry_object("custRev", 0) c.load_entry_object("mtcConf", 0) + c.load_entry_object("hpMode", 0) c.load_entry_object("commonCpuBoostClock", 1) c.load_entry_object("commonEmcMemVolt", 2) c.load_entry_object("eristaCpuMaxVolt", 3) @@ -166,7 +181,8 @@ def load_all_vars(): c.load_entry_object("t7_tWTR", 5) c.load_entry_object("t8_tREFI", 5) c.load_entry_object("mem_burst_latency", 5) - c.load_entry_object("marikoCpuVmin", 3) + c.load_entry_object("marikoCpuHighVmin", 3) + c.load_entry_object("marikoCpuLowVmin", 3) c.load_entry_object("eristaGpuVmin", 3) c.load_entry_object("marikoGpuVmin", 3) c.load_entry_object("marikoGpuVmax", 3) @@ -180,8 +196,8 @@ def load_all_vars(): c.load_entry_object(f"g_volt_{freq}", 3) for e_freq in [ - "76800", "153600", "230400", "307200", "384000", "460800", "537600", - "614400", "691200", "768000", "844800", "921600", "998400", "1075200"# , + "76800", "115200", "153600", "192000", "230400", "268800", "307200", "345600", "384000", "422400", "460800", "499200", "537600", + "576000","614400", "652800","691200","729600", "768000","806400", "844800","883200", "921600","960000", "998400","1036800", "1075200"# , # "1152000", "1228800" ]: c.load_entry_object(f"g_volt_e_{e_freq}", 3) diff --git a/Source/sys-clk/common/include/sysclk/ipc.h b/Source/sys-clk/common/include/sysclk/ipc.h index 260f2b87..6d97b7ed 100644 --- a/Source/sys-clk/common/include/sysclk/ipc.h +++ b/Source/sys-clk/common/include/sysclk/ipc.h @@ -32,7 +32,7 @@ #include "clock_manager.h" #define SYSCLK_IPC_API_VERSION 4 -#define SYSCLK_IPC_SERVICE_NAME "horizon:oc" +#define SYSCLK_IPC_SERVICE_NAME "hoc:sys" enum SysClkIpcCmd { diff --git a/Source/sys-clk/sysmodule/perms.json b/Source/sys-clk/sysmodule/perms.json index 67ca8fe3..e8959caa 100644 --- a/Source/sys-clk/sysmodule/perms.json +++ b/Source/sys-clk/sysmodule/perms.json @@ -1,5 +1,5 @@ { - "name": "horizon:oc", + "name": "hoc:sys", "title_id": "0x00FF0000636C6BFF", "title_id_range_min": "0x00FF0000636C6BFF", "title_id_range_max": "0x00FF0000636C6BFF", @@ -18,7 +18,7 @@ "*" ], "service_host": [ - "horizon:oc" + "hoc:sys" ], "kernel_capabilities": [ { diff --git a/dist/README.md b/dist/README.md index 116ce457..32beca37 100644 --- a/dist/README.md +++ b/dist/README.md @@ -24,7 +24,7 @@ --- -## 🌀 About +## About **Horizon OC** is an open-source overclocking tool for Nintendo Switch consoles running **Atmosphere custom firmware**. It enables advanced CPU, GPU, and RAM tuning with user-friendly configuration tools. @@ -40,8 +40,8 @@ It enables advanced CPU, GPU, and RAM tuning with user-friendly configuration to * Built-in configurator * Compatible with most homebrew -> ⚡ *Higher (potentially dangerous) frequencies are unlockable.* -> ⚙️ *Exact maximum values vary per console.* +> *Higher (potentially dangerous) frequencies are unlockable.* +> *Exact maximum values vary per console.* --- diff --git a/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp b/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp index 3d82cdae..2c378849 100644 Binary files a/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp and b/dist/atmosphere/contents/00FF0000636C6BFF/exefs.nsp differ diff --git a/dist/atmosphere/contents/00FF0000636C6BFF/toolbox.json b/dist/atmosphere/contents/00FF0000636C6BFF/toolbox.json index 83ac964c..4874c6c7 100644 --- a/dist/atmosphere/contents/00FF0000636C6BFF/toolbox.json +++ b/dist/atmosphere/contents/00FF0000636C6BFF/toolbox.json @@ -1,5 +1,5 @@ { - "name" : "hoc-clk", + "name" : "Horizon OC", "tid" : "00FF0000636C6BFF", "requires_reboot": false } \ No newline at end of file diff --git a/dist/atmosphere/kips/hoc.kip b/dist/atmosphere/kips/hoc.kip index 068a23e9..ae5767dd 100644 Binary files a/dist/atmosphere/kips/hoc.kip and b/dist/atmosphere/kips/hoc.kip differ