The Nintendo Switch's Horizon OS supports different boot modes to allow system recovery and general maintenance.

Recovery Mode

The Recovery Mode (also known as Maintenance Mode in firmware version 1.0.0) can be accessed when turning on the Nintendo Switch while performing a button combo.

Description

The boot2 sysmodule is responsible for checking whether the system should go into Recovery Mode or not. This is done by looking for a particular system setting ("force_maintenance") or by checking the GPIOs for a specific button combination.

Button combination

In order to enter Recovery Mode, the following combination must be performed:

  • With the system powered off, press and hold Volume Down + Volume Up;
  • Press the Power button while still holding Volume Down + Volume Up;
  • Let go of the Power button and keep holding Volume Down + Volume Up until the maintenance applet shows up.

This results in the system booting into a menu that allows to update your Nintendo Switch through the internet and format/initialize the console with or without keeping user info, screenshots and saves. It is possible to use this menu to delete the nagging update message if your console downloaded an update.

The [1.0.0] variant (known as Maintenance Mode) does not have the system update option. However, downloaded update data is still deleted when this menu is accessed.

Safe Mode

The Safe Mode can be accessed when turning on the Nintendo Switch while performing a button combo.

Description

After package1ldr decrypts and validates package1, execution carries over into the NX bootloader.

Among various tasks, this bootloader checks for a button combination to determine if the system should enter Safe Mode. If the combination is performed, the bootloader reads the SafeMode Firmware BCT from the eMMC, swaps the normal BCT with it and performs a Watchdog reset after writing panic code 0x20 to PMC_SCRATCH200.


[1.0.0-3.0.2] Entering Safe Mode forces the system to use Firmware Package B, which is nearly identical to Firmware Package A, with the exception of containing different code for the built-in sysmodules FS and boot.

When coming from the Watchdog reset, the NX bootloader checks if the system is running in Safe Mode by looking at the current bootloader's index. If the index is not 0, the screen is briefly painted with the panic color 0xFFFFAA and execution continues into the Recovery Mode.


[4.0.0+] Entering Safe Mode forces the system to use Firmware Package B or Firmware Package D, but these now differ significantly from their normal counterparts. In addition to containing different code for the FS and boot built-in sysmodules, NCM and PM are now changed to allow content database reconstruction and booting the new safemode sysmodule. Due to the additional dependencies of this process PCV, psc and bus sysmodules are now bundled with the kernel (only in Safe Mode firmware).

The screen painting routine when coming from the Watchdog reset was removed.

Button combination

In order to enter Safe Mode, the following combination must be performed:

[1.0.0-3.0.2]

Same combination used for Recovery Mode.

[4.0.0+]

  • With the system powered off, press and hold Volume Down;
  • Press the Power button while still holding Volume Down;
  • Keep pressing the Power button, but let go of Volume Down and press and hold Volume Up;
  • Let go of the Power button and keep holding Volume Up until the safemode system module starts.

This results in the system booting the safemode sysmodule and automatically finding and installing new updates from the internet.