summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2019-04-29 00:42:36 +0200
committerZach Hilman <zachhilman@gmail.com>2019-09-30 23:20:49 +0200
commitf2073217a4b074f53e1932eaf41cf08d6296b21f (patch)
treeea7d7fddd9023e42ac37a2219efecaaa6a1ac03c
parentvfs: Add function to extract ZIP file into virtual filesystem (diff)
downloadyuzu-f2073217a4b074f53e1932eaf41cf08d6296b21f.tar
yuzu-f2073217a4b074f53e1932eaf41cf08d6296b21f.tar.gz
yuzu-f2073217a4b074f53e1932eaf41cf08d6296b21f.tar.bz2
yuzu-f2073217a4b074f53e1932eaf41cf08d6296b21f.tar.lz
yuzu-f2073217a4b074f53e1932eaf41cf08d6296b21f.tar.xz
yuzu-f2073217a4b074f53e1932eaf41cf08d6296b21f.tar.zst
yuzu-f2073217a4b074f53e1932eaf41cf08d6296b21f.zip
Diffstat (limited to '')
-rw-r--r--src/core/file_sys/bis_factory.cpp5
-rw-r--r--src/core/file_sys/bis_factory.h2
-rw-r--r--src/core/hle/service/filesystem/filesystem.cpp9
3 files changed, 16 insertions, 0 deletions
diff --git a/src/core/file_sys/bis_factory.cpp b/src/core/file_sys/bis_factory.cpp
index 8f758d6d9..0af44f340 100644
--- a/src/core/file_sys/bis_factory.cpp
+++ b/src/core/file_sys/bis_factory.cpp
@@ -136,4 +136,9 @@ u64 BISFactory::GetFullNANDTotalSpace() const {
return static_cast<u64>(Settings::values.nand_total_size);
}
+VirtualDir BISFactory::GetBCATDirectory(u64 title_id) const {
+ return GetOrCreateDirectoryRelative(nand_root,
+ fmt::format("/system/save/bcat/{:016X}", title_id));
+}
+
} // namespace FileSys
diff --git a/src/core/file_sys/bis_factory.h b/src/core/file_sys/bis_factory.h
index bdfe728c9..8f0451c98 100644
--- a/src/core/file_sys/bis_factory.h
+++ b/src/core/file_sys/bis_factory.h
@@ -61,6 +61,8 @@ public:
u64 GetUserNANDTotalSpace() const;
u64 GetFullNANDTotalSpace() const;
+ VirtualDir GetBCATDirectory(u64 title_id) const;
+
private:
VirtualDir nand_root;
VirtualDir load_root;
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp
index 14cd0e322..9cb107668 100644
--- a/src/core/hle/service/filesystem/filesystem.cpp
+++ b/src/core/hle/service/filesystem/filesystem.cpp
@@ -674,6 +674,15 @@ FileSys::VirtualDir FileSystemController::GetModificationDumpRoot(u64 title_id)
return bis_factory->GetModificationDumpRoot(title_id);
}
+FileSys::VirtualDir GetBCATDirectory(u64 title_id) {
+ LOG_TRACE(Service_FS, "Opening BCAT root for tid={:016X}", title_id);
+
+ if (bis_factory == nullptr)
+ return nullptr;
+
+ return bis_factory->GetBCATDirectory(title_id);
+}
+
void FileSystemController::CreateFactories(FileSys::VfsFilesystem& vfs, bool overwrite) {
if (overwrite) {
bis_factory = nullptr;