Atmosphere CFW v0.9.3 Released

Atmosphere CFW v0.9.3 Released


It's 8/8 and SciresM has updated the Atmosphere CFW to v0.9.3, which brings with it some changes, such as faster boot times (accomplished by yet another external module), automatic bis key backup (for iPatched RCM bricks), properly detecting and displaying that you're in an emuMMC NAND (wasn't that not possible?) :) and some other general fixes and optimizations to provide yet a more stable user experience.

What's New?

Quote:
0.9.3 is Atmosphère's twenty-first official release.

fusee-primary was last updated in: 0.9.3.

With thanks to the [@switchbrew] team, Atmosphère 0.9.3 is bundled with [hbl] 2.2, and [hbmenu] 3.1.0.

The following was changed since the last release:

*  Thanks to hexkyz, fusee's boot sequence has been greatly optimized.
    *  Memory training is now managed by a separate binary (`fusee-mtc`, loaded by fusee-primary before fusee-secondary).
    *  Unnecessarily long splash screen display times were reduced.
    *  The end result is that Atmosphere now boots *significantly* faster.
    *  Note: This means fusee-primary must be updated for Atmosphere to boot successfully.
*  The version string was adjusted, and now informs users whether or not they are using emummc.
*  Atmosphere now automatically backs up the user's BIS keys on boot.
    *  This should prevent a user from corrupting nand without access to a copy of the keys needed to fix it.
        *  This is especially relevant on ipatched units, where the RCM vulnerability is not an option for addressing bricks.
*  The `pm` system module was rewritten as part of Stratosphere's ongoing refactor.
    *  Support was added for forward-declaring a mitm'd service before a custom user sysmodule is launched.
        *  This should help resolve dependency issues with service registration times.
    *  SM is now informed of every process's title id, including built-in system modules.
*  The `creport` system module was rewritten as part of Stratosphere's ongoing refactor.
    *  creport now dumps up to 0x100 of stack from each thread in the target process.
    *  A few bugs were fixed, including one that caused creport to incorrectly dump process dying messages.
*  Defaults were added to `system_settings.ini` for controlling hbloader's memory usage in applet mode.
    *  These defaults reserve enough memory so that homebrew can launch swkbd while in applet mode.
*  The `fatal` system module was rewritten as part of Stratosphere's ongoing refactor.
    *  Incorrect display output ("2000-0000") has been fixed. Fatal will now correctly show 2162-0002 when this occurs.
    *  A longstanding bug in how fatal manages the displays has been fixed, and official display init behavior is now matched precisely.
*  General system stability improvements to enhance the user's experience.

Description

Atmosphere was the first and the widely used Custom Firmware solution for Nintendo Switch hybrid video gaming consoles. Vanilla Atmosphere allows you to run homebrew and access other features of the Nintendo Switch console. Atmosphere is also the base for the Kosmos SD Card package, ReiNX and is used in Xecuter's SX OS.

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](https://github.com/switchbrew/libnx) project and the extensive [documentation, research and tool development](http://switchbrew.org) pertaining to the Nintendo Switch.
*   devkitPro for the [devkitA64](https://devkitpro.org/) toolchain and libnx support.
*   ReSwitched Team for additional [documentation, research and tool development](https://reswitched.team/) pertaining to the Nintendo Switch.
*   ChaN for the [FatFs](http://elm-chan.org/fsw/ff/00index_e.html) module.
*   Marcus Geelnard for the [bcl-1.2.0](https://sourceforge.net/projects/bcl/files/bcl/bcl-1.2.0) library.
*   naehrwert and st4rk for the original [hekate](https://github.com/nwert/hekate) project and its hwinit code base.
*   CTCaer for the continued [hekate](https://github.com/CTCaer/hekate) project's fork and the [minerva_tc](https://github.com/CTCaer/minerva_tc) 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](https://github.com/Atmosphere-NX/Atmosphere-splashes).
*   *All those who actively contribute to the Atmosphère repository.*

Changelog

0.9.3 is Atmosphère's twenty-first official release.

fusee-primary was last updated in: 0.9.3.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.9.3 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.2, and [hbmenu](https://github.com/switchbrew/nx-hbmenu) 3.1.0.

The following was changed since the last release:

*   Thanks to hexkyz, fusee's boot sequence has been greatly optimized.
    *   Memory training is now managed by a separate binary (`fusee-mtc`, loaded by fusee-primary before fusee-secondary).
    *   Unnecessarily long splash screen display times were reduced.
    *   The end result is that Atmosphere now boots *significantly* faster. :)
    *   Note: This means fusee-primary must be updated for Atmosphere to boot successfully.
*   The version string was adjusted, and now informs users whether or not they are using emummc.
*   Atmosphere now automatically backs up the user's BIS keys on boot.
    *   This should prevent a user from corrupting nand without access to a copy of the keys needed to fix it.
        *   This is especially relevant on ipatched units, where the RCM vulnerability is not an option for addressing bricks.
*   The `pm` system module was rewritten as part of Stratosphere's ongoing refactor.
    *   Support was added for forward-declaring a mitm'd service before a custom user sysmodule is launched.
        *   This should help resolve dependency issues with service registration times.
    *   SM is now informed of every process's title id, including built-in system modules.
*   The `creport` system module was rewritten as part of Stratosphere's ongoing refactor.
    *   creport now dumps up to 0x100 of stack from each thread in the target process.
    *   A few bugs were fixed, including one that caused creport to incorrectly dump process dying messages.
*   Defaults were added to `system_settings.ini` for controlling hbloader's memory usage in applet mode.
    *   These defaults reserve enough memory so that homebrew can launch swkbd while in applet mode.
*   The `fatal` system module was rewritten as part of Stratosphere's ongoing refactor.
    *   Incorrect display output ("2000-0000") has been fixed. Fatal will now correctly show 2162-0002 when this occurs.
    *   A longstanding bug in how fatal manages the displays has been fixed, and official display init behavior is now matched precisely.
*   General system stability improvements to enhance the user's experience.

0.9.2 is Atmosphère's twentieth official release.

fusee-primary was last updated in: 0.9.2.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.9.2 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-hbmenu) 3.0.1.

The following was changed since the last release:

*   A number of emummc bugfixes were added (all thanks to [@m4xw](https://github.com/m4xw)'s hard work). The following is a summary of emummc changes:
    *   Support for file-based emummc instances was fixed.
        *   Please note: file-based emummc is still unoptimized, and so may be much slower than partition-based.
        *   This speed differential should hopefully be made better in a future emummc update.
    *   The way emummc handles power management was completely overhauled.
        *   Emummc now properly handles init/de-init, and now supports low voltage mode.
        *   Much better support for shutdown was added, which should assuage corruption/synchronization problems.
        *   This should also improve support for more types of SD cards.
    *   A bug was fixed that caused emummc to not work on lower system versions due to missing SVC access.
    *   Please note: The configuration entries used for emummc have been changed.
        *   `emummc_` prefixes have been removed, since they are superfluous given the `emummc` category they are under.
        *   As an example, `emummc!emummc_enabled` is now `emummc!enabled`.
        *   INI configurations made by [@CTCaer](https://github.com/CTCaer)'s [tool](https://github.com/ctcaer/hekate/releases/latest) (which is the recommended way to manage emummc) should automatically work as expected/be corrected.
            *   If you do not wish to use the above, you will need to manually correct your configuration file.
    *   General system stability improvements to enhance the user's experience.
*   Stratosphere is currently in the process of being re-written/refactored.
    *   Stratosphere was my (SciresM's) first C++ project, ever -- the code written for it a year ago when I was learning C++ is/was of much lower quality than code written more recently.
    *   Code is thus being re-written for clarity/style/to de-duplicate functionality, with much being moved into libstratosphere.
    *   Stratosphere will, after the rewrite, globally use the `sts::` namespace -- this should greatly enhancing libstratosphere's ability to providefunctionality for system modules.
    *   The rewritten modules consistently have lower memory footprints, and should be easier to maintain going forwards.
    *   The `sm`, `boot`, `spl`, `ro`, and `loader` modules have been tackled so far.
*   General system stability improvements to enhance the user's experience.

0.9.1 is Atmosphère's nineteenth official release.

fusee-primary was last updated in: 0.9.1.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.9.1 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-hbmenu) 3.0.1.

The following was changed since the last release:

*   Support was added for 8.1.0.
*   Please note, emummc is still considered beta/experimental -- this is not the inevitable bugfix update for it, although some number of bugs have been fixed. :)
*   General system stability improvements to enhance the user's experience.

0.9.0 is Atmosphère's eighteenth official release.

fusee-primary was last updated in: 0.9.0.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.9.0 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-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.
*   `dmnt`'s Cheat VM was extended to add a new debug opcode.
*   With thanks to/collaboration with [@m4xw](https://github.com/m4xw) and [@CTCaer](https://github.com/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.
    *   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`).
    *   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).
    *   The `Nintendo` contents directory can be redirected arbitrarily.
        *   By default, it will be redirected to `emummc/Nintendo_XXXX`, where `XXXX` is the hexadecimal representation of the emummc's ID.
            *   The current emummc ID may be selected by changing `emummc!emummc_id` in emummc.ini.
        *   This can be set to any arbitrary directory by setting `emummc!emummc_nintendo_path`.
    *   To create a backup usable for emummc, users may use tools provided by the [hekate](https://github.com/CTCaer/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. :)
*   General system stability improvements to enhance the user's experience.


0.8.10 is Atmosphère's seventeenth official release.

fusee-primary was last updated in: 0.8.10.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.8.10 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-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`.
    *   To edit title region, edit `override_config!override_region`.
        *   The regions supported are `jpn`, `usa`, `eur`, `aus`, `chn`, `kor`, `twn`.
*   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.

0.8.9 is Atmosphère's sixteenth official release.

fusee-primary was last updated in: 0.8.9.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.8.9 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-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 where `sm:` 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.
*   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`.
    *   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//.ips will be applied, allowing for easy distribution of patches.
        *   Both the IPS and IPS32 formats are supported.
*   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.

0.8.8 is Atmosphère's fifteenth official release.

fusee-primary was last updated in: 0.8.8.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.8.8 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-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](https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.8.0).

0.8.7 is Atmosphère's fourteenth official release.

fusee-primary was last updated in: 0.8.4.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.8.7 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-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 in `system_settings.ini`.
*   General system stability improvements to enhance the user's experience.

0.8.6 is Atmosphère's thirteenth official release.

fusee-primary was last updated in: 0.8.4.

With thanks to the [@switchbrew](https://github.com/switchbrew) team, Atmosphère 0.8.6 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.1, and [hbmenu](https://github.com/switchbrew/nx-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 (greater than or equal to) 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 setting `atmosphere!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.
*   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 in `loader.ini`.
        *   Accordingly, the `hbl_config!title_id=app` setting was deprecated. Support will be removed in Atmosphère 0.9.0.
*   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.

Links & Downloads
https://github.com/Atmosphere-NX/Atmosphere/releases/tag/0.9.2

Post a Comment

0 Comments