Skip to content

Releases: Atmosphere-NX/Atmosphere

Atmosphère 1.5.1

14 Mar 00:27
Compare
Choose a tag to compare

1.5.1 is Atmosphère's seventieth official release.

Please be sure to update fusee when upgrading to 1.5.1. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.5.1 is bundled with hbl 2.4.3, and hbmenu 3.5.1.

The following was changed since the last release:

  • fatal was updated to reduce memory footprint.
    • Starting in 16.0.0, official fatal has no framebuffer or rendering logic, and instead calls other system service commands to draw the screen.
    • However, these commands aren't usable by atmosphère (too small rendering window, bad color support).
    • To reduce the relative memory footprint differential between atmosphère and official code, the framebuffer (2 MB) is now dynamically allocated when needed.
      • This will try to allocate from multiple pools (preferring System > System_NonSecure > Application).
      • This technically requires that 2 MB be available in at least one of these pools for the fatal screen to render (otherwise, a reboot-to-black-and-white-fatal will occur), but this should be a non-issue in almost all cases.
  • A feature was added to optionally mirror the bluetooth pairing database to the SD card (thanks @ndeadly).
    • This allows device pairings to be automatically kept in-sync across sysmmc/all emummcs.
    • This is opt-in, and can be controlled by setting atmosphere!enable_external_bluetooth_db = u8!0x1.
    • When enabled, the pairing database will be synchronized to /atmosphere/bluetooth_devices.db.
  • General system stability improvements to enhance the user's experience.

And the following was changed in 1.5.0:

  • Support was added for 16.0.0
    • mesosphère was updated to reflect the latest official kernel behavior.
    • ncm was updated to reflect the latest official behavior.
    • Many FS apis were updated under the hood to reflect the latest official behavior.
    • Please Note: 16.0.0 made breaking changes to a number of system APIs, including in FS/NCM/Shared Font commands that some homebrew programs may use.
      • These programs may encounter strange errors, and may need to be recompiled with a libnx updated to support 16.0.0's changes to function properly.
      • If you are an impacted developer, please contact SciresM#0524 on discord for assistance.
  • A number of minor issues were fixed and improvements were made, including:
    • An issue was fixed that could cause GPIO outputs to be misconfigured under certain circumstances.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.5, please see the official release notes.

Atmosphère 1.5.0

23 Feb 01:45
Compare
Choose a tag to compare

1.5.0 is Atmosphère's sixty-ninth official release.

Please be sure to update fusee when upgrading to 1.5.0. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.5.0 is bundled with hbl 2.4.3, and hbmenu 3.5.1.

The following was changed since the last release:

  • Support was added for 16.0.0
    • mesosphère was updated to reflect the latest official kernel behavior.
    • ncm was updated to reflect the latest official behavior.
    • Many FS apis were updated under the hood to reflect the latest official behavior.
    • Please Note: 16.0.0 made breaking changes to a number of system APIs, including in FS/NCM/Shared Font commands that some homebrew programs may use.
      • These programs may encounter strange errors, and may need to be recompiled with a libnx updated to support 16.0.0's changes to function properly.
      • If you are an impacted developer, please contact SciresM#0524 on discord for assistance.
  • A number of minor issues were fixed and improvements were made, including:
    • An issue was fixed that could cause GPIO outputs to be misconfigured under certain circumstances.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.5, please see the official release notes.

Atmosphère 1.4.1

24 Jan 22:08
Compare
Choose a tag to compare

1.4.1 is Atmosphère's sixty-eighth official release.

Please be sure to update fusee when upgrading to 1.4.1. fusee-primary no longer exists, and will not work any more.

Note: The release build was updated on 2023/01/24 at 7:00 PM PST to fix a crash when closing WebApplets. The updated zip has a build hash of "-7a69f2f06".

With thanks to the @switchbrew team, Atmosphère 1.4.1 is bundled with hbl 2.4.3, and hbmenu 3.5.1.

