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.8.1
A bug was fixed causing users to see
Failed to enable SMMU!if fusee had previously rebooted.
- This message will still occur sporadically if fusee is not launched from coldboot, but it can never happen twice in a row.
A race condition was fixed in Atmosphere
bis_protectfunctionality that could cause NS to be able to overwrite BCT public keys.
- This sometimes broke AutoRCM protection, the current fix has been tested on hardware and verified to work.
Support was added for enabling
debugmodebased on the
debugmode = 1will cause exosphere to tell the kernel that debugmode is active.
debugmode_user = 1will cause exosphere to tell userland that debugmode is active.
- These are completely independent of one another, allowing fine control of system behavior.
Support was added for
nogcfunctionality; thanks to @rajkosto for the patches.
nogcpatches will automatically apply if the user is booting into 4.0.0+ with fuses from <= 3.0.2.
Users can override this functionality via the
nogcentry in the
nogc = 1will force enable
nogc = 0will force disable
If patches are enabled but not found for the booting system, a fatal error will be thrown.
This should prevent running FS without
nogcpatches after updating to an unsupported system version.
- This should prevent running FS without
- By default,
An extension was added to
exosphereallowing userland applications to cause the system to reboot into RCM:
This is done by calling
smcSetConfig(id=65001, value=<nonzero>);user homebrew can use
- This is done by calling
- On fatal error, the user can now choose to perform a standard reboot via the power button, or a reboot into RCM via either volume button.
A custom message was added to
fatalfor when an Atmosphère API version mismatch is detected (2495-1623).
- General system stability improvements to enhance the user's experience.