Disclaimer
The post is barely a collection of tools (with inappropriate content stripped) for my future reference, and will NOT get updated regularly as I maintain it inside Obsidian now.
It contains content including:
- How to exploit RCM so one can run custom firmware on Switch
- How to run games one dumped from legitimate game cartridges
- How to have a super fancy quadra-boot console1
- Recommended Apps on Switchroot (Android)
- Extra tips about emulation
But it WILL NOT tell you:
- How/Where to download pirated games
- How to install unauthorized game copies on Switch
- How to weld inner circuit to make patched Switch RCM-exploitable
- How to do resource unpacking of Switch games
- How to play DOOM on all quadra-boot systems
Knowledge Base
- Glossary of common hacking terms
- Guide by r/SwitchHacks
- RCM-exploitable by SN
- RCM exploitation method
- Jig preferred
- RCM Payload Injectors
- Shorted Ports: Right joy-con pin 9-10
- FAQ by Atmosphère developer ReSwitched :Not meaningfully updated since 2019, but still relevant
- Switch System Flaws
- Games cheats
- Can you get banned for using SwitchRoot?
- SE Linux not
enforcing
on Switchroot - I’ve installed a theme or font but just have a black screen on boot?
- Created emuMMC and never went online on cfw but switch still banned.
- Difference between payload=bootloader/payloads/fusee.bin and fss0=atmosphere/package3 in hekate_ipl.ini
payload=
or thePayloads
button in Hekate will “chain-load” or load another payload without using Hekate’s launch configs. Things such asemummcforce=1
will be ignored. And atmosphere will use it’s own configsfss0=
will load a payload from Hekate with Hekate’s configs telling what settings it should use. Configs in the launch config options will be used- if you have a mixed-mode environment where you have an emuNAND and a sysNAND, you cannot use
payload=bootloader/payloads/fusee.bin
to boot into your sysNAND; it does not respect the value ofemummc_force_disable
.
Software
SDSetup is an all-in-one site for beginners to pick useful packages.
Archived now and migrate to DeepSea is recommended.
Note that it’s still outdated so you’d better just start here and move on to respective repos.
There is a Featuring list available in README.
My deprecated SDSetup bloated setup package list for personal reference:
atmosphere
hekate
tesla_menu
atmos_ovlloader
atmos_sys-clk
edizon_overlay
ovl_sysmodules
appstorenx
pplay
edizon
fakenews-injector
jksv
goldleaf
nxdumptool
nxthemesinstaller
ppsspp
mgba
pnes
psnes
pfba
fusee-primary
tegrarcmgui
ns-usbloader-linux
rekado
- Exploiter
- Windows: TegraRcmGUI (Fusée Gelée exploiter)
- Android: Rekado
- Linux: fusee-interfacee-tk
- hekate : bootloader
- Atmosphere : firmware
bootloader/payloads
- Lockpick_RCM: Dump
*.keys
- active fork (my mirror)
- original down due to DMCA
SD Card\switch\*.keys
suyu\user\keys\*.keys
ryujinx\portable\system\prod.keys
SAK_64bit\bin\*.keys
- TegraExplorer: file explorer
- Lockpick_RCM: Dump
switch
- Daybreak:offline firmware install
- Breeze Beta/ EdiZon-SE: cheat
- PPSSPP
- Switch_90DNS_tester :DNS / Hosts to Block Requests to Nintendo Servers
- melonDS :NDS Simulator
- nxdumptool : Dump Cartridge / SD Card / Stock eMMC Games
- JKSV : Save Manager
- wiliwili : BiliBili Player
- Play Time Log
- PlayEventParser
- NX-Activity-Log (not working on HOS 15.0+, use this fork)
- nxDumpMerger : Python Script to Convert
Cartridge Image (XCI)
Files - NxFileViewer
- Switch Army Knife(archived): XCI / NSP / NSZ Format Conversion
- Switch-Toolbox :Resource Unpacking
- nut (file organizer) / ns-usbloader
Overlay
- Setup Guide
- nx-ovlloader: loader service
- Tesla-Menu: first loader
- MissionControl: Use controllers from other consoles natively on Switch via Bluetooth
- sys-con: similar to MissionControl, but for wired controller. This fork works on FW 17.0.0 (N.B. many controllers only work when UNDOCKED, which renders this sysmodule a little useless IMO.)
- Modules
- ovl-sysmodules: toggle sysmodules on the fly
- sys-clk :CPU Overlocking
- EdiZon-Overlay: cheat
- emuiibo
- Fizeau: screen filter
Guides
Homebrew
- NH Switch Guide
- Making the emuMMC
Enabling AutoRCM: Enable this still requires a device to send payloads(this would cause Switch not load w/o custom bootloader)- Keeping your system up-to-date
- Changing SD cards
- Used under Atmosphère
- Atmosphère Configurations
sd:/atmosphere/config/exosphere.ini
:blank_prodinfo_emummc=1
- Blocking Nintendo servers
- Theming
- Atmosphère Configurations
Amiibo
- amiibo-compatible game
- emuiibo & emuiigen
- AmiiboAPI
Switchroot
- Switchroot Android 10/Q Setup Guide
- Tablet
- icosa-tab
- MindTheGApps : ARM64, version 10.0
- Android TV
- Custom bootanimation
- Extra Zips
- Recommended Apps to Use with Android
- Tips:
- The capture button on the Joy-con is mapped to Play/Pause media.
Sync
button on side panel is used to turn off Joy-cons as they don’t get into sleep automatically.
- Tablet
- Switchroot Android 11 Setup Guide
- Unlike Android 10/Q, Android 11 bundles Gapps by default
- Former “extra zips” section is called Tips & Tricks now
- It’s still a beta software, so there are known bugs
- Be sure to do
Factory Reset
and wipe data and system EVEN IF you don’t have previous Switchroot installation
Atmosphère (CFW)
Run NDS Games on Switch
The melonDS on Lakka (LibRetro) sucks. It runs at 80% emulation speed even with 1.7GHz CPU overlocking. And there is no obvious way to rotate the screen, which could have made it less useless.
Another port by RSDuck offers full speed emulation w/ built-in rotate feature in the very first drop-down menu. Just remember to place the BIOS files from Emulation General Wiki I got from a random YouTube video from another random Reddit post on r/SwitchPirates . Also, CJK chars won’t display in the melonDS port. Be sure to rename the roms to English titles.
Streaming
Stream switch games to PC via USB or network w/ 720p@30fps video & 16bit PCM@48kHz stereo audio (can’t be higher due to hardware limit):
- SysDVR (if a game won’t work, try dvr-patches)
- Getting started
- USB Driver Setup
Cheats
- Cheat Create Guide
- AMS-Cheat-Button-Assigner: activate button remapping
Database
- Cheat Codes SXOS and AMS Main cheat file (GitHub mirror, used in manual)
- Sharkive (bundled w/ Checkpoint)
- NX-60FPS-RES-GFX-Cheats
- tomvita/MyNXCheats (from EdiZon-SE/Breeze dev)
- NSW Releases (GitHub)
- If unavailable, try searching game title or titleID on GBAtemp, popular games usually have their own thread
- If you have Breeze, aio-switch-updater or similar NROs, it’s also possible to directly download cheats right inside homebrew
and a few additional repos can be found insdcard:/switch/breeze/Miscinfo
which are stored in plain text
Usage
Edited from r/Ryujinx:
- Get the cheat file from GBAtemp. It is the
title.rar
attached to the first post here. - Extract that RAR file and find the folder
010093801237C000
. You can also just searchMetroid Dread
and you’ll find it. - In that folder is a
cheats
folder. Copy this folder. - Open up Ryujinx and right click on the game file and click on “Open Mods Directory”. This will open a new folder. Paste that
cheats
folder in this new mods folder that opened up. - Go into the
cheats
folder and open up the file49161D9CCBC15DF9.txt
. Remove any cheats you don’t want to activate and only leave the cheats you want to have on. Save the file and close the text editor. (You can also enable only a few of them in Ryujinx GUI) - Now run the game and the cheats should be activated.
In Suyu, instead of standard Atmosphère mod folder, create a new folder and put cheats
in that folder. The whole thing looks like <suyu-path>\user\load\01009BF0072D4000\[1.3] Cheats\cheats\8f75c9b8b7ff69d9.txt
. Note that silly ==[1.3] Cheats
== folder, that’s the point.
The most important thing to get it work is version. Make sure game build ID (and title ID ofc) matches the cheat. Install/Add update before using cheat. If not, try to waste 3 hours searching & debugging like me, only to find out it’s caused by the mismatched NSP :)
Mods
With Yuzu website taken down, Game Modding and Switch Mods are no longer accessible (w/o Internet Archive), so GameBanana is the main source I usually check.
Example
Fire Emblem: Three Houses is somewhat a dating sim or Otome/gal game. Let’s say I want to have a skin mod called Agarthan Academy which would make female characters look more charming.
Usually emulators work a bit differently, so mods created for Switch may not be compatible. This mod offers both versions so no worries. Just download the zip, extract the content and copy it to mod directory (N.B. when using Ryujinx, use the mod directory
instead of Atmosphere mod directory
).
Switchroot (Android)
App List
- Regular Apps
- Aurora Droid / Neo Store
- Cromite
- Magisk (w/ LSPosed)
- Material Files
- Red Moon
- NekoBox
- Termux
- Gaming
- Console Launcher (bundled w/ Switchroot Android 11)
- Kirikiroid2_yuri
- Moonlight
- Nvidia Shield TV
- PS Remote Play
- SteamLink
- Xbox
Lakka
- Lakka
- Accessing Lakka filesystem
- Upgrading Lakka
- L4T Lakka Install/Update Guide
- Multitaps
- Netplay
- No need to install, just replace
lakka.ini
bootloader profile and content insidesdmc:/lakka
. - No need to do a reinstall when upgrading, just use Lakka built-in updater.
- To upgrade offline, download tarball & checksum (7z won’t work) of latest edition (e.g.
Lakka-Switch.aarch64-5.0.tar
) or nightly builds (e.g.Lakka-Switch.aarch64-devbuild-v5.x-20240414-b9dd11f.tar
) and place it tosdmc:/lakka/storage/.update/
AS IS, no need to unarchive or rename or whatever
Emulation
- Emulator
- Switch-Emulators-Guide
- GlumSak: possible RyuSAK alternative, still in very early stage, and on hold since yuzu incident
- Ryujinx Setup & Configuration Guide
- Switch Firmwares
- Compatibility
- Game Save
- Cheats: check Cheats
- Shader Caches
EmuMMC Upgrade Guide
This only serves as a reference and many things are redacted.
- receive
Nintendo Switch 本体更新情報
from RSSHub - new releases waitlist
- hekate
- Atmosphère (prerelease)
- key & firmware dump (Lockpick_RCM & TegraExplorer)
- backup & remove
atmosphere/contents/*
- update Atmosphère, hekate
- update #amiibo & possibly other nro (from DeepSea)
- enter stock OS (sysNAND) & update firmware
- check if switch is banned
- dump
*.keys
in hekate using Lockpick_RCM - dump sysNAND firmware in hekate using TegraExplorer
- update firmware in emuMMC using Daybreak
- restore
atmosphere/contents/*
- check if titles are playable
- backup BOOT partition, transfer keys & update firmware in Suyu/Ryujinx
Todo
- NS Themes
- /r/NXThemes
- Qcean Discord
- Lakka Theme
- switch-lan-play
- PPSSPP for Switch
- yanu
- fastCFWswitch
- Sega Saturn Emulation (modded COTTOn 2)
- FPS, clock speed, temperature monitoring and more, FPSLocker & FPSLocker-Warehouse
- SimpleModDownloader & SimpleModManager
- Kali on Switch
They are: Horizon OS (Stock OS), Atmosphère (CFW w/ emuMMC), Android 10/Q (Switchroot), and Lakka (RetroArch w/ CPU & GPU overlocking). Depending on your understanding of operating system, it could be tri-boot or penta-boot. ↩︎