summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Ameer2020-07-08 21:15:49 -0400
committerGravatar Ameer2020-07-08 21:15:49 -0400
commit4489ea6f532a501ca4cc379d8d8fb50ce1af27d7 (patch)
tree52f62331d39f338f6ae6d0fd56831bdd577943a9 /src/core
parentAddress PR feedback, fix axis button thresholding (diff)
parentMerge pull request #4266 from jbeich/freebsd (diff)
downloadyuzu-4489ea6f532a501ca4cc379d8d8fb50ce1af27d7.tar.gz
yuzu-4489ea6f532a501ca4cc379d8d8fb50ce1af27d7.tar.xz
yuzu-4489ea6f532a501ca4cc379d8d8fb50ce1af27d7.zip
Rebase to master, fix merge conflicts
Diffstat (limited to 'src/core')
-rw-r--r--src/core/arm/cpu_interrupt_handler.cpp2
-rw-r--r--src/core/hle/service/am/am.cpp20
-rw-r--r--src/core/memory.cpp7
3 files changed, 21 insertions, 8 deletions
diff --git a/src/core/arm/cpu_interrupt_handler.cpp b/src/core/arm/cpu_interrupt_handler.cpp
index 2f1a1a269..df0350881 100644
--- a/src/core/arm/cpu_interrupt_handler.cpp
+++ b/src/core/arm/cpu_interrupt_handler.cpp
@@ -2,8 +2,6 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#pragma once
6
7#include "common/thread.h" 5#include "common/thread.h"
8#include "core/arm/cpu_interrupt_handler.h" 6#include "core/arm/cpu_interrupt_handler.h"
9 7
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 @@
10#include "core/core.h" 10#include "core/core.h"
11#include "core/file_sys/control_metadata.h" 11#include "core/file_sys/control_metadata.h"
12#include "core/file_sys/patch_manager.h" 12#include "core/file_sys/patch_manager.h"
13#include "core/file_sys/registered_cache.h"
13#include "core/file_sys/savedata_factory.h" 14#include "core/file_sys/savedata_factory.h"
14#include "core/hle/ipc_helpers.h" 15#include "core/hle/ipc_helpers.h"
15#include "core/hle/kernel/kernel.h" 16#include "core/hle/kernel/kernel.h"
@@ -1353,14 +1354,25 @@ void IApplicationFunctions::GetDisplayVersion(Kernel::HLERequestContext& ctx) {
1353 1354
1354 std::array<u8, 0x10> version_string{}; 1355 std::array<u8, 0x10> version_string{};
1355 1356
1356 FileSys::PatchManager pm{system.CurrentProcess()->GetTitleID()}; 1357 const auto res = [this] {
1357 const auto res = pm.GetControlMetadata(); 1358 const auto title_id = system.CurrentProcess()->GetTitleID();
1359
1360 FileSys::PatchManager pm{title_id};
1361 auto res = pm.GetControlMetadata();
1362 if (res.first != nullptr) {
1363 return res;
1364 }
1365
1366 FileSys::PatchManager pm_update{FileSys::GetUpdateTitleID(title_id)};
1367 return pm_update.GetControlMetadata();
1368 }();
1369
1358 if (res.first != nullptr) { 1370 if (res.first != nullptr) {
1359 const auto& version = res.first->GetVersionString(); 1371 const auto& version = res.first->GetVersionString();
1360 std::copy(version.begin(), version.end(), version_string.begin()); 1372 std::copy(version.begin(), version.end(), version_string.begin());
1361 } else { 1373 } else {
1362 constexpr u128 default_version = {1, 0}; 1374 constexpr char default_version[]{"1.0.0"};
1363 std::memcpy(version_string.data(), default_version.data(), sizeof(u128)); 1375 std::memcpy(version_string.data(), default_version, sizeof(default_version));
1364 } 1376 }
1365 1377
1366 IPC::ResponseBuilder rb{ctx, 6}; 1378 IPC::ResponseBuilder rb{ctx, 6};
diff --git a/src/core/memory.cpp b/src/core/memory.cpp
index 7def00768..2c5588933 100644
--- a/src/core/memory.cpp
+++ b/src/core/memory.cpp
@@ -548,9 +548,9 @@ struct Memory::Impl {
548 // longer exist, and we should just leave the pagetable entry blank. 548 // longer exist, and we should just leave the pagetable entry blank.
549 page_type = Common::PageType::Unmapped; 549 page_type = Common::PageType::Unmapped;
550 } else { 550 } else {
551 page_type = Common::PageType::Memory;
552 current_page_table->pointers[vaddr >> PAGE_BITS] = 551 current_page_table->pointers[vaddr >> PAGE_BITS] =
553 pointer - (vaddr & ~PAGE_MASK); 552 pointer - (vaddr & ~PAGE_MASK);
553 page_type = Common::PageType::Memory;
554 } 554 }
555 break; 555 break;
556 } 556 }
@@ -591,9 +591,12 @@ struct Memory::Impl {
591 base + page_table.pointers.size()); 591 base + page_table.pointers.size());
592 592
593 if (!target) { 593 if (!target) {
594 ASSERT_MSG(type != Common::PageType::Memory,
595 "Mapping memory page without a pointer @ {:016x}", base * PAGE_SIZE);
596
594 while (base != end) { 597 while (base != end) {
595 page_table.pointers[base] = nullptr;
596 page_table.attributes[base] = type; 598 page_table.attributes[base] = type;
599 page_table.pointers[base] = nullptr;
597 page_table.backing_addr[base] = 0; 600 page_table.backing_addr[base] = 0;
598 601
599 base += 1; 602 base += 1;