• Yep, it's that time of the year again, and I'm not referring to the holiday season: @SciresM and ReSwitched's Atmosphère CFW has received yet another update! Version 0.10.0 can now be grabbed from the project's official repo and it features a pretty hefty changelog. However, before we proceed with the highlights, there is a quick disclaimer that needs to be made: this version is currently marked as a pre-release and, while the build will transition to a stable release after enough time has passed without bug reports, you may encounter issues and other unexpected behaviours. If any bugs will be discovered during the aforementioned testing period, the devs will try to look for a fix and update the binaries whenever needed - so be sure to check the repo periodically if something doesn't seem to work as it should.

    With that out of the way, let's start with a feature most of you likely expected: Atmosphère is now compatible with the Switch's latest firmware, aka 9.1.0. So, whether your console got accidentally updated or you always like to stay on the newest possible OFW, you've now got your back covered! But it doesn't end there, as the Stratosphère refactor that had been started way back in version 0.9.2 has now been completed, bringing benefits both to devs and users alike: on one hand, libstratosphere's new IPC-related code is faster and easier to manage, and on the other, the CFW as a whole uses much less system memory to run, allowing you to load a higher number of sysmodules at the same time! Also, Atmosphère's configuration system has received some changes, as it now includes in code its default values, thus no longer requiring config files if you wish to use the built-in settings. This completely removes the need to bundle any default config files in the releases' ZIP archives, so you no longer have to worry about updates overwriting your own custom settings! Speaking of which, HBL override keys have been improved too, as you can now specify different keys (and states) for programs and apps. The default override keys have also changed - applications will only be overridden with HBL if R is held, while the same will happen with the album applet if R is not held.

    A few paths have been moved around in 0.10.0 as well. The process override directory (used, for example, for LayeredFS mods amongst other things) has changed from /atmosphere/titles/ to /atmosphere/contents/. However, you do not need to touch anything yourself, as the CFW will scan for the old directory and rename it for you if found. On the other hand, Atmosphère now expects all config files to be in /atmosphere/config/ - as stated before, you don't need any config files if you're okay with the default settings, but you will need to move them over if that's not the case (plus, loader.ini has been renamed to override_config.ini).

    Finally, it has also been announced that the temporary HID mitm sysmodule introduced in v0.9.4 will be removed in the CFW's next point release (0.10.1). This will further free memory available to custom sysmodules and let you mitm HID without issues, but it will also break homebrew that had been compiled with old libnx versions due to internal changes with OFW >= 9.0.0. Make sure that whichever homebrew you use has been updated to avoid any future issues!

    There's much, much more in this release, like increasing the default amount of memory reserved to applets, allowing homebrew access to the PMU registers and a ton of bug fixes! Here is the full changelog:
    Quoted from changelog:
    0.10.0 is Atmosphère's twenty-third official release.

    fusee-primary was last updated in: 0.10.0.

    With thanks to the @switchbrew team, Atmosphère 0.10.0 is bundled with hbl 2.2, and hbmenu 3.1.1.

    • Please note: Atmosphère 0.10.0 is currently in pre-release.
      • If any bugs are reported while Atmosphère is in pre-release, they will be fixed and the build will be updated.
      • 0.10.0 will transition to release after a short amount of time has passed without pressing bug reports.

    The following was changed since the last release:

    • Support was added for 9.1.0
      • Please note: The temporary hid-mitm added in Atmosphere 0.9.x will be removed in Atmosphere 0.10.1.
        • Please ensure your homebrew is updated.

    • The Stratosphere rewrite was completed.
      • libstratosphere was rewritten as part of Stratosphere's refactor.
        • Code responsible for providing and managing IPC services was greatly improved.
          • The new code is significantly more accurate (it is bug-for-bug compatible with Nintendo's code), and significantly faster.

      • ams.mitm was rewritten as part of Stratosphere's refactor.
        • Saves redirected to the SD card are now separated for sysmmc vs emummc.
        • Please note: If you find any bugs, please report them so they can be fixed.

    • Thanks to the rewrite, Atmosphere now uses significantly less memory.
      • Roughly 10 additional megabytes are now available for custom system modules to use.
      • This means you can potentially run more custom system modules simultaneously.
        • If system modules are incompatible, please ask their authors to reduce their memory footprints.

    • Atmosphere's configuration layout has had major changes.
      • Configuration now lives inside /atmosphere/config/.
      • Atmosphere code now knows what default values should be, and includes them in code.
        • It is no longer an error if configuration inis are not present.

      • Correspondingly, Atmosphere no longer distributes default configuration inis.
        • Templates are provided in /atmosphere/config_templates.

      • loader.ini was renamed to override_config.ini.
      • This fixes the longstanding problem that atmosphere updates overwrote user configuration when extracted.

    • Atmosphere's process override layout was changed.
      • Atmosphere now uses the /atmosphere/contents directory, instead of /atmosphere/titles.
        • This goes along with a refactoring to remove all reference to "title id" from code, as Nintendo does not use the term.

      • To make this transition easier, a temporary functionality has been added that migrates folders to the new directory.
        • When booting into 0.10.0, Atmosphere will rename /atmosphere/titles/<program id> to /atmosphere/contents/<program id>.
          • This functionality may or may not be removed in some future update.

        • This should solve any transition difficulties for the typical user.
        • Please make sure that any future mods you install extract to the correct directory.

    • Support for configuring override keys for hbl was improved.
      • The key used to override applications versus a specific program can now be different.
        • The key to override a specific program can be managed via override_key.
        • The key to override any app can be managed via override_any_app_key.

      • Default override behavior was changed.
        • By default, atmosphere will now override the album applet with hbl unless R is held.
        • By default, atmosphere will now override any application with hbl only if R is held.

    • The default amount of applet memory reserved has been slightly increased.
      • This allows the profile selector applet to work by default in applet mode.

    • The way process override status is captured was changed.
      • Process override keys are now captured exactly once, when the process is created.
        • This fixes the longstanding issue where letting go of the override button partway into the process launch could cause problems.

      • The Mitm API was changed to pass around override status.
        • Mitm services now know what keys were held when the client was created, as well as whether the client is HBL/should override contents.

      • An extension was added to pm:info to allow querying a process's override status.

    • Thanks to process override capture improvements, hbl html behavior has been greatly improved.
      • Web applets launched by hbl will now always see the /atmosphere/hbl_html filesystem

    • Support was added to exosphere for enabling usermode access to the PMU registers.
      • This can be controlled via exosphere!enable_user_pmu_access in BCT.ini.

    • An enormous number of minor bugs were fixed.
      • dmnt's cheat VM had a fix for an inversion in opcode behavior.
      • An issue was fixed in fs.mitm's management of domain object IDs that could lead to system corruption in rare cases.
      • The Mitm API no longer silently fails when attempting to handle commands passing C descriptors.
        • On previous atmosphere versions, certain commands to FS would silently fail due to this...
          • No users reported any visible errors, but it was definitely a problem behind the scenes.

        • These commands are now handled correctly.

      • Atmosphere can now display a fatal error screen significantly earlier in the boot process, if things go wrong early on.
      • The temporary hid mitm will no longer sometimes cause games to fail to detect input.
      • Mitm Domain object ID management no longer desynchronizes from the host process.
      • An issue was fixed that could cause service acquisition to hang forever if certain sm commands were called in a precise order.
      • An off-by-one was fixed that could cause memory corruption in server memory management.
      • ... and too many more bugs fixed to reasonably list them all

    • General system stability improvements to enhance the user's experience.

    For information on the featureset supported by 0.10.0, please see the official release notes.
    Click to expand...