Atmosphere/stratosphere/ams_mitm/source/fs_mitm
Michael Scire 5eabca7f04 ams.mitm: more romfs building space/time tradeoffs.
This is needed for Animal Crossing 2.0.0, which has >99000 fucking files.

We now do several passes over dir/file tables instead of one pass,
doing entire hash tables before we touch dir/file tables. Thus we
no longer need to simultaneously allocate hash table and dir/file table space.

In addition, we now do repeated passes building a segment of hash tables
at a time, when insufficient memory is available. Similar is also now the
case for file/dir tables, we try 0x40000 work buffer and divide by 2
until we successfully alloc. We don't allow a work buffer <0x4000, for
write/perf reasons. If a game triggers that, let me know I guess.

Hard to imagine a worse torture-test for this code than animal crossing.
2021-11-03 23:52:38 -07:00
..
fs_mitm_service.cpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
fs_mitm_service.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
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 strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
fsmitm_boot0storage.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
fsmitm_calibration_binary_storage.cpp strat: use m_ for member variables 2021-10-10 00:14:06 -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 strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
fsmitm_layered_romfs_storage.hpp strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
fsmitm_module.cpp sf: prevent emitting mitm/defer code unless server in process supports it 2021-10-11 19:01:27 -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 strat: use m_ for member variables 2021-10-10 00:14:06 -07:00
fsmitm_romfs.cpp ams.mitm: more romfs building space/time tradeoffs. 2021-11-03 23:52:38 -07:00
fsmitm_romfs.hpp ams.mitm: more romfs building space/time tradeoffs. 2021-11-03 23:52:38 -07:00
fsmitm_save_utils.cpp 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_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