Switch OC Suite

Overclocking suite for Horizon OS (HOS) running on Atmosphere CFW. Licensed under GPL v2.

README

🚨DISCLAIMER: THIS IS PROVIDED AS IS. USE AT YOUR OWN RISK!🚨

  • Overclocking in general will shorten the lifespan of some hardware components. YOU ARE RESPONSIBLE for any problem or potential damage if unsafe frequencies are ENABLED in sys-clk-OC. Issues like asking for bypassing limit will BE IGNORED OR CLOSED WITHOUT REPLY.
  • Due to HorizonOS design, instabilities from unsafe RAM clocks may cause filesystem corruption. Always make backup before enabling DRAM OC.

Features

For Erista variant (HAC-001)
  • CPU Overclock (Safe: 1785 MHz)
    • Unsafe
      • Due to the limit of board power draw or power IC
      • Unlockable frequencies up to 2091 MHz
      • See README for sys-clk-OC
  • DRAM Overclock (Safe: 1862.4 MHz)
For Mariko variant (HAC-001-01, HDH-001, HEG-001)
  • CPU / GPU Overclock (Safe: 1963 / 998 MHz)
    • Unsafe
      • Due to the limit of board power draw or power IC
      • Unlockable frequencies up to 2295 / 1267 MHz
      • See README for sys-clk-OC
  • DRAM Overclock (Safe: 1996.8 MHz)
Modded sys-clk and ReverseNX-RT
  • Auto CPU Boost
    • For faster game loading
    • Enable CPU Boost (1785 MHz) when CPU Core#3 (System Core) is stressed (mainly I/O operations).
    • Effective only when charger is connected or governor is enabled.
    • This feature is considered unsafe on Erista, especially when combined with high GPU frequency or with governor enabled.
  • CPU & GPU frequency governor (Experimental)
    • Adjust frequency based on load. Might decrease power draw but can introduce stutters. Can be turned off for specific titles.
  • Set charging current (100 mA - 2000 mA) and charging limit (20% - 100%)
    • Long-term use of charge limit may render the battery gauge inaccurate. Performing full cycles could help recalibration, or try battery_desync_fix_nx.
  • Global Profile
    • Designated a dummy title id 0xA111111111111111.
    • Priority: "Temp overrides" > "Application profile" > "Global profile" > "System default".
  • Sync ReverseNX Mode
    • No need to change clocks manually after toggling modes in ReverseNX (-RT and -Tool)
System Settings (Optional) See system_settings.md

Installation

  1. Download latest release.
  2. Grab x.x.x_loader.kip for your Atmosphere version, rename it to loader.kip and place it in /atmosphere/kips/.
  3. (optional) You can customize via online loader configurator
    Defaults Mariko Erista
    CPU OC 2295 MHz Max 2091 MHz Max
    CPU Boost 1785 MHz N/A
    CPU Volt 1235 mV Max 1235 mV Max
    GPU OC 1267 MHz Max 998 MHz Max
    RAM OC 1996 MHz 1862 MHz
    RAM Volt Disabled Disabled
    RAM Timing Auto-Adjusted Auto-Adjusted
    CPU UV Disabled N/A
    GPU UV Disabled N/A
  4. Hekate-ipl bootloader Only (fss0) (Not required for AMS fusee)
    • At boot entry section in bootloader/hekate_ipl.ini, Add kip1=atmosphere/kips/loader.kip to any line that works.
  5. Install sys-clk-oc, or install official sys-clk (2.0.0+) instead.
  6. (optional) Copy SdOut.zip for useful utilities.
How to build this project
  1. Grab necessary patches from the repo, then compile sys-clk, ReverseNX-RT and Atmosphere loader with devkitpro.
  2. Before compiling Atmosphere loader, run patch.py in Atmosphere/stratosphere/loader/source/ to insert oc module into loader sysmodule.
  3. When compilation is done, uncompress the kip to make it work with configurator: hactool -t kip1 Atmosphere/stratosphere/loader/out/nintendo_nx_arm64_armv8a/release/loader.kip --uncompress=./loader.kip

Frequently Asked Questions

How to enable unsafe frequencies in sys-clk-OC?
I would like to bypass limit enforced in sys-clk to improve handheld performance without charger connected.
  • Bypassing clock cappings will be bad for battery.
  • See the end of README in sys-clk-OC. Place this line uncapped_clocks=1 under [values] section in /config/sys-clk/config.ini

Configurator

Configure frequencies and voltages to suit your hardware and preferences.