diff --git a/.gitmodules b/.gitmodules index 247aac535..4f4e8690b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,9 +25,9 @@ [submodule "unicorn"] path = externals/unicorn url = https://github.com/yuzu-emu/unicorn -[submodule "externals/mbedtls"] - path = externals/mbedtls - url = https://github.com/DarkLordZach/mbedtls +[submodule "mbedtls"] + path = externals/mbedtls + url = https://github.com/DarkLordZach/mbedtls [submodule "opus"] - path = externals/opus - url = https://github.com/ogniK5377/opus.git + path = externals/opus + url = https://github.com/ogniK5377/opus.git diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 528d96a58..22fad97a3 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -348,7 +348,7 @@ add_library(core STATIC create_target_directory_groups(core) target_link_libraries(core PUBLIC common PRIVATE audio_core video_core) -target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static opus unicorn) +target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static mbedtls opus unicorn) if (ARCHITECTURE_x86_64) target_sources(core PRIVATE diff --git a/src/core/loader/xci.cpp b/src/core/loader/xci.cpp index d757862f0..eb4dee2c2 100644 --- a/src/core/loader/xci.cpp +++ b/src/core/loader/xci.cpp @@ -49,6 +49,8 @@ ResultStatus AppLoader_XCI::Load(Kernel::SharedPtr& process) { } if (xci->GetNCAFileByType(FileSys::NCAContentType::Program) == nullptr) { + if (!Core::Crypto::KeyManager::KeyFileExists(false)) + return ResultStatus::ErrorMissingKeys; return ResultStatus::ErrorDecrypting; } diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 5bdf41ea4..34d4f0754 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -456,7 +456,7 @@ bool GMainWindow::LoadROM(const QString& filename) { this, tr("Error while loading ROM!"), tr(("The game you are trying to load is encrypted and the required keys to load " "the game could not be found in your configuration. " + - file_text + " Please refer to How to Dump Keys for help.") + file_text + " Please refer to the yuzu wiki for help.") .c_str())); break; } @@ -465,8 +465,8 @@ bool GMainWindow::LoadROM(const QString& filename) { this, tr("Error while loading ROM!"), tr("There was a general error while decrypting the game. This means that the keys " "necessary were found, but were either incorrect, the game itself was not a " - "valid game or the game uses an unhandled cryptographic scheme. Please refer to " - "How to Dump Keys to double check that you have the correct " + "valid game or the game uses an unhandled cryptographic scheme. Please double " + "check that you have the correct " "keys.")); break; } diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp index 5970cdb4e..c3b0d9f1f 100644 --- a/src/yuzu_cmd/yuzu.cpp +++ b/src/yuzu_cmd/yuzu.cpp @@ -175,13 +175,13 @@ int main(int argc, char** argv) { return -1; case Core::System::ResultStatus::ErrorLoader_ErrorMissingKeys: LOG_CRITICAL(Frontend, "The game you are trying to load is encrypted and the keys required " - "could not be found. Please refer to for help"); + "could not be found. Please refer to the yuzu wiki for help"); return -1; case Core::System::ResultStatus::ErrorLoader_ErrorDecrypting: LOG_CRITICAL(Frontend, "The game you are trying to load is encrypted and there was a " "general error while decrypting. This could mean that the keys are " "incorrect, game is invalid or game uses an unsupported method of " - "crypto. Please refer to to double-check your keys"); + "crypto. Please double-check your keys"); return -1; case Core::System::ResultStatus::ErrorLoader_ErrorInvalidFormat: LOG_CRITICAL(Frontend, "Error while loading ROM: The ROM format is not supported.");