core/filesystem: Implement accurate SaveData system

- Add transactional ExtraData with journaling (6 service functions)
- Implement atomic commit with crash recovery
- Add HOS-compliant path normalization
- Fix all ResultUnknown returns and add 9 HOS error codes
- Add directory journaling with /0 (committed) and /1 (working)
- Implement cross-tree directory moves

Signed-off-by: Zephyron <zephyron@citron-emu.org>
This commit is contained in:
Zephyron
2025-10-21 17:49:59 +10:00
parent b85fd5fc73
commit 98c6ac8961
17 changed files with 1347 additions and 83 deletions

View File

@@ -128,6 +128,12 @@ add_library(core STATIC
file_sys/romfs.h
file_sys/romfs_factory.cpp
file_sys/romfs_factory.h
file_sys/directory_save_data_filesystem.cpp
file_sys/directory_save_data_filesystem.h
file_sys/fs_path_normalizer.cpp
file_sys/fs_path_normalizer.h
file_sys/savedata_extra_data_accessor.cpp
file_sys/savedata_extra_data_accessor.h
file_sys/savedata_factory.cpp
file_sys/savedata_factory.h
file_sys/sdmc_factory.cpp