summaryrefslogtreecommitdiffstats
path: root/src/core/loader
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2014-12-16 06:33:41 +0100
committerSubv <subv2112@gmail.com>2014-12-18 01:21:38 +0100
commitea9ce0fba776eef8f9e4f3a86e71256091732a14 (patch)
tree9e698ba00993a4aff1df4d60f9fcf3cf135ee76c /src/core/loader
parentMerge pull request #293 from lioncash/sops (diff)
downloadyuzu-ea9ce0fba776eef8f9e4f3a86e71256091732a14.tar
yuzu-ea9ce0fba776eef8f9e4f3a86e71256091732a14.tar.gz
yuzu-ea9ce0fba776eef8f9e4f3a86e71256091732a14.tar.bz2
yuzu-ea9ce0fba776eef8f9e4f3a86e71256091732a14.tar.lz
yuzu-ea9ce0fba776eef8f9e4f3a86e71256091732a14.tar.xz
yuzu-ea9ce0fba776eef8f9e4f3a86e71256091732a14.tar.zst
yuzu-ea9ce0fba776eef8f9e4f3a86e71256091732a14.zip
Diffstat (limited to 'src/core/loader')
-rw-r--r--src/core/loader/loader.cpp1
-rw-r--r--src/core/loader/ncch.cpp4
-rw-r--r--src/core/loader/ncch.h6
3 files changed, 11 insertions, 0 deletions
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp
index 463dacca3..480274d23 100644
--- a/src/core/loader/loader.cpp
+++ b/src/core/loader/loader.cpp
@@ -74,6 +74,7 @@ ResultStatus LoadFile(const std::string& filename) {
// Load application and RomFS
if (ResultStatus::Success == app_loader.Load()) {
+ Kernel::g_program_id = app_loader.GetProgramId();
Service::FS::CreateArchive(std::make_unique<FileSys::Archive_RomFS>(app_loader), Service::FS::ArchiveIdCode::RomFS);
return ResultStatus::Success;
}
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp
index ba9ba00c0..4d23656ec 100644
--- a/src/core/loader/ncch.cpp
+++ b/src/core/loader/ncch.cpp
@@ -315,4 +315,8 @@ ResultStatus AppLoader_NCCH::ReadRomFS(std::vector<u8>& buffer) const {
return ResultStatus::Error;
}
+u64 AppLoader_NCCH::GetProgramId() const {
+ return *reinterpret_cast<u64 const*>(&ncch_header.program_id[0]);
+}
+
} // namespace Loader
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h
index 03116add8..2fe2a7d82 100644
--- a/src/core/loader/ncch.h
+++ b/src/core/loader/ncch.h
@@ -191,6 +191,12 @@ public:
*/
ResultStatus ReadRomFS(std::vector<u8>& buffer) const override;
+ /*
+ * Gets the program id from the NCCH header
+ * @return u64 Program id
+ */
+ u64 GetProgramId() const;
+
private:
/**