1.5.4
Atmosphere-NX/Atmosphere1.5.4May 14, 2023by SciresM
AI Summary
This release implements experimental functionality to prevent crashes when building romfs for games with high file counts, specifically addressing *The Legend of Zelda: Tears of the Kingdom*.
Key Highlights
- Experimental memory stealing for romfs building
- Fixes crashes for games with obscene file counts
- No memory cost when playing without mods
- Dynamic memory allocation for ams.mitm
New Features
- Dynamic memory stealing for romfs building
Full Release Notes
**1.5.4** is Atmosphère's seventy-third official release.
**Please be sure to update fusee when upgrading to 1.5.4**. fusee-primary no longer exists, and will not work any more.
With thanks to the @switchbrew team, Atmosphère 1.5.4 is bundled with [hbl](https://github.com/switchbrew/nx-hbloader) 2.4.3, and [hbmenu](https://github.com/switchbrew/nx-hbmenu) 3.5.1.
The following was changed since the last release:
* Experimental new functionality was implemented to prevent crashing when building romfs for certain games with obscene file counts.
* This includes both Fire Emblem: Engage (~190000 files), and The Legend of Zelda: Tears of the Kingdom (~300000) files.
* The solution involved adding functionality to ams.mitm/pm to dynamically steal memory from the application (and system) pool as needed when the games have romfs mods.
* No memory is taken, and there is no cost to this functionality when playing without mods (or with overrides disabled).
* The Legend of Zelda: Tears of the Kingdom is currently the absolute worst case game, requiring ~48 MB of memory to build a romfs image to play with mods.
* Right now, the memory is sourced as follows: 32 MB (base ams.mitm heap), 10 MB (stolen from application pool), 8 MB (dynamically stolen from system pool).
* This is 50 MB, which allows a little overhead in the worst case (prevents crashing due to exhausting the heap for other allocations in ams.mitm).
* Zelda is remarkably sensitive to memory being stolen from the application pool, tolerating no more than 16 MB on 1.0.0 and 12 MB on 1.1.0. I have chosen to steal 10 MB, to be safe, for now.
* This may break on a future game update, but I will fix it if and when that happens. There is no perfect solution; the game simply requires too much memory to support mods flawlessly, and I am forced to compromise.
* 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 The Legend of Zelda: Tears of the Kingdom, 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.5, please see [the official release notes](https://github.com/Atmosphere-NX/Atmosphere/releases/tag/1.5.0-prerelease).