diff --git a/.gitignore b/.gitignore index 0e06e5aa00..2bf2c86d8c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ # Build directory [Bb]uild*/ doc-build/ +cmake-build*/ # Generated source files src/common/scm_rev.cpp diff --git a/src/core/arm/nce/visitor_base.h b/src/core/arm/nce/visitor_base.h index 6a2be3d9bc..c885ac47f4 100644 --- a/src/core/arm/nce/visitor_base.h +++ b/src/core/arm/nce/visitor_base.h @@ -11,6 +11,8 @@ #include #include +#include "common/common_types.h" + #pragma GCC diagnostic pop namespace Core { diff --git a/src/core/crypto/key_manager.cpp b/src/core/crypto/key_manager.cpp index e1b520333d..e9896c7b6f 100644 --- a/src/core/crypto/key_manager.cpp +++ b/src/core/crypto/key_manager.cpp @@ -668,7 +668,7 @@ static bool ValidCryptoRevisionString(std::string_view base, size_t begin, size_ void KeyManager::LoadFromFile(const std::filesystem::path& file_path, bool is_title_keys) { if (!Common::FS::Exists(file_path)) { - LOG_ERROR(Crypto, "Failed to load key file at '{}': File not found", + LOG_ERROR(Crypto, "Cannot handle key file '{}': File not found", file_path.generic_string()); return; } @@ -803,8 +803,7 @@ bool KeyManager::BaseDeriveNecessary() const { } if (!Common::FS::Exists(suyu_keys_dir / "title.keys")) { - LOG_ERROR(Crypto, "No title.keys found"); - return true; + LOG_WARNING(Crypto, "Could not locate a title.keys file"); } if (check_key_existence(S256KeyType::Header)) { diff --git a/src/core/loader/nax.cpp b/src/core/loader/nax.cpp index 725cb228d0..3b7b005ff4 100644 --- a/src/core/loader/nax.cpp +++ b/src/core/loader/nax.cpp @@ -55,10 +55,6 @@ AppLoader_NAX::LoadResult AppLoader_NAX::Load(Kernel::KProcess& process, Core::S return {ResultStatus::ErrorMissingProductionKeyFile, {}}; } - if (!Core::Crypto::KeyManager::KeyFileExists(true)) { - return {ResultStatus::ErrorMissingProductionKeyFile, {}}; - } - return {ResultStatus::ErrorNAXInconvertibleToNCA, {}}; } diff --git a/src/core/loader/nsp.cpp b/src/core/loader/nsp.cpp index 39198c9b66..3016d5f25f 100644 --- a/src/core/loader/nsp.cpp +++ b/src/core/loader/nsp.cpp @@ -102,10 +102,6 @@ AppLoader_NSP::LoadResult AppLoader_NSP::Load(Kernel::KProcess& process, Core::S return {ResultStatus::ErrorMissingProductionKeyFile, {}}; } - if (!Core::Crypto::KeyManager::KeyFileExists(true)) { - return {ResultStatus::ErrorMissingProductionKeyFile, {}}; - } - return {ResultStatus::ErrorNSPMissingProgramNCA, {}}; } diff --git a/src/core/loader/xci.cpp b/src/core/loader/xci.cpp index d4722ac4c0..e9abb199a1 100644 --- a/src/core/loader/xci.cpp +++ b/src/core/loader/xci.cpp @@ -71,10 +71,6 @@ AppLoader_XCI::LoadResult AppLoader_XCI::Load(Kernel::KProcess& process, Core::S return {ResultStatus::ErrorMissingProductionKeyFile, {}}; } - if (!xci->HasProgramNCA() && !Core::Crypto::KeyManager::KeyFileExists(true)) { - return {ResultStatus::ErrorMissingProductionKeyFile, {}}; - } - const auto result = nca_loader->Load(process, system); if (result.first != ResultStatus::Success) { return result; diff --git a/src/suyu/main.cpp b/src/suyu/main.cpp index 700a1d5f88..bead19fa48 100644 --- a/src/suyu/main.cpp +++ b/src/suyu/main.cpp @@ -1756,9 +1756,9 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa if (!ContentManager::AreKeysPresent()) { QMessageBox::warning(this, tr("Derivation Components Missing"), tr("Encryption keys are missing. " - "You need to provide both your own title.keys " - "and your own prod.keys " - "in order to play games")); + "In order to use this emulator" + "you need to provide your own encryption keys" + "in order to play them.")); return false; } @@ -4639,9 +4639,9 @@ void GMainWindow::OnCheckFirmwareDecryption() { if (!ContentManager::AreKeysPresent()) { QMessageBox::warning(this, tr("Derivation Components Missing"), tr("Encryption keys are missing. " - "You need to provide both your own title.keys " - "and your own prod.keys " - "in order to play games")); + "In order to use this emulator" + "you need to provide your own encryption keys" + "in order to play them.")); } SetFirmwareVersion(); diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index de28bf92ba..36affdf4f0 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt @@ -408,7 +408,7 @@ if (MSVC) /we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data ) else() - if (APPLE) + if (APPLE OR ARCHITECTURE_arm64) # error: declaration shadows a typedef in 'interval_base_set' # error: implicit conversion loses integer precision: 'int' to 'boost::icl::bound_type' (aka 'unsigned char') target_compile_options(video_core PRIVATE -Wno-shadow -Wno-unused-local-typedef) diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 5d2e684441..fda4465a95 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -1364,6 +1364,7 @@ void Device::CollectToolingInfo() { LOG_INFO(Render_Vulkan, "Attached debugging tool: {}", name); has_renderdoc = has_renderdoc || name == "RenderDoc"; has_nsight_graphics = has_nsight_graphics || name == "NVIDIA Nsight Graphics"; + has_radeon_gpu_profiler = has_radeon_gpu_profiler || name == "Radeon GPU Profiler"; } } diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h index 25c2a9f406..79f62b9241 100644 --- a/src/video_core/vulkan_common/vulkan_device.h +++ b/src/video_core/vulkan_common/vulkan_device.h @@ -592,7 +592,7 @@ public: /// Returns true when a known debugging tool is attached. bool HasDebuggingToolAttached() const { - return has_renderdoc || has_nsight_graphics; + return has_renderdoc || has_nsight_graphics || has_radeon_gpu_profiler; } /// @returns True if compute pipelines can cause crashing. @@ -821,6 +821,7 @@ private: bool has_broken_parallel_compiling{}; ///< Has broken parallel shader compiling. bool has_renderdoc{}; ///< Has RenderDoc attached bool has_nsight_graphics{}; ///< Has Nsight Graphics attached + bool has_radeon_gpu_profiler{}; ///< Has Radeon GPU Profiler attached. bool supports_d24_depth{}; ///< Supports D24 depth buffers. bool cant_blit_msaa{}; ///< Does not support MSAA<->MSAA blitting. bool must_emulate_scaled_formats{}; ///< Requires scaled vertex format emulation