summaryrefslogtreecommitdiffstats
path: root/src/core/loader/ncch.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2017-08-02 01:51:44 +0200
committerbunnei <bunneidev@gmail.com>2017-08-04 02:10:37 +0200
commitf5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf (patch)
tree851abceebb8196b95583a3bde4d2e97818b96f66 /src/core/loader/ncch.cpp
parentMerge pull request #2850 from j-selby/fix_invalid_paths (diff)
downloadyuzu-f5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf.tar
yuzu-f5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf.tar.gz
yuzu-f5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf.tar.bz2
yuzu-f5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf.tar.lz
yuzu-f5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf.tar.xz
yuzu-f5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf.tar.zst
yuzu-f5cf9960d9eb5ff5afb39c0356f42035e2dd1ccf.zip
Diffstat (limited to '')
-rw-r--r--src/core/loader/ncch.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp
index fc4d14a59..c007069a9 100644
--- a/src/core/loader/ncch.cpp
+++ b/src/core/loader/ncch.cpp
@@ -4,7 +4,9 @@
#include <algorithm>
#include <cinttypes>
+#include <codecvt>
#include <cstring>
+#include <locale>
#include <memory>
#include "common/logging/log.h"
#include "common/string_util.h"
@@ -420,4 +422,22 @@ ResultStatus AppLoader_NCCH::ReadRomFS(std::shared_ptr<FileUtil::IOFile>& romfs_
return ResultStatus::ErrorNotUsed;
}
+ResultStatus AppLoader_NCCH::ReadTitle(std::string& title) {
+ std::vector<u8> data;
+ Loader::SMDH smdh;
+ ReadIcon(data);
+
+ if (!Loader::IsValidSMDH(data)) {
+ return ResultStatus::ErrorInvalidFormat;
+ }
+
+ memcpy(&smdh, data.data(), sizeof(Loader::SMDH));
+
+ const auto& short_title = smdh.GetShortTitle(SMDH::TitleLanguage::English);
+ auto title_end = std::find(short_title.begin(), short_title.end(), u'\0');
+ title = Common::UTF16ToUTF8(std::u16string{short_title.begin(), title_end});
+
+ return ResultStatus::Success;
+}
+
} // namespace Loader