# Atmosphère: Open-Source Custom Firmware for the Nintendo Switch

> Atmosphère is a work-in-progress custom firmware for the Nintendo Switch, built by a four-person core team. It replaces five system layers from the first-stage bootloader to application-level OS patches, targeting developers and modders who want homebrew support, EmuNAND virtualization, or CFW-specific sysmodule hooks.

**Atmosphere-NX/Atmosphere** — Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.

- Repository: https://github.com/Atmosphere-NX/Atmosphere
- Stars: 19,925 · Forks: 1,487
- Language: C++
- License: GPL-2.0
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/atmosphere-nx-atmosphere

## A Five-Component Platform for Nintendo Switch Modification

Atmosphère is a custom firmware (CFW) for the Nintendo Switch, described in its repository as a work in progress. Rather than patching a single binary, it replaces or wraps five distinct layers of the Switch firmware stack. Each component targets a different execution level, from the very first stage of boot through the application layer of Horizon OS.

The project is for Switch owners who want to load homebrew software, apply game cheats through a CFW layer, or maintain a virtualized NAND image that keeps the custom and stock environments separated. It does not provide a menu-driven graphical installer; users either build from source or obtain a pre-built release through other means.

Four contributors are listed as current maintainers: SciresM, TuxSH, hexkyz, and fincs. Credits include switchbrew for the libnx library and the hardware documentation at switchbrew.org, devkitPro for the devkitA64 cross-compilation toolchain, the ReSwitched Team for additional research, ChaN for the FatFs module used in the bootloader stage, and CTCaer for the hekate bootloader fork and the minerva_tc project. The m4xw emuMMC project is also credited as foundational work for the EmuNAND component.

## Fusée, Exosphère, Thermosphère, Stratosphère, and Troposphère

Atmosphère names each of its five components after atmospheric layers, and each one replaces a distinct part of the Switch firmware stack.

Fusée is the first-stage loader. It loads and validates the second stage (Exosphère, the custom TrustZone implementation) and package2, which contains the Switch kernel and FIRM sysmodules. Fusée applies patches to these before they run and replaces all functionality normally handled by Package1loader and the NX Bootloader.

Exosphère is the customized TrustZone component. ARM hardware runs TrustZone at EL3, the highest privilege level. Exosphère provides a custom Secure Monitor at that level, enabling CFW-specific behavior that the stock firmware would otherwise block.

Thermosphère provides EmuNAND support by operating at EL2, the ARM virtualization extension layer. It intercepts NAND read and write operations between the kernel (EL1) and physical storage, redirecting them to a virtualized image on the SD card. This keeps the CFW environment and the stock system data completely separated.

Stratosphère covers custom sysmodules. The README describes two approaches: a Rosalina-style model that extends the kernel and provides new system features, and a loader reimplementation model that hooks important system actions at the point where they are dispatched.

Troposphère applies patches at the application level, targeting Horizon OS directly. The README describes it as implementing desirable CFW features through OS-level patching, without specifying those features in detail.

## Building Atmosphère with the devkitA64 Toolchain

Atmosphère is a C++ project that cross-compiles against the devkitA64 toolchain from devkitPro. The project's Dockerfile defines the canonical build environment:

```dockerfile
FROM devkitpro/devkita64:20260219
```

This image serves as the official starting point. The Dockerfile adds Python 2.7.18 and the lz4 Python library, both required by the build scripts. It also installs standard system build dependencies through apt. Developers who prefer to build outside Docker must configure a local devkitA64 installation alongside those Python dependencies.

The top-level Makefile registers a single board target: nx-hac-001 (the Nintendo Switch) with an arm-cortex-a57 CPU configuration. Three build variants are available for that target. The default target produces the release build:

```bash
make nx_release
```

The debug variant adds the compiler define -DAMS_BUILD_FOR_DEBUGGING. The audit variant adds both -DAMS_BUILD_FOR_DEBUGGING and -DAMS_BUILD_FOR_AUDITING. A dist-no-debug target strips debug information before packaging. The clean targets remove artifacts per configuration; clean-all covers every registered configuration.

The README does not document how to transfer the compiled output to a Switch SD card. That deployment step falls outside what the repository documentation addresses.

## EmuNAND: NAND Virtualization at Privilege Level EL2

EmuNAND is one of the most practically significant features of any Nintendo Switch CFW. It lets the console operate against a storage image separate from the physical NAND chip, so that changes made under the custom firmware do not touch the stock system data.

