Convert Figma logo to code with AI

Atmosphere-NX logoAtmosphere

Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.

16,720
1,316
16,720
28

Top Related Projects

34,468

Experimental Nintendo Switch Emulator written in C#

1,347

Library for Switch Homebrew

7,467

hekate - A GUI based Nintendo Switch Bootloader

Quick Overview

Atmosphere-NX is an open-source custom firmware for the Nintendo Switch. It provides a set of tools and modifications that allow users to run homebrew applications, modify system behavior, and enhance the functionality of their Nintendo Switch consoles.

Pros

  • Enables running homebrew applications and custom software on the Nintendo Switch
  • Provides extensive customization options for the Switch's operating system
  • Regularly updated with new features and security patches
  • Supports a wide range of Nintendo Switch models and firmware versions

Cons

  • May void the warranty of the Nintendo Switch console
  • Potential risk of console banning if used improperly or for online play
  • Requires technical knowledge to install and use safely
  • Some features may be considered legally gray or violate Nintendo's terms of service

Getting Started

To get started with Atmosphere-NX, follow these steps:

  1. Check if your Nintendo Switch is vulnerable to the exploit (typically older models).
  2. Prepare an SD card with the required files:
    • Download the latest Atmosphere release from the GitHub repository.
    • Download the latest Hekate bootloader.
    • Download the required Nintendo Switch firmware files.
  3. Insert the SD card into your Switch and follow the installation guide provided in the Atmosphere-NX documentation.
  4. Use a payload injector or software-based method to boot into Atmosphere.

Note: Always follow the official documentation and be aware of the risks involved in modifying your console.

Competitor Comparisons

34,468

Experimental Nintendo Switch Emulator written in C#

Pros of Ryujinx

  • Cross-platform compatibility (Windows, Linux, macOS)
  • More accurate emulation of Nintendo Switch hardware
  • Active development with frequent updates and improvements

Cons of Ryujinx

  • Higher system requirements for optimal performance
  • Slower game loading times compared to Atmosphere
  • Less extensive homebrew support

Code Comparison

Ryujinx (C#):

public void Initialize()
{
    ConfigurationState.Instance.Load();
    UserChannelPersistence.Load();
    ContentManager.LoadAllEntries();
}

Atmosphere (C++):

void Initialize() {
    R_ABORT_UNLESS(sm::Initialize());
    R_ABORT_UNLESS(fsInitialize());
    R_ABORT_UNLESS(fsdevMountSdmc());
}

The code snippets show initialization processes for both projects. Ryujinx focuses on loading configuration and content, while Atmosphere initializes system services and mounts the SD card. This reflects their different approaches: Ryujinx as an emulator and Atmosphere as a custom firmware for the Nintendo Switch.

Ryujinx provides a more accessible emulation experience across multiple platforms, while Atmosphere offers a native solution for running custom firmware on actual Switch hardware. Each project serves different purposes and user needs within the Nintendo Switch ecosystem.

1,347

Library for Switch Homebrew

Pros of libnx

  • Focused library for Nintendo Switch homebrew development
  • Extensive documentation and examples for developers
  • Smaller codebase, potentially easier to understand and contribute to

Cons of libnx

  • More limited in scope compared to Atmosphere
  • Requires additional components for a full custom firmware solution
  • May have less frequent updates or community support

Code Comparison

Atmosphere (main.c):

#include <switch.h>
#include <atmosphere.h>

int main(int argc, char **argv) {
    atmosphereInitialize();
    // Custom firmware initialization
    return 0;
}

libnx (main.c):

#include <switch.h>

int main(int argc, char **argv) {
    consoleInit(NULL);
    // Homebrew application code
    consoleExit(NULL);
    return 0;
}

The code snippets demonstrate the different focus of each project. Atmosphere initializes custom firmware components, while libnx provides a foundation for homebrew application development.

7,467

hekate - A GUI based Nintendo Switch Bootloader

Pros of hekate

  • More user-friendly interface with a graphical bootloader
  • Offers additional features like eMMC/SD card management and backup creation
  • Provides more flexibility in custom boot configurations

Cons of hekate

  • Slightly more complex setup process compared to Atmosphere
  • May require additional steps for certain homebrew applications
  • Less frequently updated than Atmosphere

Code Comparison

hekate (config.ini):

[config]
autoboot=0
autoboot_list=0
bootwait=3
backlight=100
autohosoff=0
autonogc=1

Atmosphere (system_settings.ini):

[atmosphere]
; Enable extra error info
enable_error_info = 1
; Enable DNS.mitm
enable_dns_mitm = 1

Both projects serve different purposes in the Nintendo Switch homebrew ecosystem. Atmosphere focuses on providing a custom firmware solution, while hekate offers a versatile bootloader with additional management features. Users often use both in conjunction for a comprehensive homebrew experience.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Banner

License Chat on Discord Made with Notepad++

Atmosphère is a work-in-progress customized firmware for the Nintendo Switch.

Components

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

Licensing

This software is licensed under the terms of the GPLv2, with exemptions for specific projects noted below.

You can find a copy of the license in the LICENSE file.

Exemptions:

  • Nintendo is exempt from GPLv2 licensing and may (at its option) instead license any source code authored for the Atmosphère project under the Zero-Clause BSD license.

Credits

Atmosphère is currently being developed and maintained by SciresM, TuxSH, hexkyz, and fincs.
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 and the minerva_tc project.
  • m4xw for development of the emuMMC project.
  • 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.