Archives: Implemented ExtSaveData and SharedExtSaveData

They will be stored in /extsavedata/SDMC and /extsavedata/NAND respectively.
Also redirect some APT_A functions to their APT_U equivalents.
Implemented the gamecoin.dat file in SharedExtSaveData in the PTM module.
Implemented formatting the savegame.
Retake a previous savegame if it exists instead of reporting them as not formatted every time a game is loaded.
This commit is contained in:
Subv
2014-12-29 13:04:37 -05:00
parent 3d14eb2853
commit 2c89d4d5cd
17 changed files with 268 additions and 60 deletions

View File

@ -46,6 +46,9 @@ public:
Path(const char* path) : type(Char), string(path) {
}
Path(std::vector<u8> binary_data) : type(Binary), binary(std::move(binary_data)) {
}
Path(LowPathType type, u32 size, u32 pointer) : type(type) {
switch (type) {
case Binary:
@ -174,6 +177,20 @@ public:
virtual ~ArchiveBackend() {
}
/**
* Tries to open the archive of this type with the specified path
* @param path Path to the archive
* @return ResultCode of the operation
*/
virtual ResultCode Open(const Path& path) = 0;
/**
* Deletes the archive contents and then re-creates the base folder
* @param path Path to the archive
* @return ResultCode of the operation, 0 on success
*/
virtual ResultCode Format(const Path& path) const = 0;
/**
* Get a descriptive name for the archive (e.g. "RomFS", "SaveData", etc.)
*/