The following was changed since the last release:

  • A number of minor issues were fixed and improvements were made, including:
    • dmnt cheat toggle files are no longer ignored when they are missing a trailing newline.
    • The mechanism for automatically cleaning up erpt_reports added in 1.3.0 was fixed.
      • This was actually just very fundamentally broken and has never worked, but it is verified working now.
      • Please note: Your first boot into 1.4.1 may take much longer than usual (showing only a black screen), if the automatic cleanup mechanism is triggered and thousands of files are deleted. This should be one-time and not more than a minute or so, if it occurs.
    • Minor fixes were made in mesosphère to match official kernel behavior (spin lock assembly was corrected, wrong result on failure in in GetProcessId was corrected).
    • A missing call to GetSdStatus when initializing SD cards at non uhs-i mode was added in the sdmmc driver.
  • ams.mitm's memory usage was increased by 16 MB, to prevent crashing when building romfs for games with obscene file counts.
    • To quote the changelog for 1.2.3: "Animal Crossing's 2.0.0 update contains >99000 files [...] It's really hard to imagine any game being worse than Animal Crossing".
    • As it turns out, Fire Emblem: Engage has ~186000 files, and is approximately twice as bad as animal crossing.
    • Half of the additional memory here is taken from the applet pool; no issues are expected to arise from this, but please report anything you may run into.
    • As usual, if you encounter a game that exhausts ams.mitm's memory (crashing it) when loading layeredfs mods, please contact SciresM#0524.
      • I am jinxing myself by saying this, but it's really hard to imagine any game being worse than Fire Emblem: Engage, but if it happens again I will drop everything to fix it as usual.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.4, please see the official release notes.

Atmosphère 1.4.0

12 Oct 16:26
Compare
Choose a tag to compare

1.4.0 is Atmosphère's sixty-seventh official release.

Please be sure to update fusee when upgrading to 1.4.0. fusee-primary no longer exists, and will not work any more.

Note: The following was changed since pre-release:

  • A bug was fixed in fusee that would cause a black screen when booting with nogc patches on and exFAT-supporting firmware installed.
  • A bug was fixed that could cause the gdbstub to report the wrong file/module name when debugging homebrew.
  • hbl was updated to version 2.4.3.

With thanks to the @switchbrew team, Atmosphère 1.4.0 is bundled with hbl 2.4.3, and hbmenu 3.5.1.

The following was changed since the last release:

  • Support was added for 15.0.0.
    • mesosphère was updated to reflect the latest official kernel behavior.
    • ncm was updated to reflect the latest official kernel behavior.
  • A number of minor issues were fixed and improvements were made, including:
    • The capacity limit on registered add-on contents was fixed in NCM to reflect the increase that occurred in 12.0.0.
    • An off-by-one was fixed in mesosphere when computing the new value for an address arbiter signaled with ModifyByWaitingCountIfEqual.
    • dmnt.gen2's gdbstub now sanitizes thread names to prevent invalid characters from breaking gdb.
    • dmnt.gen2's gdbstub now reports the architecture tag correctly when attached to 32-bit processes.
    • Support for program-specific html manual content overrides was added for non-hbl takeover context.
    • A bug was fixed in how emummc constructed the alternate Nintendo directory path.
      • Previously, this was using /*/Nintendo/Nintendo instead of /*/Nintendo.
      • Code was added to automatically move the old folders to the new ones when booting into emummc.
    • A bug was fixed in boot that caused an incorrectly low input voltage limit to be set.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.4, please see the official release notes.

Atmosphère 1.3.2

29 Apr 23:27
Compare
Choose a tag to compare

1.3.2 is Atmosphère's sixty-sixth official release.

Please be sure to update fusee when upgrading to 1.3.2. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.3.2 is bundled with hbl 2.4.1, and hbmenu 3.5.1.

