Optimize CPU, GPU, and RAM performance on the Nintendo Switch across Horizon OS and Linux/Android.
Quick Reference: Stable OC Starting Points
Safe (sys-clk Limits, Any Switch)
| Mode | CPU (MHz) | GPU (MHz) | RAM (MHz) | Notes |
|---|---|---|---|---|
| Docked | 1785 | 768 | 1600 | RAM is already stock docked |
| Handheld (charger) | 1785 | 768 | 1600 | Raise RAM from 1331 |
| Handheld (battery) | 1020-1428 | 460 | 1331 | Conserve battery |
Erista (V1 Switch 2017, Beyond Safe Limits)
| Profile | CPU (MHz) | GPU (MHz) | RAM (MHz) | Notes |
|---|---|---|---|---|
| Gaming 60 FPS Patches | 1785 | 844 | 1862 | Docked, charger required |
| Emulation (Linux) | 2091 | 768 | 1862 | nvpmodel -m 6 |
| Conservative Unsafe | 1785 | 921 | 1862 | Charger required |
Mariko (V2 2019 / Lite / OLED, Beyond Safe Limits)
| Profile | CPU (MHz) | GPU (MHz) | RAM (MHz) | Notes |
|---|---|---|---|---|
| Gaming 60 FPS Patches | 1963 | 998 | 1862 | Docked, charger required |
| Emulation (Linux) | 2295 | 1075 | 1996 | nvpmodel -m 6 |
| Conservative Unsafe | 2091 | 998 | 1996 | Charger required |
Switchroot Linux (Emulation)
Erista: sudo nvpmodel -m 6 | ram_oc=1862000 | dvfsb=1
Mariko: sudo nvpmodel -m 6 | ram_oc=1996000 | gpu_dvfsc=1
Beginner: Safe Overclocking with sys-clk
Everything in this section is within safe limits. Nothing here will damage your console.
What You Need
- A Switch running Atmosphere CFW
- Backed-up saves and NAND
- sys-clk installed (if your Switch was set up by So-Cal Console Modding, it’s already there)
- Tesla Menu and nx-ovlloader for the overlay to work
If sys-clk isn’t installed, download sys-clk-OC, extract to your SD card root, place loader.kip in /atmosphere/kips/, and reboot. Make sure the release matches your Atmosphere version.
Stock vs. Overclocked: What Changes
| CPU | GPU | RAM | |
|---|---|---|---|
| Stock Handheld | 1020 MHz | 307 MHz | 1331 MHz |
| Stock Docked | 1020 MHz | 768 MHz | 1600 MHz |
| sys-clk Max (Safe) | 1785 MHz | 768 MHz | 1600 MHz |
The big takeaway: In docked mode, GPU and RAM are already near their safe max. The main win is boosting CPU to 1785 MHz. In handheld, there’s much more room to improve across all three.
How to Set It Up
- Launch a game
- Press L + D-Pad Down + Right Stick Click to open Tesla overlay
- Select sys-clk or sys-clk-OC
- Enable it (Enabled = On)
- Select Edit App Profile
- Set your frequencies per mode (docked, handheld, handheld charging)
- Back out to save
The profile saves per game and applies automatically on launch. Set profiles per title rather than globally since different games have different bottlenecks.
What to Set
- CPU-heavy games (Borderlands, Dark Souls): CPU to 1785
- GPU-heavy games (Zelda, Mario): GPU is already 768 docked; boost CPU to 1785 for frame consistency
- Handheld RAM: Always set to 1600 MHz. This is the single biggest handheld improvement.
- Well-optimized games: Often don’t need OC at all
Intermediate: Pushing Beyond Safe Limits
This section goes past sys-clk’s safety caps. Overclocking beyond safe limits will reduce battery and component lifespan. Settings that work on one Switch may crash on another due to silicon lottery. If the beginner section solved your problem, stop here.
Horizon-OC: What It Is
Horizon-OC is an open-source overclocking tool for Nintendo Switch consoles running Atmosphere. Unlike older all-in-one CFW bundles, Horizon-OC is a kernel patch module (KIP) that works alongside your existing Atmosphere installation – it doesn’t replace anything. It provides CPU, GPU, and RAM tuning with over/undervolting support through a built-in overlay configurator.
Open the Ultrahand overlay, then select the Horizon OC overlay. From there you can adjust CPU, GPU, and RAM frequencies, configure over/undervolting parameters, and monitor real-time temps, frequencies, and power draw via hoc-monitor. After making changes, select Save KIP Settings to apply. Changes persist across reboots.
To install Horizon-OC:
- Download the latest Horizon-OC release
- Install Ultrahand Overlay if you don’t already have it
- Extract Horizon-OC to your SD card root
- Hekate users: Add
kip1=atmosphere/kips/hoc.kipto yourhekate_ipl.ini - Fusee users: No extra steps needed
- Back up your NAND and SD card before rebooting
Warning: Overclocking RAM can cause NAND or SD corruption. Full backups (NAND, PROINFO, emuMMC) are strongly recommended before changing any settings.
How Far Can You Push It?
| Erista Safe | Erista Max | Mariko Safe | Mariko Max | |
|---|---|---|---|---|
| CPU | 1785 MHz | ~2091 MHz | 1785 MHz | ~2397 MHz (with undervolting) |
| GPU | 768 MHz | ~921 MHz | 768 MHz | ~1075 MHz |
| RAM | 1600 MHz | ~1862 MHz | 1600 MHz | ~2133 MHz |
Above GPU 998 MHz, gains are marginal but power draw jumps significantly.
Finding Your Stable Max
Every chip is different. Here’s how to find your unit’s limits:
- Start conservative. Pick values from the quick reference table above.
- Test for 15-30 minutes in a demanding game. Korok Forest in Zelda: BotW is the community standard GPU stress test. CPU-heavy games like Borderlands or Dark Souls test CPU stability.
- Watch for problems: crashes, graphical glitches, flickering, or battery draining while plugged in.
- If stable, raise one value by 50 MHz and retest. Only change one thing at a time.
- When it crashes, back off 50 MHz. That’s your stable ceiling for that component.
- Test RAM separately using MemTestNX (homebrew). Any errors = lower your RAM frequency.
Your Hardware Matters (Speedo Bins)
In Hekate (System > Console Info > Hardware and Fuses), you can see your CPU speedo, GPU speedo, and DRAM chip brand. Higher speedo = better silicon = more OC headroom.
There’s no official reference table. Compare your numbers to what others report on GBAtemp’s Switch OC Suite thread. If your values are above average, push harder. If below average, stay conservative.
Samsung DRAM (models MGCL-AA, MGCL-AB) tends to overclock better than Hynix or Micron.
Undervolting (Less Heat, Same Speed)
Undervolting lowers the voltage at a given frequency. Less heat and power draw, same performance – if it’s stable. If voltage is too low, the system crashes (no damage, just restart).
Approach: Start at stock voltage, lower by 10 mV, test, repeat until crash, then raise 20 mV above crash point.
Horizon-OC’s overlay configurator handles undervolting directly – adjust the voltage parameters, save KIP settings, and reboot to apply. For reference values, see the Switch OC Suite documentation.
Power Budget
The charger supplies up to 18W. If your OC draws more than that, the battery drains even while plugged in. Monitor power draw in hoc-monitor. If battery percentage drops while charging, lower your clocks.
Erista hits its board power limit around 1785/768/1600 at full load. Mariko is more efficient but still tops out around 2397/1075/2133 at ~17W+.
Cooling
Only matters at aggressive OC. External dock fans help. Replacing factory thermal paste can drop temps 5-10C. Don’t enclose your dock in a cabinet.
Advanced: Linux/Android Emulation
Linux doesn’t have sys-clk’s safety guardrails. You have direct kernel-level frequency control and unstable RAM clocks can corrupt your filesystem, not just crash a game. Back up before testing.
Power Profiles (nvpmodel)
| Mode | Name | CPU | GPU | Best For |
|---|---|---|---|---|
| 0 | Console | Stock max | Stock max | General use |
| 2 | OC CPU | Max CPU | Stock GPU | N64/PS1 |
| 3 | OC GPU | Stock CPU | Max GPU | RetroArch upscaling |
| 4 | OC All | Max CPU | Max GPU | Dreamcast level emulation |
| 6 | Perf OC All | Max CPU (floor) | Max GPU (floor) | AetherSX2/Dolphin |
“Perf” profiles set a minimum frequency floor so clocks don’t drop during gameplay, reducing stutter. Use mode 6 for emulation, switch back to mode 0 when done.
sudo nvpmodel -m 6 # Perf OC All (emulation)
sudo nvpmodel -m 0 # Back to stock
RAM Overclocking in L4T
Set via ram_oc in your hekate boot entry (in kHz). Do not mix with Atmosphere boot paths.
Erista safe: 1862 MHz. Supported range: 1600-2366 MHz.
Mariko safe: 1996 MHz. Supported range: 1600-3200 MHz.
For timing-based OC, use the L4T RAM OC Configuration Generator. Start with frequency only, test with memtester and mem-bench, then add timing adjustments gradually.
DVFS Options
dvfsb=1 # CPU/GPU/core power reduction
gpu_dvfsc=1 # GPU power reduction at high freq (Mariko)
limit_gpu_clk=1 # Cap GPU at 1075 MHz for stability with gpu_dvfsc
Emulator Settings
Dolphin (GameCube/Wii): CPU-bound. Use mode 6. Dual core: Off. Shader cache: Precompiled. Resolution: 2-3x.
AetherSX2 (PS2): Install via Flatpak on Linux, or use NetherSX2 on Android. Use mode 6. Test both Vulkan and OpenGL; Nvidia’s OpenGL on Tegra is well-optimized and sometimes faster.
RetroArch: Light CPU needs. Mode 3 or 6. Resolution: 2-4x upscaling.
Troubleshooting
| Problem | Cause | Fix |
|---|---|---|
| Crash during loading | CPU voltage too low | Lower CPU freq or raise voltage |
| Crash in 3D scenes | GPU too high or overheating | Lower GPU freq; check cooling |
| Random crashes | RAM unstable | Lower RAM freq; run MemTest |
| Graphical glitches | GPU or RAM OC too aggressive | Lower GPU or RAM freq |
| Filesystem corruption (Linux) | RAM OC unstable | Reboot safe config; lower RAM |
| Battery drains while plugged in | Power draw exceeds 18W | Lower CPU and/or GPU |
Recovery (Horizon OS): Pull SD card, reset /config/sys-clk/config.ini to defaults.
Recovery (Linux): Keep a backup boot entry with stock clocks in hekate_ipl.ini.
Resources
Overclocking: sys-clk-OC | Switch OC Suite | Horizon-OC
Linux: Switchroot Wiki | L4T-Megascript | RAM OC Generator
Emulators: Dolphin | AetherSX2 (Flatpak/Linux) | NetherSX2 (Android) | RetroArch
Testing: MemTestNX (GBAtemp) | memtester, stress-ng, mem-bench (Linux) | Status Monitor Overlay (HOS)
Community: r/switchpirates | r/nxswitchmodding | GBAtemp | Switchbrew Wiki
Related Guides
- What Can You Do With a Modded Switch?
- Best MicroSD Cards for Nintendo Switch – Benchmark Tier List
- Emulation on Switch
Was this guide helpful? Consider donating to support our development of new content, software, and guides.
Support This GuideNeed a modchip installed? Place an order or learn how to ship your console.
Last Updated: April 2026 | For educational and hobby experimentation purposes