summaryrefslogtreecommitdiffstats
path: root/src/core/loader/nsp.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2018-09-06 00:06:11 +0200
committerGitHub <noreply@github.com>2018-09-06 00:06:11 +0200
commita6ae7654105fe6ec46ff0bcabb714b8447b83899 (patch)
tree0ff4d2396cb0730ec5952181e4e67947b64832ec /src/core/loader/nsp.cpp
parentMerge pull request #1245 from degasus/optimizations (diff)
parentbktr: Fix bucket overlap error (diff)
downloadyuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.gz
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.bz2
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.lz
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.xz
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.tar.zst
yuzu-a6ae7654105fe6ec46ff0bcabb714b8447b83899.zip
Diffstat (limited to 'src/core/loader/nsp.cpp')
-rw-r--r--src/core/loader/nsp.cpp20
1 files changed, 5 insertions, 15 deletions
diff --git a/src/core/loader/nsp.cpp b/src/core/loader/nsp.cpp
index 7c06239f2..291a9876d 100644
--- a/src/core/loader/nsp.cpp
+++ b/src/core/loader/nsp.cpp
@@ -9,6 +9,8 @@
#include "core/file_sys/content_archive.h"
#include "core/file_sys/control_metadata.h"
#include "core/file_sys/nca_metadata.h"
+#include "core/file_sys/patch_manager.h"
+#include "core/file_sys/registered_cache.h"
#include "core/file_sys/romfs.h"
#include "core/file_sys/submission_package.h"
#include "core/hle/kernel/process.h"
@@ -28,24 +30,12 @@ AppLoader_NSP::AppLoader_NSP(FileSys::VirtualFile file)
return;
const auto control_nca =
- nsp->GetNCA(nsp->GetFirstTitleID(), FileSys::ContentRecordType::Control);
+ nsp->GetNCA(nsp->GetProgramTitleID(), FileSys::ContentRecordType::Control);
if (control_nca == nullptr || control_nca->GetStatus() != ResultStatus::Success)
return;
- const auto romfs = FileSys::ExtractRomFS(control_nca->GetRomFS());
- if (romfs == nullptr)
- return;
-
- for (const auto& language : FileSys::LANGUAGE_NAMES) {
- icon_file = romfs->GetFile("icon_" + std::string(language) + ".dat");
- if (icon_file != nullptr)
- break;
- }
-
- const auto nacp_raw = romfs->GetFile("control.nacp");
- if (nacp_raw == nullptr)
- return;
- nacp_file = std::make_shared<FileSys::NACP>(nacp_raw);
+ std::tie(nacp_file, icon_file) =
+ FileSys::PatchManager(nsp->GetProgramTitleID()).ParseControlNCA(control_nca);
}
AppLoader_NSP::~AppLoader_NSP() = default;