Thermosphère implements this by operating at EL2, the ARM virtualization extension layer that sits between the kernel at EL1 and the hardware. When the kernel issues a read or write directed at the physical NAND, Thermosphère intercepts it and redirects the operation to a virtualized image stored on the SD card. The stock firmware and the CFW environment each see their own separate data.

The README describes this as "backing up and using virtualized/redirected NAND images." It does not document the procedure for creating or managing those images. Whether a given EmuNAND image boots correctly and remains self-consistent is not addressed in the repository documentation; that depends on how the image was created, which is outside what the README covers.

The credit given to m4xw for the emuMMC project acknowledges that EmuNAND support in Atmosphère builds on earlier work in that area.

## Gaps in the Repository Documentation

The repository description explicitly labels Atmosphère as a work in progress. Several areas in the provided documentation are thin or absent.

There are no end-user installation guides. The README describes what each component does but does not explain how to transfer the built firmware to an SD card, which configuration files are required, or what the initial boot sequence looks like on a real Switch. A developer arriving here expecting a deployment tutorial will not find one.

The Makefile defines only the nx-hac-001 target. This is the original Nintendo Switch model with an arm-cortex-a57 CPU. The Makefile does not define separate targets for the Switch Lite or the OLED model. Whether those devices are supported is not answerable from the repository documentation.

The cheat and plugin system is referenced only by implication. Troposphère covers CFW features implemented as OS-level patches, but the README does not document a cheat file format, a plugin loading mechanism, or any user-facing configuration interface.

The build environment relies on Python 2.7.18, which reached its end-of-life in January 2020. The Dockerfile compiles it from source at a pinned version. This is a maintenance concern for anyone who needs to modify the build scripts or audit the build toolchain for supply-chain reasons.

## GPL-2.0 License and the Nintendo Carve-Out

Atmosphère is distributed under the GPLv2 license. For a compiled firmware project, GPLv2 requires that any modification distributed to others preserve the same license terms and include the corresponding source code. This applies to third parties who distribute modified builds, not to end users who run the firmware on their own consoles.

The repository includes one stated licensing exemption: Nintendo (the GitHub account at github.com/Nintendo) is explicitly exempt from the GPLv2 and may instead license any source code it authors for the Atmosphère project under the Zero-Clause BSD license. The README states this directly. The practical effect on end users is none; the exemption applies only to Nintendo's own authorship, and Nintendo has not contributed to the repository.

No contributor license agreement requirement appears in the README. The project lists contributors in the credits without reference to a formal CLA process.

## Conclusion

Atmosphère is for Nintendo Switch owners who want EmuNAND virtualization, homebrew support, or application-level OS patches and are comfortable with a work-in-progress project. Release 1.12.0 was published on 2026-09-27 by four named contributors under active development. Building from source requires the devkitA64 toolchain; the README does not document deployment steps from the compiled output to a Switch SD card, which is a concrete gap for anyone relying solely on the repository documentation.

## FAQ

### How do I install Atmosphere on Switch?

Building Atmosphère from source requires the devkitA64 toolchain; the Makefile defines a release target for the nx-hac-001 (Nintendo Switch) with an arm-cortex-a57 CPU, compiled by running make nx_release. The README does not document copying the compiled firmware to a Switch SD card or any other deployment step beyond the build itself.

### How do I use Atmosphere on Switch?

Atmosphère operates as a stack of five components: Fusée handles the first-stage boot, Exosphère replaces the Secure Monitor at EL3, Thermosphère provides EmuNAND support at EL2, Stratosphère adds custom sysmodules, and Troposphère applies OS-level patches. The README describes each component's role but does not contain a usage tutorial for end users.

### How do I use Atmosphere cheats on Switch?

Troposphère is the Atmosphère component responsible for application-level Horizon OS patches and is listed as implementing desirable CFW features. The README does not document the cheat file format, the directory structure for cheat files, or the steps required to activate them.

## Sources

- [Atmosphere-NX/Atmosphere on GitHub](https://github.com/Atmosphere-NX/Atmosphere)
- [Issues](https://github.com/Atmosphere-NX/Atmosphere/issues)
- [License: GPL-2.0](https://github.com/Atmosphere-NX/Atmosphere/blob/master/LICENSE)
- [README](https://github.com/Atmosphere-NX/Atmosphere/blob/master/README.md)
- [Releases](https://github.com/Atmosphere-NX/Atmosphere/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/atmosphere-nx-atmosphere
