summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/filesystem/fsp_srv.cpp
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-10-17 15:04:20 +0200
committerZach Hilman <zachhilman@gmail.com>2018-10-17 15:04:20 +0200
commit780c21ab2d48aeb5aee921943b14c8de76e86910 (patch)
tree9119b0e2a83cddeaea285d0f694155411f4fa53d /src/core/hle/service/filesystem/fsp_srv.cpp
parentpatch_manager: Add support for using LayeredFS with Data (diff)
downloadyuzu-780c21ab2d48aeb5aee921943b14c8de76e86910.tar
yuzu-780c21ab2d48aeb5aee921943b14c8de76e86910.tar.gz
yuzu-780c21ab2d48aeb5aee921943b14c8de76e86910.tar.bz2
yuzu-780c21ab2d48aeb5aee921943b14c8de76e86910.tar.lz
yuzu-780c21ab2d48aeb5aee921943b14c8de76e86910.tar.xz
yuzu-780c21ab2d48aeb5aee921943b14c8de76e86910.tar.zst
yuzu-780c21ab2d48aeb5aee921943b14c8de76e86910.zip
Diffstat (limited to 'src/core/hle/service/filesystem/fsp_srv.cpp')
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp
index d5dced429..c87721c39 100644
--- a/src/core/hle/service/filesystem/fsp_srv.cpp
+++ b/src/core/hle/service/filesystem/fsp_srv.cpp
@@ -17,6 +17,7 @@
#include "core/file_sys/errors.h"
#include "core/file_sys/mode.h"
#include "core/file_sys/nca_metadata.h"
+#include "core/file_sys/patch_manager.h"
#include "core/file_sys/savedata_factory.h"
#include "core/file_sys/vfs.h"
#include "core/hle/ipc_helpers.h"
@@ -630,6 +631,7 @@ void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) {
static_cast<u8>(storage_id), unknown, title_id);
auto data = OpenRomFS(title_id, storage_id, FileSys::ContentRecordType::Data);
+
if (data.Failed()) {
// TODO(DarkLordZach): Find the right error code to use here
LOG_ERROR(Service_FS,
@@ -640,7 +642,9 @@ void FSP_SRV::OpenDataStorageByDataId(Kernel::HLERequestContext& ctx) {
return;
}
- IStorage storage(std::move(data.Unwrap()));
+ FileSys::PatchManager pm{title_id};
+
+ IStorage storage(pm.PatchRomFS(std::move(data.Unwrap()), 0, FileSys::ContentRecordType::Data));
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(RESULT_SUCCESS);