The following was changed since the last release:

  • Support was improved for 14.0.0+.
    • loader was updated to reflect the latest official behaviors.
    • ro was updated to reflect the latest official behaviors.
  • A number of minor issues were fixed and improvements were made, including:
    • A memory leak was fixed in filesystem path management; this could cause a crash when launching games ~100 times, or when deleting/re-downloading games.
    • A bug was fixed that could cause threads to not see a newly signaled semaphore.
    • A number of minor inaccuracies were fixed in the updated FileSystem APIs.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.3, please see the official release notes.

Atmosphère 1.3.1

05 Apr 01:00
Compare
Choose a tag to compare

1.3.1 is Atmosphère's sixty-fifth official release.

Please be sure to update fusee when upgrading to 1.3.1. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.3.1 is bundled with hbl 2.4.1, and hbmenu 3.5.0.

The following was changed since the last release:

  • Support was added for 14.1.0.
  • A number of minor under the hood improvements to accuracy were made to better reflect latest official system module behavior, particularly around FS apis.
  • General system stability improvements to enhance the user's experience.

And the following was changed in 1.3.0:

  • Support was added for 14.0.0.
    • mesosphère was updated to reflect the latest official kernel behavior.
    • erpt was updated to reflect the latest official behaviors.
    • pm was updated to reflect the latest official behaviors.
    • fatal was updated to reflect the latest official behaviors.
  • A mechanism for automatically cleaning up erpt_reports was added.
    • When booting, if the console has more than 1000 reports inside /atmosphere/erpt_reports, the folder will be cleaned to empty.
    • This behavior can be disabled by setting erpt!disable_automatic_report_cleanup = u8!0x1 in system_settings.ini.
  • Atmosphère's build system was re-written, and now allows globally building for various builds/configs.
    • All boards now automatically support release/debugging/auditing targets; it is now possible to build a full debugging/auditing build of atmosphère for the first time.
  • Support was added for compiling libstratosphère to run on PC.
    • The currently implemented/tested targets are Windows (x64), Linux (x64, arm64), macOS (x64, arm64).
      • If you are a developer interested in adding support for another target, please reach out to SciresM#0524 on discord.
    • This is intended to finally allow sanely testing Atmosphère's code, by allowing most of it to run on a PC (with access to a debugger) instead of on game console hardware.
    • In addition, this will allow making PC tools which reuse code written for Atmosphère directly..
    • Please Note: This has no relation to interacting with official software on PC whatsoever. This really allows for making tests and self-contained atmosphère-based command-line tools; the Atmosphère project continues to have zero interest in attempting to run official software of any kind.
    • In the course of adding this support (and working on tooling using it), a number of fairly major revisions were made to stratosphere (particularly surrounding filesystem code).
      • Please Note: A number of changes made for this (and ones necessary in the process of adding support for 14.0.0) are api-breaking.
        • If you're a developer and any of this caused your code to break, please feel free to contact SciresM#0524 for help updating your program.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.3, please see the official release notes.

Atmosphère 1.3.0

23 Mar 20:58
Compare
Choose a tag to compare

1.3.0 is Atmosphère's sixty-fourth official release. Who doesn't love round numbers?

Please be sure to update fusee when upgrading to 1.3.0. fusee-primary no longer exists, and will not work any more.

Please note: Atmosphère 1.3.0 is currently in pre-release, and issues may be found that need to be fixed before full release.

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

Note: The fatal system module was updated in the pre-release zip on 2022/03/23 at 7:20 PM PDT to fix failure to detect the power button (and to auto-reboot) from the fatal system module error screen. The updated zip has a build hash of "-b69fa1357".

With thanks to the @switchbrew team, Atmosphère 1.3.0 is bundled with hbl 2.4.1, and hbmenu 3.5.0.

