More actions
Atmosphere | |
---|---|
File:Atmosphereswitch.png | |
General | |
Author | SciresM |
Type | Custom Firmwares |
Version | 1.5.2 |
License | GPL-2.0 |
Last Updated | 2023/03/18 |
Links | |
Download | |
Website | |
Source | |
Atmosphère is a customized firmware that is currently a work-in-progress for the Nintendo Switch. This firmware is designed to provide users with greater flexibility and control over their Nintendo Switch gaming experience.
Atmosphère is built upon the foundation of the Nintendo Switch's official firmware, which means that it maintains compatibility with all the same games and features that are available on the official firmware. However, Atmosphère also introduces a number of new features and options that are not available on the official firmware.
One of the key features of Atmosphère is its support for custom themes, which allow users to personalize the look and feel of their Nintendo Switch's interface. Additionally, Atmosphère provides users with enhanced control over system settings and the ability to install homebrew applications, which can greatly expand the functionality of the Nintendo Switch.
It's important to note that, because Atmosphère is a work-in-progress firmware, it may not be stable or fully functional at all times. However, for those who are willing to take on the risks and rewards of experimenting with a customized firmware, Atmosphère represents an exciting new avenue for exploring the full potential of 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.
- Sept: Payload used to enable support for runtime key derivation on 7.0.0.
- 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
Media
How to install Atmosphère CFW, Hekate, and Homebrew | Switch 16.0 Mod TUTORIAL - (Manito)
Screenshots
Changelog
v.1.5.2
1.5.2 is Atmosphère's seventy-first official release.
Please be sure to update fusee when upgrading to 1.5.2. fusee-primary no longer exists, and will not work any more.
With thanks to the @switchbrew team, Atmosphère 1.5.2 is bundled with hbl 2.4.3, and hbmenu 3.5.1.
The following was changed since the last release:
- A homebrew application (
haze
) was added for performing USB file transfer (with thanks to @liamwhite for both design and implementation).haze
is included with atmosphère, and provides access to the SD card via the PTP/MTP protocol.- Please note: haze will show inside the homebrew menu under the name "USB File Transfer".
- Please note: Atmosphère cannot be updated at runtime, and trying to install an atmosphère update via haze will fail as usual.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 1.5, please see the official release notes.
v.1.5.1
fatal
was updated to reduce memory footprint.- Starting in 16.0.0, official
fatal
has no framebuffer or rendering logic, and instead calls other system service commands to draw the screen. - However, these commands aren't usable by atmosphère (too small rendering window, bad color support).
- To reduce the relative memory footprint differential between atmosphère and official code, the framebuffer (2 MB) is now dynamically allocated when needed.
- This will try to allocate from multiple pools (preferring System > System_NonSecure > Application).
- This technically requires that 2 MB be available in at least one of these pools for the fatal screen to render (otherwise, a reboot-to-black-and-white-fatal will occur), but this should be a non-issue in almost all cases.
- Starting in 16.0.0, official
- A feature was added to optionally mirror the bluetooth pairing database to the SD card (thanks @ndeadly).
- This allows device pairings to be automatically kept in-sync across sysmmc/all emummcs.
- This is opt-in, and can be controlled by setting
atmosphere!enable_external_bluetooth_db = u8!0x1
. - When enabled, the pairing database will be synchronized to
/atmosphere/bluetooth_devices.db
.
- General system stability improvements to enhance the user's experience.
And the following was changed in 1.5.0:
- Support was added for 16.0.0
mesosphère
was updated to reflect the latest official kernel behavior.ncm
was updated to reflect the latest official behavior.- Many FS apis were updated under the hood to reflect the latest official behavior.
- Please Note: 16.0.0 made breaking changes to a number of system APIs, including in FS/NCM/Shared Font commands that some homebrew programs may use.
- These programs may encounter strange errors, and may need to be recompiled with a libnx updated to support 16.0.0's changes to function properly.
- If you are an impacted developer, please contact
SciresM#0524
on discord for assistance.
- A number of minor issues were fixed and improvements were made, including:
- An issue was fixed that could cause GPIO outputs to be misconfigured under certain circumstances.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 1.5, please see the official release notes.
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.