summaryrefslogtreecommitdiffstats
path: root/src/core/loader/deconstructed_rom_directory.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-08-07 04:02:41 +0200
committerGitHub <noreply@github.com>2018-08-07 04:02:41 +0200
commit826b1394e85720b62938c5f7af4a876e203316af (patch)
tree2660cb536c62d253419965f727e996b87c8a21f5 /src/core/loader/deconstructed_rom_directory.cpp
parentMerge pull request #947 from lioncash/encoding (diff)
parentloader: Make AppLoader_NCA rely on directory loading code (diff)
downloadyuzu-826b1394e85720b62938c5f7af4a876e203316af.tar
yuzu-826b1394e85720b62938c5f7af4a876e203316af.tar.gz
yuzu-826b1394e85720b62938c5f7af4a876e203316af.tar.bz2
yuzu-826b1394e85720b62938c5f7af4a876e203316af.tar.lz
yuzu-826b1394e85720b62938c5f7af4a876e203316af.tar.xz
yuzu-826b1394e85720b62938c5f7af4a876e203316af.tar.zst
yuzu-826b1394e85720b62938c5f7af4a876e203316af.zip
Diffstat (limited to '')
-rw-r--r--src/core/loader/deconstructed_rom_directory.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/core/loader/deconstructed_rom_directory.cpp b/src/core/loader/deconstructed_rom_directory.cpp
index b0277a875..076927dff 100644
--- a/src/core/loader/deconstructed_rom_directory.cpp
+++ b/src/core/loader/deconstructed_rom_directory.cpp
@@ -20,6 +20,10 @@ namespace Loader {
AppLoader_DeconstructedRomDirectory::AppLoader_DeconstructedRomDirectory(FileSys::VirtualFile file)
: AppLoader(std::move(file)) {}
+AppLoader_DeconstructedRomDirectory::AppLoader_DeconstructedRomDirectory(
+ FileSys::VirtualDir directory)
+ : AppLoader(directory->GetFile("main")), dir(std::move(directory)) {}
+
FileType AppLoader_DeconstructedRomDirectory::IdentifyType(const FileSys::VirtualFile& file) {
if (FileSys::IsDirectoryExeFS(file->GetContainingDirectory())) {
return FileType::DeconstructedRomDirectory;
@@ -34,7 +38,12 @@ ResultStatus AppLoader_DeconstructedRomDirectory::Load(
return ResultStatus::ErrorAlreadyLoaded;
}
- const FileSys::VirtualDir dir = file->GetContainingDirectory();
+ if (dir == nullptr) {
+ if (file == nullptr)
+ return ResultStatus::ErrorInvalidFormat;
+ const FileSys::VirtualDir dir = file->GetContainingDirectory();
+ }
+
const FileSys::VirtualFile npdm = dir->GetFile("main.npdm");
if (npdm == nullptr)
return ResultStatus::ErrorInvalidFormat;