403 lines
18 KiB
HTML
403 lines
18 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Switch OC Suite | Overclocking suite for Horizon OS (HOS) running on Atmosphere CFW. Licensed under GPL v2.
|
|
</title>
|
|
<meta name="description"
|
|
content="Overclocking suite for Horizon OS (HOS) running on Atmosphere CFW. Licensed under GPL v2.">
|
|
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@latest/css/pico.min.css">
|
|
<style>
|
|
nav[role="tab-control"] > button {
|
|
border-radius: 0;
|
|
border-left-width: calc(var(--border-width) / 2);
|
|
border-right-width: calc(var(--border-width) / 2);
|
|
}
|
|
|
|
nav[role="tab-control"] > button:first-child {
|
|
border-top-left-radius: var(--border-radius);
|
|
border-bottom-left-radius: var(--border-radius);
|
|
border-left-width: var(--border-width);
|
|
}
|
|
|
|
nav[role="tab-control"] > button:last-child {
|
|
border-top-right-radius: var(--border-radius);
|
|
border-bottom-right-radius: var(--border-radius);
|
|
border-right-width: var(--border-width);
|
|
}
|
|
|
|
nav[role="tab-control"] > button:not(.secondary) {
|
|
pointer-events: none;
|
|
cursor: default;
|
|
}
|
|
|
|
div.cust-element {
|
|
margin: 1.5rem 0 1.5rem 0;
|
|
}
|
|
|
|
div.cust-element > blockquote {
|
|
margin-top: 0;
|
|
}
|
|
|
|
div#download_btn_grid > a {
|
|
margin: 0.5rem 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="hero">
|
|
<nav class="container-fluid"
|
|
style="position: fixed; top: 0; z-index: 99; -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);">
|
|
<ul>
|
|
<li><a href="#head" class="contrast">Switch OC Suite</a></li>
|
|
</ul>
|
|
<ul>
|
|
<li><a href="#readme" class="secondary">Read Me</a></li>
|
|
<li><a href="#download" class="secondary">Download</a></li>
|
|
<li><a href="#config" class="secondary">Config</a></li>
|
|
<li><a href="https://github.com/KazushiMe/Switch-OC-Suite" class="contrast">
|
|
<svg aria-hidden="true" focusable="false" role="img" xmlns="http://www.w3.org/2000/svg"
|
|
viewBox="0 0 496 512" height="16px">
|
|
<path fill="currentColor"
|
|
d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z">
|
|
</path>
|
|
</svg>
|
|
</a></li>
|
|
</ul>
|
|
</nav>
|
|
<header class="container" style="padding-top: 6rem;">
|
|
<hgroup>
|
|
<h1>Switch OC Suite</h1>
|
|
<h2>Overclocking suite for Horizon OS (HOS) running on Atmosphere CFW. Licensed under GPL v2.</h2>
|
|
</hgroup>
|
|
</header>
|
|
</div>
|
|
<section aria-label="Read Me" id="readme">
|
|
<div class="container">
|
|
<article>
|
|
<header>
|
|
<hgroup>
|
|
<h2>Read Me</h2>
|
|
<h3>🚨DISCLAIMER: THIS IS PROVIDED AS IS. USE AT YOUR OWN RISK!🚨</h3>
|
|
</hgroup>
|
|
<li>
|
|
Overclocking in general will shorten the lifespan of some
|
|
hardware components. <strong>YOU ARE RESPONSIBLE for any problem or
|
|
potential damage</strong> if unsafe frequencies are ENABLED in
|
|
sys-clk-OC. Issues like asking for bypassing limit will BE IGNORED OR
|
|
CLOSED WITHOUT REPLY.
|
|
</li>
|
|
<li>
|
|
Due to HorizonOS design, instabilities from unsafe RAM clocks may
|
|
cause filesystem corruption. <strong>Always make backup before enabling
|
|
DRAM OC.</strong>
|
|
</li>
|
|
</header>
|
|
|
|
<body>
|
|
<h3>Features</h3>
|
|
<details>
|
|
<summary>For Erista variant (HAC-001)</summary>
|
|
<ul>
|
|
<li>CPU Overclock (Safe: 1785 MHz)
|
|
<ul>
|
|
<li>Unsafe
|
|
<ul>
|
|
<li>Due to the limit of board power draw or power IC</li>
|
|
<li>Unlockable frequencies up to 2091 MHz</li>
|
|
<li>See <a
|
|
href="https://github.com/KazushiMe/Switch-OC-Suite/blob/master/Source/sys-clk-OC/README.md"
|
|
target="_blank">README
|
|
for sys-clk-OC</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>DRAM Overclock (Safe: 1862.4 MHz)</li>
|
|
</ul>
|
|
</details>
|
|
<details>
|
|
<summary>For Mariko variant (HAC-001-01, HDH-001, HEG-001)</summary>
|
|
<ul>
|
|
<li>CPU / GPU Overclock (Safe: 1963 / 998 MHz)
|
|
<ul>
|
|
<li>Unsafe
|
|
<ul>
|
|
<li>Due to the limit of board power draw or power IC</li>
|
|
<li>Unlockable frequencies up to 2397 / 1305 MHz or 2295 / 1267 MHz</li>
|
|
<li>See <a
|
|
href="https://github.com/KazushiMe/Switch-OC-Suite/blob/master/Source/sys-clk-OC/README.md"
|
|
target="_blank">README
|
|
for sys-clk-OC</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>DRAM Overclock (Safe: 1996.8 MHz)</li>
|
|
</ul>
|
|
</details>
|
|
<details>
|
|
<summary>Modded sys-clk and ReverseNX-RT</summary>
|
|
<ul>
|
|
<li>Auto CPU Boost
|
|
<ul>
|
|
<li>For faster game loading</li>
|
|
<li>Enable CPU Boost (1785 MHz) when CPU Core#3 (System Core) is
|
|
stressed (mainly I/O operations).</li>
|
|
<li>Effective only when charger is connected.</li>
|
|
</ul>
|
|
</li>
|
|
<li>CPU & GPU frequency governor (Experimental)
|
|
<ul>
|
|
<li>Adjust frequency based on load. Might decrease power draw but can
|
|
introduce stutters. Can be turned off for specific titles.</li>
|
|
</ul>
|
|
</li>
|
|
<li>Set charging current (100 mA - 2000 mA) and charging limit (20% -
|
|
100%)
|
|
<ul>
|
|
<li>Long-term use of charge limit may render the battery gauge
|
|
inaccurate. Performing full cycles could help recalibration, or try <a
|
|
href="https://github.com/CTCaer/battery_desync_fix_nx">battery_desync_fix_nx</a>.</li>
|
|
</ul>
|
|
</li>
|
|
<li>Global Profile
|
|
<ul>
|
|
<li>Designated a dummy title id <code>0xA111111111111111</code>.</li>
|
|
<li>Priority: "Temp overrides" > "Application profile" > "Global
|
|
profile" > "System default".</li>
|
|
</ul>
|
|
</li>
|
|
<li>Sync ReverseNX Mode
|
|
<ul>
|
|
<li>No need to change clocks manually after toggling modes in ReverseNX
|
|
(-RT and -Tool)</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</details>
|
|
<details>
|
|
<summary>System Settings (Optional)</summary>
|
|
See <a
|
|
href="https://github.com/KazushiMe/Switch-OC-Suite/blob/master/system_settings.md">system_settings.md</a>
|
|
</details>
|
|
<h3 id="installation">Installation</h3>
|
|
<ol type="1">
|
|
<li>Download latest <a href="#download">release</a>.</li>
|
|
<li>Copy all files in <code>SdOut</code> to the root of SD card.</li>
|
|
<li>Grab <code>x.x.x_loader.kip</code> for your Atmosphere version, rename it to <code>loader.kip</code> and
|
|
place it in <code>/atmosphere/kips/</code>.</li>
|
|
<li>Customization via <a href="#config">online loader configurator</a>
|
|
<details>
|
|
<summary>Default config</summary>
|
|
<table role="grid">
|
|
<thead>
|
|
<tr>
|
|
<th>Defaults</th>
|
|
<th>Mariko</th>
|
|
<th>Erista</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>CPU OC</td>
|
|
<td>2397 MHz Max</td>
|
|
<td>2091 MHz Max</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CPU Boost</td>
|
|
<td>1785 MHz</td>
|
|
<td>N/A</td>
|
|
</tr>
|
|
<tr>
|
|
<td>CPU Volt</td>
|
|
<td>1235 mV Max</td>
|
|
<td>1235 mV Max</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GPU OC</td>
|
|
<td>1305 MHz Max</td>
|
|
<td>N/A</td>
|
|
</tr>
|
|
<tr>
|
|
<td>RAM OC</td>
|
|
<td>1996 MHz Max</td>
|
|
<td>1862 MHz Max</td>
|
|
</tr>
|
|
<tr>
|
|
<td>RAM Volt</td>
|
|
<td>Disabled</td>
|
|
<td>Disabled</td>
|
|
</tr>
|
|
<tr>
|
|
<td>RAM Timing</td>
|
|
<td>Auto-Adjusted</td>
|
|
<td>Disabled</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</details>
|
|
</li>
|
|
<li>Hekate-ipl bootloader Only
|
|
<ul>
|
|
<li>Add <code>kip1=atmosphere/kips/loader.kip</code> to boot entry
|
|
section in <code>bootloader/hekate_ipl.ini</code>.</li>
|
|
</ul>
|
|
</li>
|
|
</ol>
|
|
<details>
|
|
<summary><s>Deprecated: patching sysmodules manually</s></summary>
|
|
<ul>
|
|
<li>This method is only served as reference as it could damage your MMC file system if not handled
|
|
properly.</li>
|
|
<li>Patched sysmodules would be persistent until pcv or ptm was updated in new HOS (normally in
|
|
<code>x.0.0</code>).
|
|
</li>
|
|
<li>Tools:
|
|
<ul>
|
|
<li>Lockpick_RCM</li>
|
|
<li>TegraExplorer</li>
|
|
<li><a href="https://github.com/SciresM/hactool">hactool</a></li>
|
|
<li><a href="https://github.com/shuffle2/nx2elf">nx2elf</a></li>
|
|
<li>elf2nso from <a href="https://github.com/switchbrew/switch-tools/">switch-tools</a></li>
|
|
<li><a href="https://github.com/The-4n/hacPack">hacpack</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<ol type="1">
|
|
<li>Dump <code>prod.keys</code> with Lockpick_RCM</li>
|
|
<li>Dump HOS firmware with TegraExplorer</li>
|
|
<li>Configure and run <code>test_patch.sh</code> to generate patched pcv & ptm sysmodules in nca</li>
|
|
<li>Replace nca in <code>SYSTEM:/Contents/registered/</code> with TegraExplorer</li>
|
|
<li><code>ValidateAcidSignature()</code> should be stubbed to allow unsigned sysmodules to load (a.k.a.
|
|
<code>loader_patch</code>)
|
|
</li>
|
|
</ol>
|
|
</details>
|
|
<details>
|
|
<summary>How to build this project</summary>
|
|
<ol type="1">
|
|
<li>Grab necessary patches from the repo, then compile sys-clk, ReverseNX-RT and Atmosphere loader with
|
|
devkitpro.</li>
|
|
<li>Before compiling Atmosphere loader, run <code>patch.py</code> in
|
|
<code>Atmosphere/stratosphere/loader/source/</code> to insert oc module into loader sysmodule.
|
|
</li>
|
|
<li>When compilation is done, uncompress the kip to make it work with configurator:
|
|
<code>hactool -t kip1 Atmosphere/stratosphere/loader/out/nintendo_nx_arm64_armv8a/release/loader.kip --uncompress=./loader.kip</code>
|
|
</li>
|
|
</ol>
|
|
</details>
|
|
<h3 id="faq">Frequently Asked Questions</h3>
|
|
<details>
|
|
<summary>How to enable unsafe frequencies in sys-clk-OC?</summary>
|
|
<li>Above all else, you should know <a href="#readme">what "unsafe" means and issues might arise</a>.</li>
|
|
<li>See the end of <a
|
|
href="https://github.com/KazushiMe/Switch-OC-Suite/blob/master/Source/sys-clk-OC/README.md"
|
|
target="_blank">README in sys-clk-OC</a>. Add this line <code>allow_unsafe_freq=1</code> into
|
|
<code>/config/sys-clk/config.ini</code>
|
|
</li>
|
|
</details>
|
|
<details>
|
|
<summary>I would like to bypass limit enforced in sys-clk to improve handheld performance without charger
|
|
connected.</summary>
|
|
<li>Never will it be implemented here, or work out of the box.</li>
|
|
<li>You have to modify the code yourself for your own use. If you are to share modified binaries you have
|
|
made based on this project publicly, make sure to comply with GPL v2 licenses.</li>
|
|
</details>
|
|
</body>
|
|
<footer>
|
|
<details role="list">
|
|
<summary aria-haspopup="listbox" role="button" class="secondary">
|
|
Acknowledgement
|
|
</summary>
|
|
<ul role="listbox">
|
|
<li><a href="https://github.com/CTCaer/hekate" target="_blank">CTCaer for Hekate-ipl bootloader, RE and
|
|
hardware research</a></li>
|
|
<li><a href="https://devkitpro.org/" target="_blank">devkitPro for All-In-One homebrew toolchains</a>
|
|
</li>
|
|
<li><a href="https://github.com/masagrator/ReverseNX-RT" target="_blank">masagrator for ReverseNX-RT and
|
|
info
|
|
on BatteryChargeInfoFields in psm module</a></li>
|
|
<li><a href="https://developer.nvidia.com/embedded/dlc/tegra-x1-technical-reference-manual"
|
|
target="_blank">Nvidia for Tegra X1 Technical Reference Manual</a></li>
|
|
<li><a href="https://github.com/retronx-team/sys-clk" target="_blank">RetroNX team for sys-clk</a></li>
|
|
<li><a href="https://github.com/Atmosphere-NX/Atmosphere" target="_blank">SciresM and Reswitched Team for
|
|
the
|
|
state-of-the-art Atmosphere CFW of Switch</a></li>
|
|
<li><a href="http://switchbrew.org/wiki/" target="_blank">Switchbrew wiki for Switch in-depth info</a>
|
|
</li>
|
|
<li><a href="https://gitlab.com/switchroot/kernel" target="_blank">Switchroot for their modified L4T
|
|
kernel
|
|
and device tree</a></li>
|
|
<li>ZatchyCatGames for RE and original OC loader patches for Atmosphere</li>
|
|
</ul>
|
|
</details>
|
|
</footer>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
<section aria-label="Download" id="download">
|
|
<div class="container">
|
|
<article>
|
|
<header>
|
|
<hgroup>
|
|
<h2>Download</h2>
|
|
<h3>Get latest version of Switch OC Suite and its corresponding Atmosphere package here.</h3>
|
|
</hgroup>
|
|
</header>
|
|
|
|
<body>
|
|
<div class="grid" id="download_btn_grid">
|
|
<a role="button" aria-busy="true" id="loader_kip_btn">Generating link, please wait...</a>
|
|
<a role="button" aria-busy="true" id="sdout_zip_btn">Generating link, please wait...</a>
|
|
<a target="_blank" role="button" aria-busy="true" id="ams_btn">Generating link, please wait...</a>
|
|
</div>
|
|
</body>
|
|
<footer>
|
|
See <a href="#installation">Installation section</a> for how to use Switch OC Suite.
|
|
</footer>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
<section aria-label="Config" id="config">
|
|
<div class="container">
|
|
<article>
|
|
<header>
|
|
<hgroup>
|
|
<h2>Configurator</h2>
|
|
<h3>Configure frequencies and voltages to suit your hardware and preferences.</h3>
|
|
</hgroup>
|
|
</header>
|
|
<body>
|
|
<nav role="tab-control">
|
|
<button class="" id="tab_all" data-filter="0" disabled>Show All</button>
|
|
<button class="outline secondary" id="tab_erista" data-filter="1" disabled>For Erista</button>
|
|
<button class="outline secondary" id="tab_mariko" data-filter="2" disabled>For Mariko</button>
|
|
</nav>
|
|
<form id="form">
|
|
<label for="file">
|
|
<input id="file" type="file">
|
|
<p id="cust_rev">Upload loader.kip here</p>
|
|
</label>
|
|
</form>
|
|
</body>
|
|
<footer>
|
|
<div class="grid">
|
|
<button id="load_default" role="button" disabled>Load Default</button>
|
|
<button id="load_saved" role="button" disabled>Load Last Saved</button>
|
|
<button id="save" role="button" disabled>Save</button>
|
|
</div>
|
|
</footer>
|
|
</article>
|
|
</div>
|
|
</section>
|
|
<footer class="container">
|
|
<small>Build with <a href="https://picocss.com" target="_blank">Pico</a></small>
|
|
</footer>
|
|
</body>
|
|
<script type="text/javascript" src="./main.js"></script>
|
|
|
|
</html> |