Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.
Atmosphère consists of multiple components, each of which replaces/modifies a different component of the system:
- Fusée: First-stage Loader, responsible for loading and validating stage 2 (custom TrustZone) plus package2 (Kernel/FIRM sysmodules), and patching them as needed. This replaces all functionality normally in Package1loader/NX Bootloader.
- Exosphère: Customized TrustZone, to run a customized Secure Monitor
- Thermosphère: EL2 EmuNAND support, i.e. backing up and using virtualized/redirected NAND images
- Stratosphère: Custom Sysmodule(s), both Rosalina style to extend the kernel/provide new features, and of the loader reimplementation style to hook important system actions
- Troposphère: Application-level Horizon OS patches, used to implement desirable CFW features
Atmosphère is currently being developed and maintained by SciresM, TuxSH and hexkyz.
In no particular order, we credit the following for their invaluable contributions:
- switchbrew for the libnx project and the extensive documentation, research and tool development pertaining to the Nintendo Switch.
- devkitPro for the devkitA64 toolchain and libnx support.
- ReSwitched Team for additional documentation, research and tool development pertaining to the Nintendo Switch.
- ChaN for the FatFs module.
- Marcus Geelnard for the bcl-1.2.0 library.
- naehrwert and st4rk for the original hekate project and its hwinit code base.
- CTCaer for the continued hekate project's fork.
- Riley for suggesting "Atmosphere" as a Horizon OS reimplementation+customization project name.
- hedgeberg for research and hardware testing.
- lioncash for code cleanup and general improvements.
- jaames for designing and providing Atmosphère's graphical resources.
- Everyone who submitted entries for Atmosphère's splash design contest.
- All those who actively contribute to the Atmosphère repository.
Que novedades incluye la versión 0.9.4
Support was added for 9.0.0.
- Please note: 9.0.0 made a number of changes that may cause some issues with homebrew. Details:
9.0.0 changed HID in a way that causes libnx to be unable to detect button input.
- Homebrew should be recompiled with newest libnx to fix this.
Atmosphere now provides a temporary hid-mitm that will cause homebrew to continue to work as expected.
- This mitm will be removed in a future Atmosphere revision once homebrew has been updated, to allow users to use a custom hid mitm again if they desire.
9.0.0 introduced an dependency in FS on the USB system module in order to launch the SD card.
- This means the USB system module must now be launched before the SD card is initialized.
- Correspondingly, the USB system module can no longer be IPS patched, and its settings cannot be reliably mitm'd.
- We know this is frustrating, so we'll be looking into whether there is some way of addressing this in the future.
Please note: 9.0.0 updated the switch's gamecart controller ("lotus") firmware.
- To prevent the burning of lotus fuses, Atmosphere now applies nogc patches when booting into 9.0.0 with fuses below 9.0.0.
- If you wish to play gamecarts on 9.0.0 (but forever prevent yourself from playing them on < 9.0.0), set nogc = 0 in BCT.ini.
An off-by-one error was fixed in boot system module's pinmux initialization.
- This could theoretically have caused issues with HdmiCec communication.
- No users reported issues, so it's unclear if this was a problem in practice.
- A bug was fixed that could cause webapplet launching homebrew to improperly set the accessible url whitelist.
BIS key generation has been fixed for newer hardware.
- Newer hardware uses new, per-firmware device key to generate BIS keys instead of the first device key, so previously the wrong keys were generated as backup.
- This only affects units manufactured after ~5.0.0.
- General system stability improvements to enhance the user's experience.