Atmosphere/stratosphere/ams_mitm/source/fs_mitm
Michael Scire b7ec64ea16 fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images.
Starting in 20.0.0, the browser needs more applet memory to function, so we can't steal as much any more.
Thus, we now steal 14 MB on 20.0.0+ instead of 40MB.

However, since this reduces memory available for custom system modules, we are adjusting to compensate.
ams.mitm's heap size has been reduced from 32MB to 12MB (recovering 20MB).
In addition, fs.mitm now uses a new mechanism for stealing memory from the applet pool while romfs is being built.

On net, we are compromising:
    * Custom sysmodules lose memory available to them.
        On 19.0.0/AMS 1.8.0, there was 30 MB available for custom sysmodules.
        Stealing 14 MB instead of 40 MB, we lose 26 MB of that. Reducing ams.mitm's usage will gain us back 20.
        Nintendo also appears to...use 4 extra MB, in 20.0.0, from my test homebrew.
        So on 20.0.0/AMS 1.9.0, there should be 20 MB available for custom sysmodules.
        On the bright side, on <20.0.0/AMS 1.9.0, I guess there will be 50 MB available for custom sysmodules now?
    * totk mods will lose the ability to...put every file in the romfs on sd card. There will be some unknown maximum filecount for totk mods.
        On the bright side, implementing the transient memory stealing should improve compatibility for some mods which strictly add files?
2025-05-09 11:55:21 -07:00
..
memlet fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images. 2025-05-09 11:55:21 -07:00
fs_mitm_service.cpp romfs/ams.mitm/pm: refactor to dynamically steal heap for certain games. (#2122) 2023-05-14 03:06:52 -07:00
fs_mitm_service.hpp fs.mitm: mitm glue for font replacement, before I forget 2023-05-08 17:40:10 -07:00
fs_shim.c ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
fs_shim.h fs.mitm: add OpenDataStorageWithProgramIndex support (theoretically, closes #1250) 2021-06-28 22:24:26 -07:00
fsmitm_boot0storage.cpp ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
fsmitm_boot0storage.hpp ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
fsmitm_calibration_binary_storage.cpp ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
fsmitm_calibration_binary_storage.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
fsmitm_layered_romfs_storage.cpp romfs/ams.mitm/pm: refactor to dynamically steal heap for certain games. (#2122) 2023-05-14 03:06:52 -07:00
fsmitm_layered_romfs_storage.hpp romfs/ams.mitm/pm: refactor to dynamically steal heap for certain games. (#2122) 2023-05-14 03:06:52 -07:00
fsmitm_module.cpp ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
fsmitm_module.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00
fsmitm_readonly_layered_filesystem.hpp ams: globally prefer R_RETURN to return for ams::Result 2022-03-26 14:48:33 -07:00
fsmitm_romfs.cpp fs.mitm: add and use memlet module to temporarily steal applet memory while building romfs images. 2025-05-09 11:55:21 -07:00
fsmitm_romfs.hpp romfs/ams.mitm/pm: refactor to dynamically steal heap for certain games. (#2122) 2023-05-14 03:06:52 -07:00
fsmitm_save_utils.cpp ams: use R_SUCCEED, R_THROW globally 2022-03-26 00:14:36 -07:00
fsmitm_save_utils.hpp ams: the copyright^H^H^H^H^H^H^Hmplex plane is the algebraic closure of the reals 2021-10-04 12:59:10 -07:00