Switch OC Suite
Overclocking suite for Nintendo Switch™ Horizon OS (HOS) running on Atmosphere CFW.
This project will not be actively maintained or regularly updated along with Atmosphere CFW.
DISCLAIMER: USE AT YOUR OWN RISK!
-
Overclocking in general (often combined with overvolting and overheating) will degrade internal components - SoC, VRM(Voltage Regulator Module), Battery, etc. - faster than you and the manufacturer have expected.
-
Higher RAM clocks without proper timings could be UNSTABLE and cause graphical glitches / instabilities / filesystem corruption. Always make backup before usage.
-
Why no CPU/GPU OC for Erista?
-
Tegra X1 on Erista is on TSMC 20nm HPM node, consumes much more power (~2x) and generates much more heat, compared to Tegra X1+ on Mariko (TSMC 16nm FinFET).
- Erista Switch uses lower speedo (=== lower quality === higher voltage required) SoC from NVIDIA. You will NOT get comparable performance to NVIDIA Shield TV no matter what.
- Snapdragon 810 (4 x A57 @ 2.0GHz + 4 x A53) also uses 20nm HPM, see how it plagued Android phones in 2014.
-
The board power supply is quite limited, even if you've done cooling mod.
- You could spot battery draining at higher clocks under stress test, even with official 39W PD charger.
- CPU / GPU performance at max clocks will be worse if power supply is not enough.
-
CPU OC (up to ~ 2.1 GHz, depending on your CPU bin) is available mainly for emulation, but it does NOT work out of the box.
-
Features
-
DRAM Overclock
-
Most games are bottlenecked by RAM bandwidth
-
Safe:
- Mariko: 1996.8 MHz has been tested stable for all (Samsung / Micron / Hynix), with built-in timing auto-adjustment.
- Erista: 1862.4 MHz.
-
Unsafe: higher than 1996.8 MHz or overvolting
-
Timing:
- Timing parameters could be auto-adjusted (default) or overwritten with user-provided mtc table.
- Customization: No GUI tool, requires rebuilding.
-
DRAM bus overvolting (Erista Only).
- Mariko: use this to set DRAM bus voltage.
-
-
-
TinyMemBenchNX: DRAM throughput and latency test based on tinymembench
-
MemTesterNX: A userspace utility for testing DRAM faults and stability based on memtester
- Now with multi-thread support and "stress DRAM" option, it should be able to test DRAM stability with adjusted timings.
Mariko Only
-
CPU/GPU Overclock
-
Safe: CPU/GPU @ 1785/921 MHz (HOS maximum)
- It has been proved safe without charger (not reaching battery power draw threshold)
-
Unsafe: CPU/GPU @ 2397/1305 MHz
-
Without chargers, CPU/GPU would be capped @ 1963/921 MHz or -/460 MHz (Emulator mode).
-
Without official chargers, GPU would be capped @ 1267 MHz.
-
Why NOT RECOMMENDED?
- See
Current Flowin sys-clk-OC overlayMiscellaneous(on battery) or measure power draw from charger yourself. - Currently, there are no protective measures from heavy power draw.
- See
-
CPU: 2397 MHz @ 1220 mV (overvolting from 1120 mV)
- NVIDIA Official Maximum: 1963.5 MHz
- Maximum performance depends on CPU speedo.
- You'd get somewhere between 2360 to 2390 MHz performance for real.
- This is where floating point performance maxed out.
- ≥ 2193 MHz will ENABLE OVERVOLTING.
-
GPU: 1305 MHz (no overvolting, less than official threshold 1050 mV)
- NVIDIA Official Maximum: 1267.2 MHz
Tested with deko3d compute shaders converted from Maxwell SASS assembly. Single-precision floating point (FP32 FFMA) performance maxes out at 1305 MHz.
-
-
-
Modded sys-clk and ReverseNX(-RT)
-
Permanent global clock override
- Expected usage: set maximum DRAM clocks for all games and profiles.
-
Miscellaneous
-
Auto CPU Boost: For faster game loading
- Enable CPU Boost (1785 MHz, could be configured higher) when CPU Core#3 (System Core) is stressed, especially when the game is loading assets from eMMC/SD card (I/O ops).
- Auto-Boost will be enabled only when charger is connected.
-
Sync ReverseNX Mode: No need to change clocks manually after toggling modes in ReverseNX
-
View charger & battery info, toggle charging/fast-charging(2A) in overlay
- Extend battery life expectancy by maintaining battery charge at 40% - 60% and disabling fast charging if possible.
- Known issue: Fast charging toggle will be reset in-game.
-
-
Installation
-
Download latest release.
-
Mariko Only: Copy all files in
SdOutto the root of SD card.
- Erista: Use official sys-clk instead. Only
loader.kipand some benchmark homebrew are available.
-
Grab
x.x.x_loader.kipfor your Atmosphere version, rename it toloader.kipand place it in/atmosphere/kips/. -
Customization
Defaults Mariko Erista CPU OC 2397 MHz Max Disabled CPU Boost 1785 MHz N/A CPU Volt 1220 mV Max Disabled GPU OC 1305 MHz Max N/A RAM OC 1996 MHz Max 1862 MHz Max RAM Volt N/A Disabled RAM Timing Auto-Adjusted Disabled
- Loader configurator
- Grab ldr_config.py and modify values in
cust_confdict. python ldr_config.py loader.kip -swill save your configuration in-place.
- Grab ldr_config.py and modify values in
-
Hekate-ipl bootloader
- Rename the kip to
loader.kipand addkip1=atmosphere/kips/loader.kipinbootloader/hekate_ipl.ini - Erista: Minerva module conflicts with HOS DRAM training. Recompile with frequency changed is recommeded, although you could simply remove
bootloader/sys/libsys_minerva.bso.
Atmosphere Fusee bootloader:
- Fusee will load any kips in
/atmosphere/kips/automatically.
- Rename the kip to
Build
Grab necessary patches from the repo, then compile sys-clk, ReverseNX-RT and Atmosphere loader with devkitpro.
If you are to install nro forwarders, remove R_TRY(ValidateAcidSignature(std::addressof(g_original_meta_cache.meta))); in Atmosphere/stratosphere/loader/source/ldr_meta.cpp to make them work again.
Uncompress the kip to make it work with config editor: hactool -t kip1 Atmosphere/stratosphere/loader/loader.kip --uncompress=Atmosphere/stratosphere/loader/loader.kip
Acknowledgement
- CTCaer for Hekate-ipl bootloader, RE and hardware research
- devkitPro for All-In-One homebrew toolchains
- masagrator for ReverseNX-RT and info on BatteryChargeInfoFields in psm module
- Nvidia for Tegra X1 Technical Reference Manual
- RetroNX team for sys-clk
- SciresM and Reswitched Team for the state-of-the-art Atmosphere CFW of Switch
- Switchbrew wiki for Switch in-depth info
- ZatchyCatGames for RE and original OC loader patches for Atmosphere