The following was changed since the last release:

  • Support was added for 14.0.0.
    • mesosphère was updated to reflect the latest official kernel behavior.
    • erpt was updated to reflect the latest official behaviors.
    • pm was updated to reflect the latest official behaviors.
    • fatal was updated to reflect the latest official behaviors.
  • A mechanism for automatically cleaning up erpt_reports was added.
    • When booting, if the console has more than 1000 reports inside /atmosphere/erpt_reports, the folder will be cleaned to empty.
    • This behavior can be disabled by setting erpt!disable_automatic_report_cleanup = u8!0x1 in system_settings.ini.
  • Atmosphère's build system was re-written, and now allows globally building for various builds/configs.
    • All boards now automatically support release/debugging/auditing targets; it is now possible to build a full debugging/auditing build of atmosphère for the first time.
  • Support was added for compiling libstratosphère to run on PC.
    • The currently implemented/tested targets are Windows (x64), Linux (x64, arm64), macOS (x64, arm64).
      • If you are a developer interested in adding support for another target, please reach out to SciresM#0524 on discord.
    • This is intended to finally allow sanely testing Atmosphère's code, by allowing most of it to run on a PC (with access to a debugger) instead of on game console hardware.
    • In addition, this will allow making PC tools which reuse code written for Atmosphère directly..
    • Please Note: This has no relation to interacting with official software on PC whatsoever. This really allows for making tests and self-contained atmosphère-based command-line tools; the Atmosphère project continues to have zero interest in attempting to run official software of any kind.
    • In the course of adding this support (and working on tooling using it), a number of fairly major revisions were made to stratosphere (particularly surrounding filesystem code).
      • Please Note: A number of changes made for this (and ones necessary in the process of adding support for 14.0.0) are api-breaking.
        • If you're a developer and any of this caused your code to break, please feel free to contact SciresM#0524 for help updating your program.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.3, please see the official release notes.

Atmosphère 1.2.6

20 Jan 00:46
Compare
Choose a tag to compare

1.2.6 is Atmosphère's sixty-third official release.

Please be sure to update fusee when upgrading to 1.2.6. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.2.6 is bundled with hbl 2.4.1, and hbmenu 3.5.0.

The following was changed since the last release:

  • Support was added for 13.2.1.
  • A number of minor issues were fixed and improvements were made, including:
    • A minor performance improvement was implemented in service table dispatch by sorting and binary-searching the service command table instead of using linear search.
    • Static initialization logic in Atmosphere was made much more regular.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.2, please see the official release notes.

Atmosphère 1.2.5

01 Dec 01:01
Compare
Choose a tag to compare

1.2.5 is Atmosphère's sixty-second official release.

Please be sure to update fusee when upgrading to 1.2.5. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.2.5 is bundled with hbl 2.4.1, and hbmenu 3.5.0.

The following was changed since the last release:

  • Support was added for 13.2.0.
  • A number of minor issues were fixed and improvements were made, including:
    • A bug was fixed that caused mesosphère to underreport the total memory size by 8MB for certain games which use newer system-resource-size memory management.
      • This caused FIFA 19 to crash, and possibly other issues.
    • Memory management changes were made to sm that save 0x5000 of memory.
    • A microoptimization was made to the way mesosphère manages updating the debug register for hardware single-step support.
    • Support was fixed for enabling usb!usb30_force_enabled on 13.0.0+.
    • The work-in-progress unit testing framework was updated to use doctest instead of catch2.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.2, please see the official release notes.

Atmosphère 1.2.4

04 Nov 20:49
Compare
Choose a tag to compare

1.2.4 is Atmosphère's sixty-first official release.

Please be sure to update fusee when upgrading to 1.2.4. fusee-primary no longer exists, and will not work any more.

With thanks to the @switchbrew team, Atmosphère 1.2.4 is bundled with hbl 2.4.1, and hbmenu 3.5.0.

