2022-01-21 17:20:45 +08:00
2022-01-08 19:44:40 +08:00
2022-01-21 17:20:45 +08:00
2021-07-05 17:02:51 +08:00
2021-09-19 19:03:24 +08:00
2022-01-05 19:20:43 +08:00
2022-01-08 19:44:40 +08:00

Switch OC Suite

License: GPL v2 Join the chat at https://gitter.im/Switch-OC-Suite/community

Overclocking suite for Mariko Only Switch running on Atmosphere CFW. Support Horizon OS 13.0.0-13.2.0.

This project will not be actively maintained.

I'd appreciate if someone is willing to contribute. But if you are releasing somewhere else (with or without your own modifications), be sure you are complying with GPL v2 license and include necessary warnings for users.

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.

  • There is no dynamic frequency scaling in HorizonOS (HOS), which makes overclocking acts differently than PC or other mobile devices. The console will be sticking to what frequency you've set in the long term, until you close the game or put it into sleep.

  • Most games are bottlenecked by RAM bandwidth, ONLY ramp up RAM clock beyond official maximum (1963/1267/1600) to 1862/1996 MHz if you want to stay safe.

  • Aula (OLED model) is not tested and I don't know if it works, even they have same X1+ SoC.

Why not 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).

    • 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.
  • RAM overclock is already available online.

Features

  • CPU/GPU/RAM Overclock

    • Safe: Official Maximum (1963/1267/1600) with DRAM OC

      • CPU/GPU: 1963/1267 MHz exists in official pcv module, but is not unlocked.

      • DRAM: 2131.2 MHz @ 600 mV (stock)

        • 1862.4 / 1996.8 MHz should be stable for all (Samsung / Micron/ Hynix).
        • 2131.2 MHz might be stable for some chips.
        • Theoretically, you could replace 2x2GB DRAM chips (dual-channel) with 2x4GB DRAM chips from SAMSUNG (quad-channel) to attain doubled bandwidth.
    • Unsafe: All maxed out (NOT RECOMMENDED)

      • Why NOT RECOMMENDED?

        • See Current Flow in sys-clk-OC overlay Miscellaneous (on battery) or measure power draw from charger yourself.
      • CPU: 2397 MHz @ 1220 mV (overvolting from 1120 mV)

        • Performance depends on CPU speedo (higher speedo === lower voltage required === better silicon quality).
          • 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)

        • Tested with deko3d compute shaders converted from Maxwell SASS assembly. Single-precision floating point (FP32 FFMA) performance maxes out at 1305 MHz.
        • 1305 MHz CANNOT be set without charger connected.
      • DRAM: Overvolting

  • Modded sys-clk and ReverseNX(-RT)

    • No need to change clocks manually after toggling modes in ReverseNX (Optional)

      • To disable this feature, use original version of ReverseNX-RT and remove /config/sys-clk/ReverseNX_sync.flag.
    • Auto-Boost CPU for faster game loading (Optional)

      • Enable CPU Boost (1785 MHz) 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.
      • To disable this feature, remove /config/sys-clk/boost.flag.
    • Permanent global clock override

      • Expected usage: set maximum DRAM clocks for all games and profiles.
    • 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.
  • System Settings (Optional)

    • Cherry-pick from below and add them manually.

    • Fan Control Optimization (safe OC)

      • [tc]
      • Set holdable_tskin to 52˚C (default 48˚C).
      • Replacing stock thermal paste and adding thermal pad on Wi-Fi/BT module(shielded, adjacent to antennas) is recommended.
    • Disable background services, less heat and power consumption in standby mode

      • ;Disable Background service
      • Don't add this if you use Nintendo Online services.
    • Game recording and SysDVR streaming @ 60fps with high video bitrate (7.5Mbps)

      • [am.debug]
      • Recommended: dvr-patches: Allow screenshot/recording in any games and remove overlay image (copyright notice or logo).
        • For optimal streaming experience, SysDVR via USB interface is recommended.
      • Known Issues (won't fix)
        • Game recordings may be less than 30 seconds if higher bitrate is used.
        • It has noticeable performance impacts in demanding games.
        • Video duration shown in album will be doubled, while the playback speed or mp4 file itself are not affected.
    • Change the threshold for chargers providing enough power

      • [psm]
      • enough_power_threshold_mw is be the threshold of "Official Charger"
        • E.g. set it to 0x4268 (17,000 mW) and 18W power bank will be "Official Charger".
  • 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.

Installation

  1. Download latest release and copy all the files in SdOut to the root of SD card. system_settings.ini should be edited manually.

  2. Grab x.x.x_loader_xxxx.x.kip for your Atmosphere version and desired RAM frequency, rename it to loader.kip and place it in /atmosphere/kips/.

  3. Hekate-ipl bootloader

    • Rename the kip to loader.kip and add kip1=atmosphere/kips/loader.kip in bootloader/hekate_ipl.ini

    Atmosphere Fusee bootloader:

    • Fusee will load any kips in /atmosphere/kips/ automatically.

Build

Grab necessary patches from the repo, then compile sys-clk, ReverseNX-RT and Atmosphere loader with devkitpro.

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
Description
An open source overclocking tool for Nintendo Switch consoles running Atmosphere custom firmware
Readme GPL-2.0 139 MiB
Languages
C++ 66%
C 28.1%
NASL 2.3%
Makefile 1.8%
Shell 1.3%
Other 0.5%