explaingit

ctcaer/hekate

8,364CAudience · generalComplexity · 3/5Setup · moderate

TLDR

A custom bootloader for the Nintendo Switch that replaces the normal startup process, letting you choose what to boot, custom firmware, Android, or Linux, via a touchscreen graphical menu.

Mindmap

mindmap
  root((hekate))
    What it does
      Replaces boot process
      Loads custom firmware
      Boots Android or Linux
    Key features
      Nyx graphical UI
      emuMMC manager
      Backup and restore
      USB mass storage
    Configuration
      INI config files
      Nyx settings menus
    Audience
      Switch modders
      Homebrew users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run custom firmware on your Nintendo Switch to install homebrew apps and back up game saves to a microSD card.

USE CASE 2

Boot Android or Linux on a compatible Switch, turning it into a small multipurpose tablet.

USE CASE 3

Create and manage an emuMMC, a copy of the Switch's internal storage on the SD card, so modified software never touches the real system.

USE CASE 4

Back up or restore the Switch's internal storage using the built-in tools, then connect it to a PC as a USB card reader.

Tech stack

C

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires a Nintendo Switch console susceptible to the exploit and a microSD card with specific partition setup before first use.

In plain English

hekate is a custom bootloader for the Nintendo Switch game console, written in C. A bootloader is the first program that runs when you power on a device, and it decides what operating system or software to load. hekate replaces the standard Nintendo Switch startup process, giving you control over what the console boots into. The most common reason people use hekate is to run custom firmware on their Switch. Custom firmware lets users install homebrew software, back up game saves, or run games from a microSD card. hekate also supports booting Android and Linux on compatible Switch hardware, so the same device can serve as a small tablet running a different operating system depending on how you start it. The tool includes a full graphical interface called Nyx, which works with both the touchscreen and the Joy-Con controllers. From this interface you can manage an emuMMC, which is a copy of the Switch's internal storage stored on a microSD card. Using emuMMC lets you run modified system software without touching the console's real internal storage, keeping the original system intact. hekate handles creating, migrating, and managing these emuMMC setups. Other built-in tools include a backup and restore system for the internal storage, an SD card partition manager, a payload launcher for running other homebrew tools, and a USB mass storage mode that turns the Switch into an external card reader when plugged into a computer. It can also display hardware information about the console's processor, memory, battery, and other components. Configuration is done through plain text INI files, or through the Nyx settings menus. Boot entries are defined in a config file that specifies which kernel, firmware patches, and system processes to load for each option.

Copy-paste prompts

Prompt 1
Write a hekate_ipl.ini boot config with entries for Atmosphere custom firmware and a stock boot option, including the correct kernel and patches paths.
Prompt 2
I want to set up emuMMC on my Nintendo Switch SD card using hekate. Walk me through the partition layout and the steps to create it from the Nyx interface.
Prompt 3
How do I add a third-party payload like Lockpick_RCM to hekate's payload menu? Where do I put the .bin file and how do I create a boot entry for it?
Prompt 4
I'm using hekate's USB mass storage mode. Give me the steps to mount the Switch SD card on a Windows PC without removing the card physically.
Open on GitHub → Explain another repo

← ctcaer on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.