file_sys: Add support for the BOSS ext save data archive. (#7231)

This commit is contained in:
Steveice10 2023-12-03 14:02:23 -08:00 committed by GitHub
parent ea9f522c0c
commit 875f5eaad5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 36 additions and 17 deletions

View file

@ -349,14 +349,18 @@ void ArchiveManager::RegisterArchiveTypes() {
RegisterArchiveType(std::move(other_savedata_general_factory),
ArchiveIdCode::OtherSaveDataGeneral);
auto extsavedata_factory =
std::make_unique<FileSys::ArchiveFactory_ExtSaveData>(sdmc_directory, false);
auto extsavedata_factory = std::make_unique<FileSys::ArchiveFactory_ExtSaveData>(
sdmc_directory, FileSys::ExtSaveDataType::Normal);
RegisterArchiveType(std::move(extsavedata_factory), ArchiveIdCode::ExtSaveData);
auto sharedextsavedata_factory =
std::make_unique<FileSys::ArchiveFactory_ExtSaveData>(nand_directory, true);
auto sharedextsavedata_factory = std::make_unique<FileSys::ArchiveFactory_ExtSaveData>(
nand_directory, FileSys::ExtSaveDataType::Shared);
RegisterArchiveType(std::move(sharedextsavedata_factory), ArchiveIdCode::SharedExtSaveData);
auto bossextsavedata_factory = std::make_unique<FileSys::ArchiveFactory_ExtSaveData>(
sdmc_directory, FileSys::ExtSaveDataType::Boss);
RegisterArchiveType(std::move(bossextsavedata_factory), ArchiveIdCode::BossExtSaveData);
// Create the NCCH archive, basically a small variation of the RomFS archive
auto savedatacheck_factory = std::make_unique<FileSys::ArchiveFactory_NCCH>();
RegisterArchiveType(std::move(savedatacheck_factory), ArchiveIdCode::NCCH);

View file

@ -40,6 +40,7 @@ enum class ArchiveIdCode : u32 {
SystemSaveData = 0x00000008,
SDMC = 0x00000009,
SDMCWriteOnly = 0x0000000A,
BossExtSaveData = 0x12345678,
NCCH = 0x2345678A,
OtherSaveDataGeneral = 0x567890B2,
OtherSaveDataPermitted = 0x567890B4,