12 misc Migrate SXOS to Atmosphère
KudbiOdd edited this page 2026-06-29 00:55:21 +09:00
Table of Contents

How to migrate from SXOS to Atmosphère

Holy hell you haven't updated in a while. Here's all you need to fix that.

Notes

  • No card reader: You can access your SD card contents via USB through Hekate to update. See this guide page for instructions.
    • You can not update Atmosphère while using Atmosphère
  • Mariko Users Only: ⚠️ If you updated via ChoiDujourNX on your sysMMC then you have to either get a donor boot0/boot1 or use a backup of your sysMMC boot0/boot1 and then restore it via NxNandManager, hekate, or sxos bootmenu. This is because ChoiDuJourNX corrupts your boot0/boot1 and will prevent you from being able to boot into sysMMC on Atmosphere.
    📝 Please see this page here to learn more on how to fix your emuMMC if you are unable to boot due to updating via ChoiDujourNX.

You need

Everything you need to download. (On GitHub scroll down and find the file under Assets)

SX core chip users only: Flash Spacecraft-NX or Get SX Gear:

Step 1 - CFW files

  1. Extract these files into the root of your SD card:
    • hekate_ctcaer_*.*.*_Nyx_*.*.*.zip
    • atmosphere-x.x.x-master.zip
    • patch-x.x.x-xx.x.zip
    • SX_Gear_v1.1.zip (SX Core/Lite & SX Pro users only)
      • Make sure to overwrite your current boot.dat.
  2. Rename hekate_ctcaer_*.*.*.bin to payload.bin (SX Core/Lite, SX Pro and Spacecraft-NX users.)

Step 2 - Hekate launch options

  1. Create a file named hekate_ipl.ini inside of your /bootloader/ folder
  2. Copy (You can use the clipboard button top right 📋) and paste one of these configurations within the file:
    ≣ sysMMC only user: (click to expand)
    • This configuration gives you 2 launch options. It launches sysMMC with Atmosphère and loads patches and blanks prodinfo.
      • CFW sysMMC - Atmosphere - for sysMMC that loads patches and blanks prodinfo.
      • Stock - for sysMMC without Atmosphère. Only use this if your sysMMC is clean.
    • It also sets a Hekate setting to make Hekate the reboot payload. Meaning you'll restart to Hekate when you use Restart from the power menu. (Hold the power button for 3 seconds, then choose Power Options and select Restart)
      [config]
      autoboot=0
      autoboot_list=0
      bootwait=3
      backlight=100
      autohosoff=0
      autonogc=1
      updater2p=1
      bootprotect=0
      
      [CFW sysMMC - Atmosphere]
      pkg3=atmosphere/package3
      emummc_force_disable=1
      cal0blank=1
      kip1patch=nosigchk
      icon=bootloader/res/icon_payload.bmp
      
      [Stock]
      fss0=atmosphere/package3
      stock=1
      emummc_force_disable=1
      icon=bootloader/res/icon_switch.bmp
      

    ≣ emuMMC and (clean sysMMC) user: (click to expand)
    • This configuration gives you 2 launch options:
      • CFW emuMMC - Atmosphere - for emuMMC that loads patches and blanks prodinfo.
      • Stock - for sysMMC without Atmosphère.
    • If you want to use Atmosphère on both sysMMC and emuMMC, you'll need an additional launch option for that.
    • It also sets a Hekate setting to make Hekate the reboot payload. Meaning you'll restart to Hekate when you use Restart from the power menu. (Hold the power button for 3 seconds, then choose Power Options and select Restart)
      [config]
      autoboot=0
      autoboot_list=0
      bootwait=3
      backlight=100
      autohosoff=0
      autonogc=1
      updater2p=1
      bootprotect=0
      
      [CFW emuMMC - Atmosphere]
      pkg3=atmosphere/package3
      emummcforce=1
      cal0blank=1
      kip1patch=nosigchk
      icon=bootloader/res/icon_payload.bmp
      
      [Stock]
      pkg3=atmosphere/package3
      stock=1
      emummc_force_disable=1
      icon=bootloader/res/icon_switch.bmp
      

