[UPDATE] Atmosphère version 0.10.1 now available

atmosphere.png

EDIT: Atmosphère 0.10.1 has been released, which is a proper stable version and it includes the same feature set as 0.10.0, plus a good number of bug fixes & internal improvements. Because this update has been released earlier than expected, the temporary HID mitm submodule's removal has been postponed to the next version.

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) [NOTE: this has since been postponed to 0.10.2, see the edit at the beginning of the article]. 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:
changelog said:
0.10.1 is Atmosphère's twenty-fourth official release.

fusee-primary was last updated in: 0.10.0.

With thanks to the @switchbrew team, Atmosphère 0.10.1 is bundled with hbl 2.3, and hbmenu 3.2.0.

The following was changed since the last release:

  • A bug was fixed that caused memory reallocation to the system pool to work improperly on firmware 5.0.0 and above.
    • Atmosphere was always trying to deallocate memory away from the applet pool and towards the system pool.
      • The intent of this is to facilitate running more custom sysmodules/atmosphere binaries.
    • However, while memory was always successfully taken away from the applet pool, on 5.0.0+ granting it to the system pool did not work for technical reasons.
      • If you are interested in the technical details, talk to SciresM.
    • This has now been fixed by adding new kernel patches, and memory is correctly granted to the system pool as intended.
  • Atmosphere's library system has been overhauled:
    • libstratosphere's repository has been rebranded, more generally, to "Atmosphere-libs".
      • In addition to libstratosphere, a new general library for not-stratosphere-specific code has been added.
        • This is currently named libvapours.
      • In the future, kernel functionality will be available as libmesosphere.
    • The build system for stratosphere system modules has been similarly overhauled.
  • The boot system module is now loaded into non-secure memory.
    • This helps somewhat to prevent fragmentation of the system memory heap.
  • A number of other bugs were fixed, including:
    • A bug was fixed that could cause memory corruption when redirecting certain Romfs content.
    • A bug was fixed that could cause an infinite loop when redirecting certain Romfs content.
    • A bug was fixed that could cause certain NROs to fail to load.
      • This caused the latest version of Super Smash Bros to display "An error has occurred" on launch.
    • A bug was fixed that caused input/output array sizes for certain circumstances to be calculated incorrectly.
      • This caused cheats to fail to function properly.
    • C++ exception code is now more thoroughly removed from stratosphere executables.
      • This saves a minor amount of memory.
    • A number of minor logic inversions were fixed in libstratosphere.
      • These did not affect any code currently used by released Atmosphere binaries.
  • Please note: Because this update is releasing so soon after 0.10.0, the removal of the temporary hid-mitm has been postponed to 0.10.2.
    • Please ensure your homebrew is updated.
  • Random number generation now uses TinyMT instead of XorShift.

  • General system stability improvements to enhance the user's experience.
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.

:arrow: Source
:download: Releases
:arrow: Discussion Thread
 

cots

Banned!
Banned
Joined
Dec 29, 2014
Messages
1,533
Trophies
0
XP
1,952
Country
United States
Does anyone know if the temporary HID mitm sysmodule is an external module if so where's it located? I rather not have 2/3 of homebrew suddenly become incompatible in the next release.
 

x65943

the end is nigh, buy doge coin
Global Moderator
GBAtemp Patron
Joined
Jun 23, 2014
Messages
5,070
Trophies
3
Location
ΗΠΑ
XP
12,244
Country
United States
Coincidence that AMS releases an update after SXOS updated? :Thonk:
It's pre-release

My guess is they were working out the bugs and waiting to publish until it was more stable - but quickly cobbled together what they had for release after the SX announcement - so as to not be judged as behind the scene
 
  • Like
Reactions: GuyInDogSuit

chaoskagami

G̷̘̫̍̈́̊̓̈l̴̙͔̞͠i̵̳͊ţ̸̙͇͒̓c̵̬̪̯̥̳͒͌̚h̵̹̭͛̒̊̽̚
Developer
Joined
Mar 26, 2016
Messages
1,365
Trophies
0
Location
↑↑↓↓←→←→BA
Website
github.com
XP
2,204
Country
United States
Does anyone know if the temporary HID mitm sysmodule is an external module if so where's it located? I rather not have 2/3 of homebrew suddenly become incompatible in the next release.

No. All modules that are part of atmosphere are baked into fusee-secondary at build-time, iirc.

If you want an external hid-mitm you'll have to build it from source and dump it in a contents folder with boot2.flag.
 
Last edited by chaoskagami,

SciresM

Developer
Developer
Joined
Mar 21, 2014
Messages
946
Trophies
2
Age
31
XP
7,655
Country
United States
It's pre-release

My guess is they were working out the bugs and waiting to publish until it was more stable - but quickly cobbled together what they had for release after the SX announcement - so as to not be judged as behind the scene

No, I announced this pre-release plan in a livestream on Wednesday (when I gave an ETA of today/tomorrow).

The pre-release thing is just so that people don't complain if I replace the release binary to fix any bugs that might be found.
 

bbcali89

Well-Known Member
Member
Joined
Sep 16, 2013
Messages
418
Trophies
0
Age
33
Location
Chicago
XP
725
Country
United States
@SciresM do I just replace the files on atmosphere folder? How does upgrading atmosphere work? Thank you! - people are also saying hekate needs to be updated is that true?
 

Canna

Bad Ass Poisonous Mushroom
Member
Joined
Jul 14, 2018
Messages
1,382
Trophies
0
Age
34
Location
AZ
XP
1,480
Country
United States
Thanks for releasing,Atmosphere team
Pre-release so we should expect bugs and errors right.
I appreciate the continued work.
 

TheZander

1337
Member
Joined
Feb 1, 2008
Messages
2,098
Trophies
1
Location
Level 7
XP
3,278
Country
United States
I don't know any stuff but could someone explain what it means to have code that becomes faster and easier to manage? Like the basis that code management goes by? What makes code fast like the building of atmosphere or the running of it is faster?


Either way congrats to the team and keep it up and screw the jerks.
 
General chit-chat
Help Users
    KennieDaMeanie @ KennieDaMeanie: Back then pre-builts were actually decent no one really cared about fancy gaming rgbs high...