summaryrefslogtreecommitdiff
path: root/src/core/loader
diff options
context:
space:
mode:
authorGravatar TheKoopaKingdom2017-03-08 20:21:31 -0500
committerGravatar TheKoopaKingdom2017-06-02 18:28:14 -0400
commit37bec598ea28662462dcaab65d5abd6db8372dbc (patch)
treee1aa020f3884d601182155791d9c474df04fd133 /src/core/loader
parentAdded system for handling core errors in citra-qt. (diff)
downloadyuzu-37bec598ea28662462dcaab65d5abd6db8372dbc.tar.gz
yuzu-37bec598ea28662462dcaab65d5abd6db8372dbc.tar.xz
yuzu-37bec598ea28662462dcaab65d5abd6db8372dbc.zip
Made some changes from review comments:
- Made LoadKernelSystemMode return a pair consisting of a system mode and a result code (Could use review). - Deleted ErrorOpenGL error code in favor of just having ErrorVideoCore. - Made dialog messages more clear. - Compared archive ID in fs_user.cpp to ArchiveIdCode::NCCH as opposed to hex magic. - Cleaned up some other stuff.
Diffstat (limited to 'src/core/loader')
-rw-r--r--src/core/loader/loader.h11
-rw-r--r--src/core/loader/ncch.cpp11
-rw-r--r--src/core/loader/ncch.h5
3 files changed, 12 insertions, 15 deletions
diff --git a/src/core/loader/loader.h b/src/core/loader/loader.h
index 21f73503e..0a2d4a10e 100644
--- a/src/core/loader/loader.h
+++ b/src/core/loader/loader.h
@@ -8,8 +8,11 @@
8#include <initializer_list> 8#include <initializer_list>
9#include <memory> 9#include <memory>
10#include <string> 10#include <string>
11#include <utility>
11#include <vector> 12#include <vector>
13
12#include <boost/optional.hpp> 14#include <boost/optional.hpp>
15
13#include "common/common_types.h" 16#include "common/common_types.h"
14#include "common/file_util.h" 17#include "common/file_util.h"
15 18
@@ -100,13 +103,11 @@ public:
100 * Loads the system mode that this application needs. 103 * Loads the system mode that this application needs.
101 * This function defaults to 2 (96MB allocated to the application) if it can't read the 104 * This function defaults to 2 (96MB allocated to the application) if it can't read the
102 * information. 105 * information.
103 * @param boost::optional<u32> Reference to Boost optional to store system mode. 106 * @return A pair with the system mode (If found) and the result.
104 * @ return Result of operation.
105 */ 107 */
106 virtual ResultStatus LoadKernelSystemMode(boost::optional<u32>& system_mode) { 108 virtual std::pair<boost::optional<u32>, ResultStatus> LoadKernelSystemMode() {
107 // 96MB allocated to the application. 109 // 96MB allocated to the application.
108 system_mode = 2; 110 return std::make_pair(2, ResultStatus::Success);
109 return ResultStatus::Success;
110 } 111 }
111 112
112 /** 113 /**
diff --git a/src/core/loader/ncch.cpp b/src/core/loader/ncch.cpp
index 1a20762e4..ffc019560 100644
--- a/src/core/loader/ncch.cpp
+++ b/src/core/loader/ncch.cpp
@@ -121,19 +121,16 @@ FileType AppLoader_NCCH::IdentifyType(FileUtil::IOFile& file) {
121 return FileType::Error; 121 return FileType::Error;
122} 122}
123 123
124ResultStatus AppLoader_NCCH::LoadKernelSystemMode(boost::optional<u32>& system_mode) { 124std::pair<boost::optional<u32>, ResultStatus> AppLoader_NCCH::LoadKernelSystemMode() {
125 if (!is_loaded) { 125 if (!is_loaded) {
126 ResultStatus res = LoadExeFS(); 126 ResultStatus res = LoadExeFS();
127 if (res != ResultStatus::Success) { 127 if (res != ResultStatus::Success) {
128 // Set the system mode as invalid. 128 return std::make_pair(boost::none, res);
129 system_mode = boost::none;
130 // Return the error code.
131 return res;
132 } 129 }
133 } 130 }
134 // Set the system mode as the one from the exheader. 131 // Set the system mode as the one from the exheader.
135 system_mode = exheader_header.arm11_system_local_caps.system_mode.Value(); 132 return std::make_pair(exheader_header.arm11_system_local_caps.system_mode.Value(),
136 return ResultStatus::Success; 133 ResultStatus::Success);
137} 134}
138 135
139ResultStatus AppLoader_NCCH::LoadExec() { 136ResultStatus AppLoader_NCCH::LoadExec() {
diff --git a/src/core/loader/ncch.h b/src/core/loader/ncch.h
index 269fe4f49..712d496a4 100644
--- a/src/core/loader/ncch.h
+++ b/src/core/loader/ncch.h
@@ -179,10 +179,9 @@ public:
179 179
180 /** 180 /**
181 * Loads the Exheader and returns the system mode for this application. 181 * Loads the Exheader and returns the system mode for this application.
182 * @param boost::optional<u32> Reference to Boost optional to store system mode. 182 * @return A pair with the system mode (If found) and the result.
183 * @return Result of operation.
184 */ 183 */
185 ResultStatus LoadKernelSystemMode(boost::optional<u32>& system_mode) override; 184 std::pair<boost::optional<u32>, ResultStatus> LoadKernelSystemMode() override;
186 185
187 ResultStatus ReadCode(std::vector<u8>& buffer) override; 186 ResultStatus ReadCode(std::vector<u8>& buffer) override;
188 187