summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/file_sys')
-rw-r--r--src/core/file_sys/archive_backend.h5
-rw-r--r--src/core/file_sys/archive_systemsavedata.cpp5
-rw-r--r--src/core/file_sys/archive_systemsavedata.h2
3 files changed, 9 insertions, 3 deletions
diff --git a/src/core/file_sys/archive_backend.h b/src/core/file_sys/archive_backend.h
index eb1fdaa1f..e2979be17 100644
--- a/src/core/file_sys/archive_backend.h
+++ b/src/core/file_sys/archive_backend.h
@@ -45,6 +45,11 @@ public:
{
}
+ Path(const char* path):
+ type(Char), string(path)
+ {
+ }
+
Path(LowPathType type, u32 size, u32 pointer):
type(type)
{
diff --git a/src/core/file_sys/archive_systemsavedata.cpp b/src/core/file_sys/archive_systemsavedata.cpp
index 5da1ec946..392c3cd39 100644
--- a/src/core/file_sys/archive_systemsavedata.cpp
+++ b/src/core/file_sys/archive_systemsavedata.cpp
@@ -16,8 +16,9 @@
namespace FileSys {
-Archive_SystemSaveData::Archive_SystemSaveData(const std::string& mount_point)
- : DiskArchive(mount_point) {
+Archive_SystemSaveData::Archive_SystemSaveData(const std::string& mount_point, u64 save_id)
+ : DiskArchive(Common::StringFromFormat("%s%08X/%08X/", mount_point.c_str(),
+ static_cast<u32>(save_id & 0xFFFFFFFF), static_cast<u32>((save_id >> 31) & 0xFFFFFFFF))) {
LOG_INFO(Service_FS, "Directory %s set as SystemSaveData.", this->mount_point.c_str());
}
diff --git a/src/core/file_sys/archive_systemsavedata.h b/src/core/file_sys/archive_systemsavedata.h
index c3ebb7c99..443e27091 100644
--- a/src/core/file_sys/archive_systemsavedata.h
+++ b/src/core/file_sys/archive_systemsavedata.h
@@ -19,7 +19,7 @@ namespace FileSys {
/// specifically nand:/data/<ID0>/sysdata/<SaveID-Low>/<SaveID-High>
class Archive_SystemSaveData final : public DiskArchive {
public:
- Archive_SystemSaveData(const std::string& mount_point);
+ Archive_SystemSaveData(const std::string& mount_point, u64 save_id);
/**
* Initialize the archive.