Releases: Atmosphere-NX/Atmosphere
Atmosphère 0.9.0
0.9.0 is Atmosphère's eighteenth official release.
fusee-primary was last updated in: 0.9.0.
With thanks to the @switchbrew team, Atmosphère 0.9.0 is bundled with hbl 2.1, and hbmenu 3.0.1.
The following was changed since the last release:
- Creport output was improved significantly.
- Thread names are now dumped on crash in addition to 0x100 of TLS from each thread.
- This significantly aids debugging efforts for crashes.
- Support was added for 32-bit stackframes, so reports can now be generated for 32-bit games.
- Thread names are now dumped on crash in addition to 0x100 of TLS from each thread.
dmnt
's Cheat VM was extended to add a new debug opcode.- With thanks to/collaboration with @m4xw and @CTCaer, support was added for redirecting NAND to the SD card (emummc).
- Please note, this support is very much beta/experimental.
- It is quite likely we have not identified all bugs -- those will be fixed as they are reported over the next few days/weeks.
- In addition, some niceties (e.g. having a separate Atmosphere folder per emummc instance) still need some thought put in before they can be implemented in a way that makes everyone happy.
- If you are not an advanced user, you may wish to think about waiting for the inevitable 0.9.1 bugfix update before using emummc as your default boot option.
- You may especially wish to consider waiting if you are using Atmosphere on a unit with the RCM bug patched.
- Emummc is managed by editing the emummc section of "emummc/emummc.ini".
- To enable emummc, set
emummc!emummc_enabled
= 1.
- To enable emummc, set
- Support is included for redirecting NAND to a partition on the SD card.
- This can be done by setting
emummc!emummc_sector
to the start sector of your partition (e.g.,emummc_sector = 0x1A010000
).
- This can be done by setting
- Support is also included for redirecting NAND to a collection of loose files on the SD card.
- This can be done by setting
emummc!emummc_path
to the folder (with archive bit set) containing the NAND boot partitions' files "boot0" and "boot1", and the raw NAND image files "00", "01", "02", etc. (single "00" file with the whole NAND image requires exFAT mode while multipart NAND can be used in both exFAT and FAT32 modes).
- This can be done by setting
- The
Nintendo
contents directory can be redirected arbitrarily.- By default, it will be redirected to
emummc/Nintendo_XXXX
, whereXXXX
is the hexadecimal representation of the emummc's ID.- The current emummc ID may be selected by changing
emummc!emummc_id
in emummc.ini.
- The current emummc ID may be selected by changing
- This can be set to any arbitrary directory by setting
emummc!emummc_nintendo_path
.
- By default, it will be redirected to
- To create a backup usable for emummc, users may use tools provided by the hekate project.
- If, when using emummc, you encounter a bug, please be sure to report it -- that's the only way we can fix it. :)
- Please note, this support is very much beta/experimental.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.9.0, please see the official release notes.
Atmosphère 0.8.10
0.8.10 is Atmosphère's seventeenth official release.
fusee-primary was last updated in: 0.8.10.
With thanks to the @switchbrew team, Atmosphère 0.8.10 is bundled with hbl 2.1, and hbmenu 3.0.1.
The following was changed since the last release:
- A bug was fixed that could cause incorrect system memory allocation on 5.0.0.
- 5.0.0 should now correctly have an additional 12 MiB allocated for sysmodules.
- Atmosphère features which check button presses now consider all controllers, instead of just P1.
- Support was added for configuring language/region on a per-game basis.
- This is managed by editing
atmosphere/titles/<title id>/config.ini
for the game. - To edit title language, edit
override_config!override_language
.- The languages supported are
ja
,en-US
,fr
,de
,it
,es
,zh-CN
,ko
,nl
,pt
,ru
,zh-TW
,en-GB
,fr-CA
,es-419
,zh-Hans
,zh-Hant
.
- The languages supported are
- To edit title region, edit
override_config!override_region
.- The regions supported are
jpn
,usa
,eur
,aus
,chn
,kor
,twn
.
- The regions supported are
- This is managed by editing
- Atmosphère now provides a reimplementation of the
boot
system module.boot
is responsible for performing hardware initialization, showing the Nintendo logo, and repairing NAND on system update failure.- Atmosphère's
boot
implementation preserves AutoRCM during NAND repair.- NAND repair occurs when an unexpected shutdown or error happens during a system update.
- This fixes a final edge case where AutoRCM might be removed by HOS, which could cause a user to burn fuses.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.9
0.8.9 is Atmosphère's sixteenth official release.
fusee-primary was last updated in: 0.8.9.
With thanks to the @switchbrew team, Atmosphère 0.8.9 is bundled with hbl 2.1, and hbmenu 3.0.1.
The following was changed since the last release:
- A number of bugs were fixed, including:
- A data abort was fixed when mounting certain partitions on NAND.
- All Stratosphère system modules now only maintain a connection to
sm
when actively using it.- This helps mitigate the scenario where sm hits the limit of 64 active connections and crashes.
- This sometimes caused crashes when custom non-Atmosphère sysmodules were active and the user played certain games (ex: Smash's Stage Builder).
- fatal now uses the 8.0.0+ clkrst API, instead of silently failing to adjust clock rates on that firmware version.
- A wait loop is now performed when trying to get a session to
sm
, in the case wheresm:
is not yet registered.- This fixes a race condition that could cause a failure to boot under certain circumstances.
- libstratosphere's handling of domain object closing has been improved.
- Previously, this code could cause crashes/extremely odd behavior (misinterpreting what object a service is) under certain circumstances.
- An optional automatic reboot timer was added to fatal.
- By setting the system setting
atmosphere!fatal_auto_reboot_interval
to a non-zero u64 value, fatal can be made to automatically reboot after a certain number of milliseconds. - If the setting is zero or not present, fatal will wait for user input as usual.
- By setting the system setting
- Atmosphère now provides a reimplementation of the
ro
system module.ro
is responsible for loading dynamic libraries (NROs) on 3.0.0+.- On 1.0.0-2.3.0, this is handled by
loader
.
- On 1.0.0-2.3.0, this is handled by
- Atmosphere's
ro
provides this functionality (ldr:ro
,ro:dmnt
) on all firmware versions. - An extension was implemented to provide support for applying IPS patches to NROs.
- All patches at paths like
/atmosphere/nro_patches/<user-defined patch name>/<Hex Build-ID for NRO to patch>.ips
will be applied, allowing for easy distribution of patches. - Both the IPS and IPS32 formats are supported.
- All patches at paths like
- Atmosphère now provides a reimplementation of the
spl
system module.spl
(Secure Platform Services) is responsible for cryptographic operations, including all communications with the secure monitor (exosphère).- In the future, this may be used to provide extensions to the API for interacting with exosphère from userland.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.8
0.8.8 is Atmosphère's fifteenth official release.
fusee-primary was last updated in: 0.8.8.
With thanks to the @switchbrew team, Atmosphère 0.8.8 is bundled with hbl 2.1, and hbmenu 3.0.1.
The following was changed since the last release:
- Support was added for firmware version 8.0.0.
- Custom exception handlers were added to stratosphere modules.
- If a crash happens in a core atmosphere module now, instead of silently failing a reboot will occur to log the information to the SD card.
- A bug was fixed in creport that caused games to hang when crashing under certain circumstances.
- A bug was fixed that prevented maintenance mode from booting on 7.0.0+.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.7
0.8.7 is Atmosphère's fourteenth official release.
fusee-primary was last updated in: 0.8.4.
With thanks to the @switchbrew team, Atmosphère 0.8.7 is bundled with hbl 2.1, and hbmenu 3.0.1.
The following was changed since the last release:
- A few bugs were fixed that could cause fatal to fail to show an error under certain circumstances.
- A bug was fixed that caused an error when launching certain games (e.g. Hellblade: Senua's Sacrifice).
- Loader had support added in ams-0.8.4 for a new (7.0.0+) flag bit in NPDMs during process creation, but forgot to allow this bit to be set when validating the NPDM.
- dmnt's cheat virtual machine received new instructions.
- These allow for saving, restoring, or clearing registers to a secondary bank, effectively doubling the number of values that can be stored.
- SHA256 code has been swapped from linux code to libnx's new hw-accelerated cryptography API.
- Extensions were added to smcGetInfo:
- A ConfigItem was added to detect whether the current unit has the RCM bug patched.
- A ConfigItem was added to retrieve the current Atmosphère build hash.
- Exosphère now tells the kernel to enable user-mode exception handlers, which should allow for better crash reporting/detection from Atmosphère's modules in the future.
- Opt-in support was added for redirecting game save files to directories on the SD card.
- Please note, this feature is experimental, and may cause problems. Please use at your own risk (and back up your saves before enabling it), as it still needs testing.
- This can be enabled by setting
atmosphere!fsmitm_redirect_saves_to_sd
to 1 insystem_settings.ini
.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.6
0.8.6 is Atmosphère's thirteenth official release.
fusee-primary was last updated in: 0.8.4.
With thanks to the @switchbrew team, Atmosphère 0.8.6 is bundled with hbl 2.1, and hbmenu 3.0.1.
The following was changed since the last release:
- A number of bugs were fixed, including:
- A case of inverted logic was fixed in fs.mitm which prevented the flags system from working correctly.
- Time service access was corrected in both creport/fatal.
- This fixes the timestamps used in fatal/crash report filenames.
- A coherency issue was fixed in exosphère's Security Engine driver.
- This fixes some instability issues encountered when overclocking the CPU.
- Loader now unmaps NROs correctly, when ldr:ro is used.
- This fixes a crash when repeatedly launching the web applet on < 3.0.0.
- Usage of hidKeysDown was corrected to hidKeysHeld in several modules.
- This fixes a rare issue where keypresses may have been incorrectly detected.
- An issue with code filesystem unmounting was fixed in loader.
- This issue could occasionally cause a fatal error 0x1015 to be thrown on boot.
- Two bugs were fixed in the implementations of dmnt's cheat virtual machine.
- These could cause cheats to work incorrectly under certain circumstances.
- PM now uses a static buffer instead of a dynamically allocated one during process launch.
- This fixes a memory exhaustion problem when building with gcc 8.3.0.
- A workaround for a deadlock bug in Horizon's kernel on >= 6.0.0 was added in dmnt.
- This prevents a system hang when booting certain titles with cheats enabled (ex: Mario Kart 8 Deluxe).
- set.mitm now reads the system firmware version directly from the system version archive, instead of calling into set:sys.
- This fixes compatibility with 1.0.0, which now successfully boots again.
- dmnt's cheat virtual machine had some instruction set changes.
- A new opcode was added for beginning conditional blocks based on register contents.
- More addressing modes were added to the StoreRegisterToAddress opcode.
- These should allow for more complex cheats to be implemented.
- A new system for saving the state of cheat toggles between game boots was added.
- Toggles are now saved to
atmosphere/titles/<title id>/cheats/toggles.txt
when either toggles were successfully loaded from that file or the system settingatmosphere!dmnt_always_save_cheat_toggles
is non-zero. - This removes the need for manually setting cheats from all-on or all-off to the desired state on each game boot.
- Toggles are now saved to
- The default behavior for loader's HBL support was changed.
- Instead of launching HBL when album is launched without R held, loader now launches HBL when album or any game is launched with R held.
- Loader will now override any app in addition to a specific title id when
hbl_config!override_any_app
is true inloader.ini
.- Accordingly, the
hbl_config!title_id=app
setting was deprecated. Support will be removed in Atmosphère 0.9.0.
- Accordingly, the
- First-class support was added to loader and fs.mitm for enabling homebrew to launch web applets.
- Loader will now cause the "HtmlDocument" NCA path to resolve for whatever title HBL is taking over, even if it would not normally do so.
- fs.mitm will also now cause requests to mount the HtmlDocument content for HBL's title to open the
sdmc:/atmosphere/hbl_html
folder.- By default, this just contains a URL whitelist.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.5
0.8.5 is Atmosphère's twelfth official release.
fusee-primary was last updated in: 0.8.4.
With thanks to the @switchbrew team, Atmosphère 0.8.5 is bundled with hbl 2.1, and hbmenu 3.0.1.
The following was changed since the last release:
- Support was added for overriding content on a per-title basis, separate from HBL override.
- This allows for using mods on the same title that one uses to launch HBL.
- By default,
!L
is used for title content override (this is configurable by editingdefault_config!override_key
inloader.ini
) - This key combination can be set on a per-title basis by creating a
atmosphere/titles/<title id>/config.ini
, and editingoverride_config!override_key
.
- Content headers were added for the embedded files inside of fusee-secondary.
- This will allow non-fusee bootloaders (like
hekate
) to extract the components bundled inside release binaries. - This should greatly simplify the update process in the future, for users who do not launch Atmosphère using fusee.
- This will allow non-fusee bootloaders (like
- Support for cheat codes was added.
- These are handled by a new
dmnt
sysmodule, which will also reimplement Nintendo's Debug Monitor in the future. - Cheat codes can be enabled/disabled at application launch via a per-title key combination.
- For details, please see the cheat loading documentation.
- Cheat codes are fully backwards compatible with the pre-existing format, although a number of bugs have been fixed and some new features have been added.
- For details, please see the compatibility documentation.
- An HIPC service API was added (
dmnt:cht
), that will allow user homebrew to interface with and control Atmosphère's cheat manager.- Please see the relevant documentation.
- Full client code can be found in libstratosphere.
- Users interested in interfacing should see EdiZon, which should have support for interfacing with Atmosphère's API shortly after 0.8.5 releases.
- These are handled by a new
- A bug was fixed that would cause Atmosphère's fatal screen to not show on 1.0.0-2.3.0.
- A bug was fixed that caused Atmosphère's automatic ProdInfo backups to be corrupt.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.4
0.8.4 is Atmosphère's eleventh official release.
fusee-primary was last updated in: 0.8.4.
The following was changed since the last release:
- Support for 7.0.0/7.0.1 was added.
- This is facilitated through a new payload,
sept
, which can be signed, encrypted, and then loaded by Nintendo's TSEC firmware. sept
will derive the keys needed to boot new firmware, and then loadsept/payload.bin
off the SD card and jump to it.
- This is facilitated through a new payload,
- Recognition of applications for override/mitm has been improved.
- Nintendo's official Title ID range (
0x0100000000000000
-0x01FFFFFFFFFFFFFF
) is now enforced.
- Nintendo's official Title ID range (
- A deadlock condition was fixed involving libstratosphere mitm sysmodules.
- Kernel patches for JIT support were added (Thanks, @m4xw!).
- These loosen restrictions on caller process in svcControlCodeMemory.
set.mitm
andfs.mitm
were merged into a singleams_mitm
sysmodule.- This saves a process ID, allowing users to run one additional process up to the 0x40 process limit.
- A
bpc.mitm
component was added, performing custom behavior on shutdown/reboot requests fromam
or applications.- Performing a reboot from the reboot menu now reboots to atmosphere. This can be configured via
system_settings.ini
. - Performing a shutdown from the reboot menu now works properly with AutoRCM, and does a real shutdown.
- Performing a reboot from the reboot menu now reboots to atmosphere. This can be configured via
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.3
0.8.3 is Atmosphère's tenth official release.
fusee-primary was last updated in: 0.8.3.
The following was changed since the last release:
- A custom warmboot firmware was implemented, which does not perform anti-downgrade fuse checks.
- This fixes sleep mode when using a downgraded NAND.
- This also removes Atmosphère's final dependency on Nintendo's encrypted PK11 binary; all components are now re-implemented.
- The ExternalContentSource API was changed to not clear on failure.
- Content override now supports an "app" setting, that causes all applications to be overridden with HBL instead of a specific title.
- Note: because override keys are system-wide, using this setting will prevent using mods in games (as every game will be HBL).
- A bug was fixed causing incorrect fatal-error output when svcBreak was called on 5.0.0+.
- An extension was added to set.mitm to support customization of system settings.
- These are controlled by
atmosphere/system_settings.ini
, see here for documentation. - By default, this is used to disable error report uploading, and enable USB 3.0 superspeed when possible.
- These are controlled by
- An extension was added to sm, adding a new
sm:dmnt
service.- This can be used by a debug monitor in order to debug the registration state of various other services.
- A bug was fixed in the MitM API that could sometimes cause a system hang during boot.
- A change was made to the MitM API: in cases where sm would have returned 0xE15 when installing a mitm service, it now defers the result (following GetService semantics).
- Support for booting into maintenance mode by holding */- was added to PM.
- An extension was added to exosphere, adding a custom SMC that allows for DMA to IRAM.
- In addition, smcGetConfig was extended to reboot to a payload in IRAM at 0x40010000 when ConfigItem 65001 is set to 2.
- Fatal will now use this to reboot to sdmc:/atmosphere/reboot_payload.bin if present, when a vol button is pressed.
- An example homebrew ("reboot_to_payload") was also written and is now included with Atmosphère.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.
Atmosphère 0.8.2
0.8.2 is Atmosphère's ninth official release.
fusee-primary was last updated in: 0.8.2.
The following was changed since the last release:
- A number of bugs were fixed causing users to sometimes see
Key Derivation Failed!
.- KFUSE clock enable timings have been adjusted to allow time to stabilize before TSEC is granted access.
- A race condition was fixed that could cause wrong key data to be used on 6.2.0
- The TSEC firmware is now retried on failure, fixing a failure affecting ~1/50 boots on 6.2.0.
- A bug was fixed causing some modules to not work on firmware 1.0.0.
- A bug was fixed causing sleep mode to not work with debugmode enabled.
- As a result, debugmode is now enabled in the default BCT.ini.
- General system stability improvements to enhance the user's experience.
For information on the featureset supported by 0.8.0, please see the official release notes.