The following was changed since the last release:

  • Changes were made to the way fs.mitm builds images when providing a layeredfs romfs.
    • Cache management (to avoid unnecessary rebuild) was revised, to add a grace period of ~500ms-1s between process closing romfs image and ams.mitm needing to rebuild if romfs is re-opened.
      • This makes our cache much more effective, previously we were re-building romfs several times.
    • RomFS image ownership was overhauled, with a new reference-counting implementation added (used to implement the above grace period).
      • Certain games (e.g. Puyo Puyo Tetris 2, probably others) were sensitive to this timing, and could use access patterns which would trigger creation of romfs image while previous romfs image was in the middle of destructor.
      • This could cause a fatal error, because the destructor for the old image could run simultaneously with building the new image.
    • This also provides a speedup versus the 1.2.3 code, with Animal Crossing now taking ~8 fewer seconds to get past the Nintendo Switch logo.
  • General system stability improvements to enhance the user's experience.

And the following was changed in 1.2.3:

  • Because ams.TMA is taking longer to develop than expected, experimental support for Atmosphère's gdbstub as a standalone is now available.
    • Please Note: The GDBstub is new and may have bugs/need work. If you find issues, please report them to SciresM#0524 -- all help finding/fixing bugs is appreciated, here.
      • Generally speaking, if you would like to report information about fixes needed/discuss development of the gdbstub, join ReSwitched's #dev-support channel.
    • To enable it, set atmosphere!enable_standalone_gdbstub = u8!0x1 in system_settings.ini.
      • The standalone also requires atmosphere!enable_htc = u8!0x0, but this should be the case for everyone since ams.TMA isn't actually usable yet.
    • Once enabled, open the devkitPro provided-gdb (aarch64-none-elf-gdb for 64-bit or arm-none-eabi-gdb for 32-bit).
      • The standalone stub exposes itself on port 22225 -- so the command to connect is target extended-remote <ip address>:22225.
      • Type info os processes to get a list of process IDs that can be attached to.
        • The stub should work on both system programs, games, and homebrew -- but please note that debugging certain processes (like sockets) can cause hang due to the stub using them itself.
    • Software break-points, hardware break-points, hardware watch-points, and hardware single-step are all supported/implemented.
    • The following monitor commands are currently supported:
      • monitor get info: Get process info, address space layout, and information on modules.
      • monitor get mappings: Get all memory mappings.
      • monitor get mapping <addr>: Get the memory mapping for a specific address.
      • monitor wait application: Causes the stub to wait for an application to be launched. The next application will be started suspended.
        • User is expected to send attach <pid> after launching, which will cause attach-on-first-instruction. Failure to attach may cause system instability, this probably needs work.
  • Changes were made to the way fs.mitm builds images when providing a layeredfs romfs.
    • Animal Crossing's 2.0.0 update contains >99000 files, and has tables so big that we ran out of memory even after the optimizations made in 0.10.5.
      • Previously, we used fixed-sized 0x40000 work buffers for file/directory tables and simultaneously built hash/content tables in one loop over files/directories.
      • We now iterate over the file/directory tables multiple times, first once to determine the hash table indices, then repeatedly to build hash tables, then once to build content tables.
      • We also now allow smaller-than-0x40000 work buffers, trying half-as-big buffers until allocation succeeds (or work buffer would be <0x4000, which is a safeguard against truly horrible performance).
    • There is a slight speed penalty to these changes, but it's on the order of seconds for the worst case (Animal Crossing) and trivial for most games with reasonable tables.
    • If you encounter a game that exhausts ams.mitm's memory (crashing it) when loading layeredfs mods, please contact SciresM#0524.
      • It's really hard to imagine any game being worse than Animal Crossing, but if it happens again I will drop everything to fix it as usual.
  • creport now attempts to parse symbol tables if present.
    • If a game executable has a symbol for a given address, the function-relative-offset will now be printed after the module-relative-offset.
  • General system stability improvements to enhance the user's experience.

For information on the featureset supported by 1.2, please see the official release notes.