aboutsummaryrefslogtreecommitdiff
path: root/src/core/loader/loader.cpp
diff options
context:
space:
mode:
authorTakoroka <137927095+Takoroka@users.noreply.github.com>2026-10-30 04:39:04 -0400
committerkraibse <33869366+kraibse@users.noreply.github.com>2026-10-30 21:41:32 +0100
commit3e950dd677b6d7dca04541855ad5751d057371ea (patch)
treede9f3a5aab09a53ff6ac482e73110585539cca57 /src/core/loader/loader.cpp
parentca524c9aa883abc4d1c5aeb8aa4d2f9eb0b4225c (diff)
loader: read a loose dump's display version from its own files
Mario Kart World 1.8.0 reported 1.0.0: GetDisplayVersion only knew installed titles' metadata, and a loose ExeFS/RomFS dump has none. The dump's version now comes from its control.nacp (in ExeFS, or up to three directories above it), else from RomFS System/Resource/ResourceSizeTable.Product.NNN (Mario Kart World has no NACP; Product.180 is 1.8.0). Folder names are never parsed.
Diffstat (limited to 'src/core/loader/loader.cpp')
-rw-r--r--src/core/loader/loader.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp
index 5871ac412f..33a93573cf 100644
--- a/src/core/loader/loader.cpp
+++ b/src/core/loader/loader.cpp
@@ -16,6 +16,7 @@
#include "common/string_util.h"
#include "core/core.h"
#include "core/file_sys/card_image.h"
+#include "core/file_sys/control_metadata.h"
#include "core/file_sys/common_funcs.h"
#include "core/file_sys/content_archive.h"
#include "core/file_sys/registered_cache.h"
@@ -309,6 +310,15 @@ std::ostream& operator<<(std::ostream& os, ResultStatus status) {
AppLoader::AppLoader(FileSys::VirtualFile file_) : file(std::move(file_)) {}
AppLoader::~AppLoader() = default;
+ResultStatus AppLoader::ReadDisplayVersion(std::string& version) {
+ FileSys::NACP control;
+ if (const ResultStatus result = ReadControlData(control); result != ResultStatus::Success) {
+ return result;
+ }
+ version = control.GetVersionString();
+ return ResultStatus::Success;
+}
+
/**
* Get a loader for a file with a specific type
* @param system The system context to use.