summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCrazyMax <mtabachenko@gmail.com>2020-07-05 00:49:41 +0200
committerCrazyMax <mtabachenko@gmail.com>2020-07-07 01:04:24 +0200
commit7bd3558c64d69aafb1f88f745e1d0bc11d7837fb (patch)
treecd256215db27db2c40b58d08c3272c2427c15580
parentMerge pull request #4137 from ameerj/master (diff)
downloadyuzu-7bd3558c64d69aafb1f88f745e1d0bc11d7837fb.tar
yuzu-7bd3558c64d69aafb1f88f745e1d0bc11d7837fb.tar.gz
yuzu-7bd3558c64d69aafb1f88f745e1d0bc11d7837fb.tar.bz2
yuzu-7bd3558c64d69aafb1f88f745e1d0bc11d7837fb.tar.lz
yuzu-7bd3558c64d69aafb1f88f745e1d0bc11d7837fb.tar.xz
yuzu-7bd3558c64d69aafb1f88f745e1d0bc11d7837fb.tar.zst
yuzu-7bd3558c64d69aafb1f88f745e1d0bc11d7837fb.zip
-rw-r--r--src/core/hle/service/am/am.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
index 1bb544dd8..24cfb370b 100644
--- a/src/core/hle/service/am/am.cpp
+++ b/src/core/hle/service/am/am.cpp
@@ -10,6 +10,7 @@
#include "core/core.h"
#include "core/file_sys/control_metadata.h"
#include "core/file_sys/patch_manager.h"
+#include "core/file_sys/registered_cache.h"
#include "core/file_sys/savedata_factory.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/kernel.h"
@@ -1353,14 +1354,25 @@ void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) {
std::array<u8, 0x10> version_string{};
- FileSys::PatchManager pm{system.CurrentProcess()->GetTitleID()};
- const auto res = pm.GetControlMetadata();
+ const auto res = [this] {
+ const auto title_id = system.CurrentProcess()->GetTitleID();
+
+ FileSys::PatchManager pm{title_id};
+ auto res = pm.GetControlMetadata();
+ if (res.first != nullptr) {
+ return res;
+ }
+
+ FileSys::PatchManager pm_update{FileSys::GetUpdateTitleID(title_id)};
+ return pm_update.GetControlMetadata();
+ }();
+
if (res.first != nullptr) {
const auto& version = res.first->GetVersionString();
std::copy(version.begin(), version.end(), version_string.begin());
} else {
- constexpr u128 default_version = {1, 0};
- std::memcpy(version_string.data(), default_version.data(), sizeof(u128));
+ constexpr char default_version[]{"1.0.0"};
+ std::memcpy(version_string.data(), default_version, sizeof(default_version));
}
IPC::ResponseBuilder rb{ctx, 6};