summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2016-01-16 23:01:01 +0100
committerSubv <subv2112@gmail.com>2016-03-20 20:52:26 +0100
commit3aa42627a3a35d8a4fb9acdcced24977d1f269cd (patch)
tree187e8911ae3b960c080f486bbf9fdbeeaea980bf
parentHLE/FS: Fixed creating the config savefile when it doesn't exist. (diff)
downloadyuzu-3aa42627a3a35d8a4fb9acdcced24977d1f269cd.tar
yuzu-3aa42627a3a35d8a4fb9acdcced24977d1f269cd.tar.gz
yuzu-3aa42627a3a35d8a4fb9acdcced24977d1f269cd.tar.bz2
yuzu-3aa42627a3a35d8a4fb9acdcced24977d1f269cd.tar.lz
yuzu-3aa42627a3a35d8a4fb9acdcced24977d1f269cd.tar.xz
yuzu-3aa42627a3a35d8a4fb9acdcced24977d1f269cd.tar.zst
yuzu-3aa42627a3a35d8a4fb9acdcced24977d1f269cd.zip
-rw-r--r--src/core/file_sys/archive_backend.h2
-rw-r--r--src/core/file_sys/archive_extsavedata.cpp2
-rw-r--r--src/core/file_sys/archive_extsavedata.h4
-rw-r--r--src/core/file_sys/archive_savedata.cpp8
-rw-r--r--src/core/hle/service/cfg/cfg.cpp1
-rw-r--r--src/core/hle/service/fs/archive.cpp5
-rw-r--r--src/core/hle/service/fs/archive.h2
-rw-r--r--src/core/hle/service/fs/fs_user.cpp2
8 files changed, 12 insertions, 14 deletions
diff --git a/src/core/file_sys/archive_backend.h b/src/core/file_sys/archive_backend.h
index 800ac1541..94cda172f 100644
--- a/src/core/file_sys/archive_backend.h
+++ b/src/core/file_sys/archive_backend.h
@@ -172,7 +172,7 @@ public:
*/
virtual ResultCode Format(const Path& path, const FileSys::ArchiveFormatInfo& format_info) = 0;
- /*
+ /**
* Retrieves the format info about the archive with the specified path
* @param path Path to the archive
* @return Format information about the archive or error code
diff --git a/src/core/file_sys/archive_extsavedata.cpp b/src/core/file_sys/archive_extsavedata.cpp
index e83a6153d..ca7fd5c5e 100644
--- a/src/core/file_sys/archive_extsavedata.cpp
+++ b/src/core/file_sys/archive_extsavedata.cpp
@@ -117,7 +117,7 @@ ResultVal<ArchiveFormatInfo> ArchiveFactory_ExtSaveData::GetFormatInfo(const Pat
return ResultCode(ErrorDescription::FS_NotFormatted, ErrorModule::FS, ErrorSummary::InvalidState, ErrorLevel::Status);
}
-void ArchiveFactory_ExtSaveData::WriteIcon(const Path& path, u8* icon_data, u32 icon_size) {
+void ArchiveFactory_ExtSaveData::WriteIcon(const Path& path, const u8* icon_data, u32 icon_size) {
std::string game_path = FileSys::GetExtSaveDataPath(GetMountPoint(), path);
FileUtil::IOFile icon_file(game_path + "icon", "wb+");
icon_file.WriteBytes(icon_data, icon_size);
diff --git a/src/core/file_sys/archive_extsavedata.h b/src/core/file_sys/archive_extsavedata.h
index 48e092ee7..1ebe0529f 100644
--- a/src/core/file_sys/archive_extsavedata.h
+++ b/src/core/file_sys/archive_extsavedata.h
@@ -36,13 +36,13 @@ public:
const std::string& GetMountPoint() const { return mount_point; }
- /*
+ /**
* Writes the SMDH icon of the ExtSaveData to file
* @param path Path of this ExtSaveData
* @param icon_data Binary data of the icon
* @param icon_size Size of the icon data
*/
- void WriteIcon(const Path& path, u8* icon_data, u32 icon_size);
+ void WriteIcon(const Path& path, const u8* icon_data, u32 icon_size);
private:
/**
diff --git a/src/core/file_sys/archive_savedata.cpp b/src/core/file_sys/archive_savedata.cpp
index 82f49af5d..c2d32ed7e 100644
--- a/src/core/file_sys/archive_savedata.cpp
+++ b/src/core/file_sys/archive_savedata.cpp
@@ -26,14 +26,14 @@ static std::string GetSaveDataContainerPath(const std::string& sdmc_directory) {
}
static std::string GetSaveDataPath(const std::string& mount_location, u64 program_id) {
- u32 high = program_id >> 32;
- u32 low = program_id & 0xFFFFFFFF;
+ u32 high = (u32)(program_id >> 32);
+ u32 low = (u32)(program_id & 0xFFFFFFFF);
return Common::StringFromFormat("%s%08x/%08x/data/00000001/", mount_location.c_str(), high, low);
}
static std::string GetSaveDataMetadataPath(const std::string& mount_location, u64 program_id) {
- u32 high = program_id >> 32;
- u32 low = program_id & 0xFFFFFFFF;
+ u32 high = (u32)(program_id >> 32);
+ u32 low = (u32)(program_id & 0xFFFFFFFF);
return Common::StringFromFormat("%s%08x/%08x/data/00000001.metadata", mount_location.c_str(), high, low);
}
diff --git a/src/core/hle/service/cfg/cfg.cpp b/src/core/hle/service/cfg/cfg.cpp
index bb2c55612..525432957 100644
--- a/src/core/hle/service/cfg/cfg.cpp
+++ b/src/core/hle/service/cfg/cfg.cpp
@@ -310,6 +310,7 @@ ResultCode UpdateConfigNANDSavegame() {
ResultCode FormatConfig() {
ResultCode res = DeleteConfigNANDSaveFile();
+ // The delete command fails if the file doesn't exist, so we have to check that too
if (!res.IsSuccess() && res.description != ErrorDescription::FS_NotFound)
return res;
// Delete the old data
diff --git a/src/core/hle/service/fs/archive.cpp b/src/core/hle/service/fs/archive.cpp
index 63381250a..676a2ee56 100644
--- a/src/core/hle/service/fs/archive.cpp
+++ b/src/core/hle/service/fs/archive.cpp
@@ -308,11 +308,8 @@ ResultVal<Kernel::SharedPtr<File>> OpenFileFromArchive(ArchiveHandle archive_han
return ERR_INVALID_HANDLE;
auto backend = archive->OpenFile(path, mode);
- if (backend.Failed()) {
+ if (backend.Failed())
return backend.Code();
- return ResultCode(ErrorDescription::FS_NotFound, ErrorModule::FS,
- ErrorSummary::NotFound, ErrorLevel::Status);
- }
auto file = Kernel::SharedPtr<File>(new File(backend.MoveFrom(), path));
return MakeResult<Kernel::SharedPtr<File>>(std::move(file));
diff --git a/src/core/hle/service/fs/archive.h b/src/core/hle/service/fs/archive.h
index b17d7c902..006606740 100644
--- a/src/core/hle/service/fs/archive.h
+++ b/src/core/hle/service/fs/archive.h
@@ -183,7 +183,7 @@ ResultVal<u64> GetFreeBytesInArchive(ArchiveHandle archive_handle);
*/
ResultCode FormatArchive(ArchiveIdCode id_code, const FileSys::ArchiveFormatInfo& format_info, const FileSys::Path& path = FileSys::Path());
-/*
+/**
* Retrieves the format info about the archive of the specified type and path.
* The format info is supplied by the client code when creating archives.
* @param id_code The id of the archive
diff --git a/src/core/hle/service/fs/fs_user.cpp b/src/core/hle/service/fs/fs_user.cpp
index ff7a9975e..3ec7ceb30 100644
--- a/src/core/hle/service/fs/fs_user.cpp
+++ b/src/core/hle/service/fs/fs_user.cpp
@@ -250,7 +250,7 @@ static void CreateFile(Service::Interface* self) {
FileSys::Path file_path(filename_type, filename_size, filename_ptr);
- LOG_DEBUG(Service_FS, "type=%d size=%lld data=%s", filename_type, filename_size, file_path.DebugStr().c_str());
+ LOG_DEBUG(Service_FS, "type=%d size=%llu data=%s", filename_type, filename_size, file_path.DebugStr().c_str());
cmd_buff[1] = CreateFileInArchive(archive_handle, file_path, file_size).raw;
}