Atmosphere – Nintendo Switch Custom Firmware’s first official release is here
The long awaited Custom Firmware for Nintendo Switch is here.
SciresM published Atmosphere 0.7.0 to the project’s official github a few hours ago.
What is Atmosphere for the Nintendo Switch?
At its core, Atmosphere is a custom firmware for the Nintendo Switch. This means it reimplements some of the Nintendo Switch’s Operating system modules, with a twist.
In some cases, it just means future flexibility: a given module might just mimic existing OS functionality, but because Atmosphere is completely open source, it gives developers an opportunity to completely rewrite an existing feature on the console if they feel like it. In other cases, it copies a module’s functionality, but adds a few patches or options, such as extending the process manager to give homebrew binaries more permissions than they would normally get. Other times, it’s pure new functionality, such as a custom filesystem module that will make it easy for programmers to mod videogames assets.
There’s much more to it, as shown by the impressive feature log below, but to make it short, Atmosphere should open the doors to easier development for homebrew creators, and ease-of-use for those who simply want to play homebrew.
Full feature log (from the project’s release notes):
- Fusée, a custom bootloader.
- Supports loading/customizing of arbitrary KIPs from the SD card.
- Supports loading a custom kernel from the SD card (“/atmosphere/kernel.bin”).
- Supports compile-time defined kernel patches on a per-firmware basis.
- All patches at paths like
/atmosphere/kip_patches/<user-defined patch name>/<SHA256 of KIP>.ips
will be applied to the relevant KIPs, allowing for easy distribution of patches supporting multiple versions.
- Both the IPS and IPS32 formats are supported.
- All patches at paths like
/atmosphere/kernel_patches/<user-defined patch name>/<SHA256 of Kernel>.ips
will be applied to the kernel, allowing for easy distribution of patches supporting multiple versions.
- Both the IPS and IPS32 formats are supported.
- Configurable by editing
BCT.ini
on the SD card.- Atmosphère should also be launchable by the alternative hekate bootloader, for those who prefer it.
- Exosphère, a fully-featured custom secure monitor.
- Exosphere is a re-implementation of Nintendo’s TrustZone firmware, fully replicating all of its features.
- In addition, it has been extended to provide information on current Atmosphere API version, for homebrew wishing to make use of it.
- Stratosphère, a set of custom system modules. This includes:
- A loader system module.
- Reimplementation of Nintendo’s loader, fully replicating all original functionality.
- Configurable by editing /atmosphere/loader.ini
- First class support for the Homebrew Loader.
- An exefs NSP (default “/atmosphere/hbl.nsp”) will be used in place of the victim title’s exefs.
- By default, HBL will replace the album applet, but any application should also be supported.
- Extended to support arbitrary redirection of executable content to the SD card.
- Files will be preferentially loaded from
/atmosphere/titles/<titleid>/exefs/
, if present.- Files present in the original exefs a user wants to mark as not present may be “stubbed” by creating a .stub file on the SD.
- If present, a PFS0 at
/atmosphere/titles/<titleid>/exefs.nsp
will fully replace the original exefs.- Redirection is optionally toggleable by holding down certain buttons (by default, holding R disables redirection).
- Full support for patching NSO content is implemented.
- All patches at paths like
/atmosphere/exefs_patches/<user-defined patch name>/<Hex Build-ID for NSO to patch>.ips
will be applied, allowing for easy distribution of patches supporting multiple firmware versions and/or titles.- Both the IPS and IPS32 formats are supported.
- Extended to support launching content from loose executable files on the SD card, without requiring any official installation.
- This is done by specifying
FsStorageId_None
on launch.- A service manager system module.
- Reimplementation of Nintendo’s service manager, fully replicating all original functionality.
- Compile-time support for reintroduction of “smhax”, allowing clients to optionally skip service access verification by skipping initialization.
- Extended to allow homebrew to acquire more handles to privileged services than Nintendo natively allows.
- Extended to add a new API for installing Man-In-The-Middle listeners for arbitrary services.
- API can additionally be used to safely detect whether a service has been registered in a non-blocking way with no side-effects.
- Full API documentation to come.
- A process manager system module.
- Reimplementation of Nintendo’s process manager, fully replicating all original functionality.
- Extended to allow homebrew to acquire handles to arbitrary processes, and thus read/modify system memory without blocking execution.
- Extended to allow homebrew to retrieve information about system resource limits.
- Extended by embedding a full, extended implementation of Nintendo’s boot2 system module.
- Title launch order has been optimized in order to grant access to the SD card faster.
- The error-collection system module is intentionally not launched, preventing many system telemetry error reports from being generated at all.
- Users may place their own custom sysmodules on the SD card and flag them for automatic boot2 launch by creating a
/atmosphere/titles/<title ID>/boot2.flag
file on their SD card.- A custom fs.mitm system module.
- Uses Atmosphère’s MitM API in order to provide an easy means for users to modify game content.
- Intercepts all FS commands sent by games, with special handling for commands used to mount RomFS/DLC content to enable easy creation and distribution of game/DLC mods.
- fs.mitm will parse the base RomFS image for a game, a RomFS image located at
/atmosphere/titles/<title ID>/romfs.bin
, and all loose files in/atmosphere/titles/<title ID>/romfs/
, and merge them together into a single RomFS image.- When merging, loose files are preferred to content in the SD card romfs.bin image, and files from the SD card image are preferred to those in the base image.
- Can additionally be used to intercept commands sent by arbitrary system titles (excepting those launched before SD card is active), by creating a
/atmosphere/titles/<title ID>/fsmitm.flag
file on the SD card.- Can be forcibly disabled for any title, by creating a
/atmosphere/titles/<title ID>/fsmitm_disable.flag
file on the SD card.- Redirection is optionally toggleable by holding down certain buttons (by default, holding R disables redirection).
- A custom crash report system module.
- Serves as a drop-in replacement for Nintendo’s own creport system module.
- Generates detailed, human-readable reports on system crashes, saving to
/atmosphere/crash_reports/<timestamp>_<title ID>.log
.- Because reports are not sent to the
erpt
sysmodule, this disables all crash report related telemetry.- General system stability improvements to enhance the user’s experience.
Download and Install Atmosphere 0.7.0
Download from the project’s official github here.
You need a hackable console in order to install and run Atmosphere (in general, if you own a “first generation” Nintendo Switch console, it is hackable). You’ll need to enter RCM mode on the console before being able to launch Atmosphere. There’s a great guide here by noirscape on everything related to hacking your switch, and it includes details for Atmosphere.
Well thats cool i guess, bit late to the party but atleast they showed up 😛
First
You say late to the party, I say that working on system level *** is hard, working on open source things without losing motivation is hard, having your work shoved in commercial packaging by others with no credit is hard, dealing with whiny “better late than never” dickbags is hard, this thing by all rights of software engineering at this level shouldn’t even publicly exist.
Any benefits to ReiNX?
My question exactly , if it boots directly, is a plus. ,
It’s funnyman because KIP means “chicken” in Dutch.
Congrats to the dev team !
Any info on banning by using this? Still want to play fortnite and update games without getting banned
Team xecutor for the win, nsp installing and playing, Xci cart dumos mounting and playabke, great littlw cheat engine all for very little money. Atmosphere/ Reinx too little too late
If your happy with the paid product your using thats great. Enjoy it. TE are getting paid to keep their product updated until they move onto the next product.
The Devs behind Atmosphere/ReInx are developing on their own time and with no demand for income from their efforts. Its open source so other people can get involved in the future to keep the project going.
I’m sorry but a comment like “Atmosphere/ Reinx too little too late” is just a pointless statement. It just make people roll their eyes and think “oh another fanboy stating that this or that is better”. Its not a competition at the end of the day and Devs do things for their own learning in many cases.
Have you done any development in the scene or a scene?
Well no, been using ReiNX with https://reinx.guide, people y’all don’t need to pay a penny. Use opensource!
Works like a charm too.
Exactly, it’s funny how much progress a couple of bucks does to feature set and stability. They’ve pretty much address bugs and issues in a few weeks, not years.
At this point, is there really a point for an official “release”? I mean everything out is already based on atmosphere, which seems like more of a library of code for CFW, instead of a CFW in and of itself.
congrats ^_^ first cfw for the switch.
Maybe if they unveiled the next version of the switch (better cooling and better battery life hopeful) I might use my old switch for backups and emus
Still waiting for better AutoRCM
Better how? ReinX toolkit autorcm works flawlessly imho.
Hoping they find a solution for ipatched consoles…
I can’t get this to work at all I’m on 3.0 and every time i try to get this to work it crashes my switch