summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/romfs_factory.cpp
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-09-27 04:15:51 +0200
committerZach Hilman <zachhilman@gmail.com>2018-10-01 03:01:35 +0200
commitaa0c82e40534f68ef6dd8d9d881a14ed298b19a0 (patch)
treed0765d7bb2728ab3e56a6005d7d57b223d3f492e /src/core/file_sys/romfs_factory.cpp
parentpatch_manager: Add DLC recognition to PatchManager (diff)
downloadyuzu-aa0c82e40534f68ef6dd8d9d881a14ed298b19a0.tar
yuzu-aa0c82e40534f68ef6dd8d9d881a14ed298b19a0.tar.gz
yuzu-aa0c82e40534f68ef6dd8d9d881a14ed298b19a0.tar.bz2
yuzu-aa0c82e40534f68ef6dd8d9d881a14ed298b19a0.tar.lz
yuzu-aa0c82e40534f68ef6dd8d9d881a14ed298b19a0.tar.xz
yuzu-aa0c82e40534f68ef6dd8d9d881a14ed298b19a0.tar.zst
yuzu-aa0c82e40534f68ef6dd8d9d881a14ed298b19a0.zip
Diffstat (limited to 'src/core/file_sys/romfs_factory.cpp')
-rw-r--r--src/core/file_sys/romfs_factory.cpp51
1 files changed, 25 insertions, 26 deletions
diff --git a/src/core/file_sys/romfs_factory.cpp b/src/core/file_sys/romfs_factory.cpp
index d027a8d59..4994c2532 100644
--- a/src/core/file_sys/romfs_factory.cpp
+++ b/src/core/file_sys/romfs_factory.cpp
@@ -39,36 +39,35 @@ ResultVal<VirtualFile> RomFSFactory::OpenCurrentProcess() {
}
ResultVal<VirtualFile> RomFSFactory::Open(u64 title_id, StorageId storage, ContentRecordType type) {
+ std::shared_ptr<NCA> res;
+
switch (storage) {
- case StorageId::NandSystem: {
- const auto res = Service::FileSystem::GetSystemNANDContents()->GetEntry(title_id, type);
- if (res == nullptr) {
- // TODO(DarkLordZach): Find the right error code to use here
- return ResultCode(-1);
- }
- const auto romfs = res->GetRomFS();
- if (romfs == nullptr) {
- // TODO(DarkLordZach): Find the right error code to use here
- return ResultCode(-1);
- }
- return MakeResult<VirtualFile>(romfs);
- }
- case StorageId::NandUser: {
- const auto res = Service::FileSystem::GetUserNANDContents()->GetEntry(title_id, type);
- if (res == nullptr) {
- // TODO(DarkLordZach): Find the right error code to use here
- return ResultCode(-1);
- }
- const auto romfs = res->GetRomFS();
- if (romfs == nullptr) {
- // TODO(DarkLordZach): Find the right error code to use here
- return ResultCode(-1);
- }
- return MakeResult<VirtualFile>(romfs);
- }
+ case StorageId::None:
+ res = Service::FileSystem::GetUnionContents()->GetEntry(title_id, type);
+ break;
+ case StorageId::NandSystem:
+ res = Service::FileSystem::GetSystemNANDContents()->GetEntry(title_id, type);
+ break;
+ case StorageId::NandUser:
+ res = Service::FileSystem::GetUserNANDContents()->GetEntry(title_id, type);
+ break;
+ case StorageId::SdCard:
+ res = Service::FileSystem::GetSDMCContents()->GetEntry(title_id, type);
+ break;
default:
UNIMPLEMENTED_MSG("Unimplemented storage_id={:02X}", static_cast<u8>(storage));
}
+
+ if (res == nullptr) {
+ // TODO(DarkLordZach): Find the right error code to use here
+ return ResultCode(-1);
+ }
+ const auto romfs = res->GetRomFS();
+ if (romfs == nullptr) {
+ // TODO(DarkLordZach): Find the right error code to use here
+ return ResultCode(-1);
+ }
+ return MakeResult<VirtualFile>(romfs);
}
} // namespace FileSys