From cfd7b219f6ad9116057fbe64bbb5dfd0afbbe29c Mon Sep 17 00:00:00 2001 From: Subv Date: Sat, 3 Jan 2015 19:01:46 -0500 Subject: SaveDataCheck: Move the files to nand/title under /nand/title/high/low/content/00000000.app.romfs --- src/core/file_sys/archive_savedatacheck.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/core/file_sys/archive_savedatacheck.cpp') diff --git a/src/core/file_sys/archive_savedatacheck.cpp b/src/core/file_sys/archive_savedatacheck.cpp index 233158a0c..1b1e01c6e 100644 --- a/src/core/file_sys/archive_savedatacheck.cpp +++ b/src/core/file_sys/archive_savedatacheck.cpp @@ -23,7 +23,8 @@ ResultCode Archive_SaveDataCheck::Open(const Path& path) { // this archive again with a different path, will corrupt the previously open file. auto vec = path.AsBinary(); const u32* data = reinterpret_cast(vec.data()); - std::string file_path = Common::StringFromFormat("%s%08x%08x.bin", mount_point.c_str(), data[1], data[0]); + std::string file_path = Common::StringFromFormat("%s%08x/%08x/content/00000000.app.romfs", + mount_point.c_str(), data[1], data[0]); FileUtil::IOFile file(file_path, "rb"); std::fill(raw_data.begin(), raw_data.end(), 0); -- cgit v1.2.3 From 71a063f45cba961ee07730f4ab79f2bcc3ff9b5b Mon Sep 17 00:00:00 2001 From: Subv Date: Sat, 3 Jan 2015 20:46:05 -0500 Subject: Archives: Changed the way paths are built for the archives. Each archive now takes a mount point of either NAND or SDMC, and builds its own directory structure there, trying to simulate an HLE-friendly hardware layout --- src/core/file_sys/archive_savedatacheck.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/core/file_sys/archive_savedatacheck.cpp') diff --git a/src/core/file_sys/archive_savedatacheck.cpp b/src/core/file_sys/archive_savedatacheck.cpp index 1b1e01c6e..dcd563773 100644 --- a/src/core/file_sys/archive_savedatacheck.cpp +++ b/src/core/file_sys/archive_savedatacheck.cpp @@ -5,13 +5,24 @@ #include "common/file_util.h" #include "core/file_sys/archive_savedatacheck.h" +#include "core/hle/service/fs/archive.h" //////////////////////////////////////////////////////////////////////////////////////////////////// // FileSys namespace namespace FileSys { -Archive_SaveDataCheck::Archive_SaveDataCheck(const std::string& mount_loc) : mount_point(mount_loc) { +static std::string GetSaveDataCheckContainerPath(const std::string& mount_point) { + return Common::StringFromFormat("%stitle/", mount_point.c_str(), ID0); +} + +static std::string GetSaveDataCheckPath(const std::string& mount_point, u32 high, u32 low) { + return Common::StringFromFormat("%s%08x/%08x/content/00000000.app.romfs", + mount_point.c_str(), high, low); +} + +Archive_SaveDataCheck::Archive_SaveDataCheck(const std::string& mount_loc) : +mount_point(GetSaveDataCheckContainerPath(mount_loc)) { } ResultCode Archive_SaveDataCheck::Open(const Path& path) { @@ -23,8 +34,7 @@ ResultCode Archive_SaveDataCheck::Open(const Path& path) { // this archive again with a different path, will corrupt the previously open file. auto vec = path.AsBinary(); const u32* data = reinterpret_cast(vec.data()); - std::string file_path = Common::StringFromFormat("%s%08x/%08x/content/00000000.app.romfs", - mount_point.c_str(), data[1], data[0]); + std::string file_path = GetSaveDataCheckPath(mount_point, data[1], data[0]); FileUtil::IOFile file(file_path, "rb"); std::fill(raw_data.begin(), raw_data.end(), 0); -- cgit v1.2.3 From 90dffe3fc16dd60166c53bafa2b3157737f39225 Mon Sep 17 00:00:00 2001 From: Subv Date: Sun, 4 Jan 2015 09:10:27 -0500 Subject: Archives: Make SYSTEM_ID and SDCARD_ID strings --- src/core/file_sys/archive_savedatacheck.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/file_sys/archive_savedatacheck.cpp') diff --git a/src/core/file_sys/archive_savedatacheck.cpp b/src/core/file_sys/archive_savedatacheck.cpp index dcd563773..6f45d13dd 100644 --- a/src/core/file_sys/archive_savedatacheck.cpp +++ b/src/core/file_sys/archive_savedatacheck.cpp @@ -13,7 +13,7 @@ namespace FileSys { static std::string GetSaveDataCheckContainerPath(const std::string& mount_point) { - return Common::StringFromFormat("%stitle/", mount_point.c_str(), ID0); + return Common::StringFromFormat("%s%s/title", mount_point.c_str(), SYSTEM_ID.c_str()); } static std::string GetSaveDataCheckPath(const std::string& mount_point, u32 high, u32 low) { -- cgit v1.2.3 From 123a76c9c8ba56f7f7ce28fed4e8a3302471b215 Mon Sep 17 00:00:00 2001 From: Subv Date: Mon, 5 Jan 2015 16:40:36 -0500 Subject: SaveDataCheck: Fixed a typo --- src/core/file_sys/archive_savedatacheck.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core/file_sys/archive_savedatacheck.cpp') diff --git a/src/core/file_sys/archive_savedatacheck.cpp b/src/core/file_sys/archive_savedatacheck.cpp index 6f45d13dd..82449d1b7 100644 --- a/src/core/file_sys/archive_savedatacheck.cpp +++ b/src/core/file_sys/archive_savedatacheck.cpp @@ -13,7 +13,7 @@ namespace FileSys { static std::string GetSaveDataCheckContainerPath(const std::string& mount_point) { - return Common::StringFromFormat("%s%s/title", mount_point.c_str(), SYSTEM_ID.c_str()); + return Common::StringFromFormat("%s%s/title/", mount_point.c_str(), SYSTEM_ID.c_str()); } static std::string GetSaveDataCheckPath(const std::string& mount_point, u32 high, u32 low) { -- cgit v1.2.3 From 5244ac0e9c784c402946616f913a8b4fe63af88c Mon Sep 17 00:00:00 2001 From: Subv Date: Tue, 6 Jan 2015 15:02:30 -0500 Subject: Archives: Addressed some comments --- src/core/file_sys/archive_savedatacheck.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/core/file_sys/archive_savedatacheck.cpp') diff --git a/src/core/file_sys/archive_savedatacheck.cpp b/src/core/file_sys/archive_savedatacheck.cpp index 82449d1b7..a7a507536 100644 --- a/src/core/file_sys/archive_savedatacheck.cpp +++ b/src/core/file_sys/archive_savedatacheck.cpp @@ -12,8 +12,8 @@ namespace FileSys { -static std::string GetSaveDataCheckContainerPath(const std::string& mount_point) { - return Common::StringFromFormat("%s%s/title/", mount_point.c_str(), SYSTEM_ID.c_str()); +static std::string GetSaveDataCheckContainerPath(const std::string& nand_directory) { + return Common::StringFromFormat("%s%s/title/", nand_directory.c_str(), SYSTEM_ID.c_str()); } static std::string GetSaveDataCheckPath(const std::string& mount_point, u32 high, u32 low) { @@ -21,8 +21,8 @@ static std::string GetSaveDataCheckPath(const std::string& mount_point, u32 high mount_point.c_str(), high, low); } -Archive_SaveDataCheck::Archive_SaveDataCheck(const std::string& mount_loc) : -mount_point(GetSaveDataCheckContainerPath(mount_loc)) { +Archive_SaveDataCheck::Archive_SaveDataCheck(const std::string& nand_directory) : + mount_point(GetSaveDataCheckContainerPath(nand_directory)) { } ResultCode Archive_SaveDataCheck::Open(const Path& path) { -- cgit v1.2.3