Step 3 - Blocking Nintendo | Avoiding a console ban

≣ Notes about serial blanking and blocking connections: (click to expand)
  • 📝 Both blanking the console's identifying serial information and blocking connections will be used
  • Atmosphère can blank serial info. This is enough to avoid a ban but using only this will cause a crash from version 1.7.0 of Atmosphère. We set this setting with both the cal0blank=1 line in the launch option, and also by having this exosphere.ini with the line blank_prodinfo_sysmmc=1.
    • Having both is redundant but not harmful, and makes user error less likely.
  • Atmosphère can block specified connections via it's built in DNS.mitm feature using a hosts file.
    • This is the default.txt we'll add in this step.

3.1 Blocking Nintendo connections

  1. Create a file named default.txt in /atmosphere/hosts/ (the hosts folder won't exist, so make sure to create it)
  2. And copy and paste this in your default.txt file: (You can use the clipboard button top right 📋)
    # Block Nintendo Servers
    127.0.0.1 *nintendo.*
    127.0.0.1 *nintendo-europe.com
    127.0.0.1 *nintendoswitch.*
    157.230.80.146 *conntest.nintendowifi.net
    157.230.80.146 *ctest.cdn.nintendo.net
    
  • emuMMC users: If you only want Nintendo blocked while using emuMMC but not while using Atmosphère with sysMMC:
    • Name the file emummc.txt instead. Then it will only be used when Atmosphère is used with emuMMC.

3.2 Blanking serial info

Because of the previous launch options set up for Hekate this step can be skipped. But following it is recommended.

  1. Create the file exosphere.ini in the root of your SD card
  2. Copy and paste one of the following options in your exosphere.ini file: (You can use the clipboard button top right 📋 )
    ≣ sysMMC only users: (click to expand)
    [exosphere]
    debugmode=1
    debugmode_user=0
    disable_user_exception_handlers=0
    enable_user_pmu_access=0
    blank_prodinfo_sysmmc=1
    blank_prodinfo_emummc=0
    allow_writing_to_cal_sysmmc=0
    log_port=0
    log_baud_rate=115200
    log_inverted=0
    
    ≣ emuMMC: (click to expand)
    [exosphere]
    debugmode=1
    debugmode_user=0
    disable_user_exception_handlers=0
    enable_user_pmu_access=0
    blank_prodinfo_sysmmc=0
    blank_prodinfo_emummc=1
    allow_writing_to_cal_sysmmc=0
    log_port=0
    log_baud_rate=115200
    log_inverted=0
    

Step 4 - Finish up

  • Place your SD card back into your switch, power it on, and launch into Hekate. (Or eject the Switch and exit the Tools menu if using Hekate's UMS)
  1. emuMMC users only (Skip these next emuMMC migrate steps if you only use CFW on sysMMC) A. Select emuMMC in the main menu of Hekate B. Select Migrate emuMMC and then select Emunand C. Once it's done, select Close then Close to exit out to the main menu
  2. Click on launch, and select your CFW launch option to start into Atmosphère.
  3. You did it! You finished CFW setup.
    • Make a complete sysMMC backup if you haven't already.
    • Suggestion: After starting emuMMC for the first time, change system theme to white (or black) so it's different from sysMMC, and you'll have a simple visual to differentiate sysMMC from emuMMC.
  • Additional note: If you want to boot into stock sysMMC without the launch option included here then you can do the following:
    • If you use a modchip then select Reboot in Hekate's home menu, and then select OFW. Or use the included Stock launch option in Hekate.
    • If you use an unpatched Erista model then turn the console on normally. Or select the included Stock launch option in Hekate.

CFW Guides 🦝