diff options
| author | 2020-07-08 21:15:49 -0400 | |
|---|---|---|
| committer | 2020-07-08 21:15:49 -0400 | |
| commit | 4489ea6f532a501ca4cc379d8d8fb50ce1af27d7 (patch) | |
| tree | 52f62331d39f338f6ae6d0fd56831bdd577943a9 /src/core | |
| parent | Address PR feedback, fix axis button thresholding (diff) | |
| parent | Merge pull request #4266 from jbeich/freebsd (diff) | |
| download | yuzu-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.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/service/am/am.cpp | 20 | ||||
| -rw-r--r-- | src/core/memory.cpp | 7 |
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; |