Nintendo Switch Homebrew 101

Disclaimer

🚨 Warning

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

However, 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

Basics

Exploit

RCM

Exploiter

Sending payload:

Payloads

  • fusee: bundled with Atmosphère
  • hekate_ctcaer: hekate, obviously…
  • Lockpick_RCM: Dump *.keys
  • TegraExplorer: file explorer

Software

Bundle

DeepSea is a good starting point for beginners. Check Featuring list in README.

💡 Tip

DeepSea is usually outdated so you’d better just start here and move on to respective repos.

Someone also offers a bundle named HATS but I prefer to not discuss it publicly.

Tool

NRO

A small list of homebrew apps I use, there are more in NH Switch Guide

  • bundled with Atmosphère
    • Daybreak, offline firmware installer
    • appstore, homebrew app store, obviously
    • haze, no idea
  • JKSV, Save Manager
  • wiliwili : BiliBili Player
  • PPSSPP for Switch
  • See #Cheats for (offline!) single player cheating related stuff
  • Play Time Log
  • nxdumptool
    • Dump XCI/NSP/HFS0/ExeFS/RomFS/Certificate/Ticket from gamecards
    • See usage guide at ZeldaMods
  • Switch_90DNS_tester, DNS / Hosts to Block Requests to Nintendo Servers, unneeded nowadays as it can be blocked at bootloader (hekate) or system (Atmosphère) level

Overlay

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):

Guides

Amiibo

Linux Host

udev

sudo mkdir -p /etc/udev/rules.d/
/usr/bin/sudo -e /etc/udev/rules.d/10-switch.rules

sudo udevadm control --reload
udevadm trigger
# /etc/udev/rules.d/10-switch.rules

# https://switch.hacks.guide/extras/adding_udev/
# Tegra X1 USB?
SUBSYSTEMS=="usb", ATTRS{manufacturer}=="NVIDIA Corp.", ATTRS{product}=="APX", MODE="0666"

# https://github.com/pheki/nx-udev
# Switch USB
SUBSYSTEM=="usb", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="3000", MODE="0666"
# RCM
SUBSYSTEM=="usb", ATTRS{idVendor}=="0955", ATTRS{idProduct}=="7321", MODE="0666"

Switchroot

Guides

  • 15 (aka. LineageOS 22, TBA…)
  • 14/U (TBA)
    • a real, upstream LineageOS 21 release, with Switch support. Really amazing.
    • HAC-001
    • Known bugs that I care as of 2024-07-05: JoyCon autopair, overlocking, Android partition on SD
  • 11/R Setup Guide
    • Unlike Android 10/Q, Android 11 bundles Gapps by default
    • Former “extra zips” section is called Tips & Tricks now
    • known bugs
    • Be sure to do Factory Reset and wipe data and system EVEN IF you don’t have previous Switchroot installation

Apps

  • Regular Apps
    • Aurora Droid / Neo Store
    • Cromite
    • Magisk (w/ LSPosed)
    • Material Files
    • Red Moon
    • NekoBox (do NOT download from Google Play, dev account is hijacked)
    • Termux
  • Gaming
    • Console Launcher (bundled w/ Switchroot Android 11)
    • Kirikiroid2_yuri
    • Moonlight
    • PS Remote Play
    • SteamLink
    • Xbox

Cheats

Database

Usage

Edited from r/Ryujinx:

  1. Get the cheat file from GBAtemp. It is the title.rar attached to the first post here.
  2. Extract that RAR file and find the folder 010093801237C000. You can also just search Metroid Dread and you’ll find it.
  3. In that folder is a cheats folder. Copy this folder.
  4. 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.
  5. Go into the cheats folder and open up the file 49161D9CCBC15DF9.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)
  6. 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

GameBanana is the main source I usually check.

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

Lakka

Emulation

EmuMMC Upgrade Guide

This only serves as a reference and many things are redacted.

  1. receive Nintendo Switch 本体更新情報 from RSSHub
  2. new releases waitlist
    • hekate
    • Atmosphère (prerelease)
    • key & firmware dump (Lockpick_RCM & TegraExplorer)
  3. backup BOOT0 & BOOT1 in hekate, do NOT backup eMMC RAW GPP or GPP Partitions (as they are large)!
  4. backup & remove atmosphere/contents/*
  5. update Atmosphère, hekate
  6. update #Cheats, #Amiibo & possibly other nro (from DeepSea/HATS)
  7. enter stock OS (sysNAND) & update firmware
  8. check if switch is banned
  9. dump *.keys in hekate using Lockpick_RCM
  10. dump sysNAND firmware in hekate using TegraExplorer
  11. update firmware in emuMMC using Daybreak
  12. restore atmosphere/contents/*
  13. check if titles are playable
  14. backup BOOT partition, transfer keys & update firmware in Suyu/Ryujinx/other places listed in #Payloads

TODO


  1. They are: Horizon OS (Stock OS), Atmosphère (CFW w/ emuMMC), Android 11/R (Switchroot), and Lakka (RetroArch w/ CPU & GPU overlocking). Depending on your understanding of operating system, it could be tri-boot or penta-boot. ↩︎

Vinfall's Geekademy

Sine īrā et studiō