sys-clk-OC
Switch sysmodule allowing you to set cpu/gpu clocks according to the running application and docked state.
Clock table (MHz)
CPU clocks
- 2397 → approx. max for Mariko
- 2295
- 2193
- 2091 → max for Mariko (without overvolting – capped at 1120 mV)
- 1963 → official max for Mariko
- 1887
- 1785 → official boost mode
- 1683
- 1581
- 1428
- 1326
- 1224 → sdev oc
- 1122
- 1020 → official docked & handheld
- 918
- 816
- 714
- 612
GPU clocks
- ????
- 1305 → OC max for Mariko
- 1267 → official max for Mariko
- 1228
- 1152
- 1075
- 998
- 921 → official max for Erista
- 844
- 768 → official docked
- 691
- 614
- 537
- 460 → max handheld
- 384 → official handheld
- 307 → official handheld
- 230
- 153
- 76 → boost mode
MEM clocks
Only 1600 and Max could be set in sys-clk-OC.
From Hekate Minerva module sys_sdrammtc.c
- ????
- 2131 → NOT stable: max for Erista and official max for Mariko
- 2099
- 2064
- 1996 → stable for all
- 1932
- 1894
- 1862 → official max for Erista; Mariko without timing adjustment
- 1795
- 1728
- 1600 → official docked & official boost mode
- 1331 → official handheld
- 1065
- 800
- 665
Capping
To protect the battery from excessive strain, clocks requested from config may be capped before applying, depending on your current profile:
| Handheld | Charging (USB) | Charging (Official) | Docked | |
|---|---|---|---|---|
| MEM | - | - | - | - |
| CPU | 1963 | - | - | - |
| GPU | 921 | 1267 | - | - |
Installation
The following instructions assumes you have a Nintendo Switch running Atmosphère, updated to at least the latest stable version.
Copy the atmosphere, and switch folders at the root of your sdcard, overwriting files if prompted. Also copy the config folder if you're not updating, to include default settings.
Note: sys-clk-overlay requires to have Tesla installed and running
Relevant files
-
Config file allows one to set custom clocks per docked state and title id, described below
/config/sys-clk/config.ini -
Log file where the logs are written if enabled
/config/sys-clk/log.txt -
Log flag file enables log writing if file exists
/config/sys-clk/log.flag -
CSV file where the title id, profile, clocks and temperatures are written if enabled
/config/sys-clk/context.csv -
sys-clk manager app (accessible from the hbmenu)
/switch/sys-clk-manager.nro -
sys-clk overlay (accessible from anywhere by invoking the Tesla menu)
/switch/.overlays/sys-clk-overlay.ovl -
sys-clk core sysmodule
/atmosphere/contents/00FF0000636C6BFF/exefs.nsp/atmosphere/contents/00FF0000636C6BFF/flags/boot2.flag
Config
Presets can be customized by adding them to the ini config file located at /config/sys-clk/config.ini, using the following template for each app
[Application Title ID]
docked_cpu=
docked_gpu=
docked_mem=
handheld_charging_cpu=
handheld_charging_gpu=
handheld_charging_mem=
handheld_charging_usb_cpu=
handheld_charging_usb_gpu=
handheld_charging_usb_mem=
handheld_charging_official_cpu=
handheld_charging_official_gpu=
handheld_charging_official_mem=
handheld_cpu=
handheld_gpu=
handheld_mem=
- Replace
Application Title IDwith the title id of the game/application you're interested in customizing. A list of games title id can be found in the Switchbrew wiki. - Frequencies are expressed in mhz, and will be scaled to the nearest possible values, described in the clock table below.
- If any key is omitted, value is empty or set to 0, it will be ignored, and stock clocks will apply.
- If charging, sys-clk will look for the frequencies in that order, picking the first found
- Charger specific config (USB or Official)
handheld_charging_usb_Xorhandheld_charging_official_X - Non specific charging config
handheld_charging_X - Handheld config
handheld_X
- Charger specific config (USB or Official)
Example 1: Zelda BOTW
- Overclock CPU when docked or charging
Leads to a smoother framerate overall (ex: in the korok forest)
[01007EF00011E000]
docked_cpu=1224
handheld_charging_cpu=1224
handheld_mem=1600
Example 2: Picross
- Underclocks on handheld to save battery
[0100BA0003EEA000]
handheld_cpu=816
handheld_gpu=153
Advanced
The [values] section allows you to alter timings in sys-clk, you should not need to edit any of these unless you know what you are doing. Possible values are:
| Key | Desc | Default |
|---|---|---|
| auto_cpu_boost | Auto-boost CPU when system Core #3 utilization is high | ON |
| sync_reversenx_mode | Sync nominal profile (mode) with ReverseNX (-Tool and -RT) | ON |
| temp_log_interval_ms | Defines how often sys-clk log temperatures, in milliseconds (0 to disable) |
0 ms |
| csv_write_interval_ms | Defines how often sys-clk writes to the CSV, in milliseconds (0 to disable) |
0 ms |
| poll_interval_ms | Defines how fast sys-clk checks and applies profiles, in milliseconds | 500 ms |