From 0497bb5528f62f9e3db887988f0f93b4a1653a42 Mon Sep 17 00:00:00 2001
From: Zach Hilman <zachhilman@gmail.com>
Date: Mon, 30 Jul 2018 22:04:51 -0400
Subject: [PATCH] Fix merge conflicts with opus and update docs

---
 .gitmodules             | 10 +++++-----
 src/core/CMakeLists.txt |  2 +-
 src/core/loader/xci.cpp |  2 ++
 src/yuzu/main.cpp       |  6 +++---
 src/yuzu_cmd/yuzu.cpp   |  4 ++--
 5 files changed, 13 insertions(+), 11 deletions(-)

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<Kernel::Process>& 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 <a href=''>How to Dump Keys</a> 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 "
-                   "<a href=''>How to Dump Keys</a> 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 <LINK> 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 <LINK> 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.");