summaryrefslogtreecommitdiff
path: root/src/core/hle
diff options
context:
space:
mode:
authorGravatar liamwhite2023-08-02 14:25:52 -0400
committerGravatar GitHub2023-08-02 14:25:52 -0400
commitfca7d975fdbeb1c63677b80efc03920affee4b12 (patch)
treebbded6cf80886c6def87bae92cf6784340165de9 /src/core/hle
parentMerge pull request #11204 from liamwhite/eds3-blend-amd (diff)
parentconfig(qt): Fix name of network category (diff)
downloadyuzu-fca7d975fdbeb1c63677b80efc03920affee4b12.tar.gz
yuzu-fca7d975fdbeb1c63677b80efc03920affee4b12.tar.xz
yuzu-fca7d975fdbeb1c63677b80efc03920affee4b12.zip
Merge pull request #10839 from lat9nq/pgc-plus
general: Reimplement per-game configurations
Diffstat (limited to 'src/core/hle')
-rw-r--r--src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp22
-rw-r--r--src/core/hle/kernel/k_process.cpp3
-rw-r--r--src/core/hle/service/ns/ns.cpp2
-rw-r--r--src/core/hle/service/set/set.cpp10
-rw-r--r--src/core/hle/service/spl/spl_module.cpp3
-rw-r--r--src/core/hle/service/time/time_zone_content_manager.cpp3
6 files changed, 31 insertions, 12 deletions
diff --git a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
index 49bdc671e..4cfdf4558 100644
--- a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
+++ b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
@@ -35,13 +35,27 @@ namespace {
35using namespace Common::Literals; 35using namespace Common::Literals;
36 36
37u32 GetMemorySizeForInit() { 37u32 GetMemorySizeForInit() {
38 return Settings::values.use_unsafe_extended_memory_layout ? Smc::MemorySize_8GB 38 switch (Settings::values.memory_layout_mode.GetValue()) {
39 : Smc::MemorySize_4GB; 39 case Settings::MemoryLayout::Memory_4Gb:
40 return Smc::MemorySize_4GB;
41 case Settings::MemoryLayout::Memory_6Gb:
42 return Smc::MemorySize_6GB;
43 case Settings::MemoryLayout::Memory_8Gb:
44 return Smc::MemorySize_8GB;
45 }
46 return Smc::MemorySize_4GB;
40} 47}
41 48
42Smc::MemoryArrangement GetMemoryArrangeForInit() { 49Smc::MemoryArrangement GetMemoryArrangeForInit() {
43 return Settings::values.use_unsafe_extended_memory_layout ? Smc::MemoryArrangement_8GB 50 switch (Settings::values.memory_layout_mode.GetValue()) {
44 : Smc::MemoryArrangement_4GB; 51 case Settings::MemoryLayout::Memory_4Gb:
52 return Smc::MemoryArrangement_4GB;
53 case Settings::MemoryLayout::Memory_6Gb:
54 return Smc::MemoryArrangement_6GB;
55 case Settings::MemoryLayout::Memory_8Gb:
56 return Smc::MemoryArrangement_8GB;
57 }
58 return Smc::MemoryArrangement_4GB;
45} 59}
46} // namespace 60} // namespace
47 61
diff --git a/src/core/hle/kernel/k_process.cpp b/src/core/hle/kernel/k_process.cpp
index 44c7cb22f..e573e2a57 100644
--- a/src/core/hle/kernel/k_process.cpp
+++ b/src/core/hle/kernel/k_process.cpp
@@ -81,7 +81,8 @@ Result KProcess::Initialize(KProcess* process, Core::System& system, std::string
81 process->m_capabilities.InitializeForMetadatalessProcess(); 81 process->m_capabilities.InitializeForMetadatalessProcess();
82 process->m_is_initialized = true; 82 process->m_is_initialized = true;
83 83
84 std::mt19937 rng(Settings::values.rng_seed.GetValue().value_or(std::time(nullptr))); 84 std::mt19937 rng(Settings::values.rng_seed_enabled ? Settings::values.rng_seed.GetValue()
85 : static_cast<u32>(std::time(nullptr)));
85 std::uniform_int_distribution<u64> distribution; 86 std::uniform_int_distribution<u64> distribution;
86 std::generate(process->m_random_entropy.begin(), process->m_random_entropy.end(), 87 std::generate(process->m_random_entropy.begin(), process->m_random_entropy.end(),
87 [&] { return distribution(rng); }); 88 [&] { return distribution(rng); });
diff --git a/src/core/hle/service/ns/ns.cpp b/src/core/hle/service/ns/ns.cpp
index 376067a95..91c5a2182 100644
--- a/src/core/hle/service/ns/ns.cpp
+++ b/src/core/hle/service/ns/ns.cpp
@@ -409,7 +409,7 @@ ResultVal<u8> IApplicationManagerInterface::GetApplicationDesiredLanguage(
409 409
410 // Get language code from settings 410 // Get language code from settings
411 const auto language_code = 411 const auto language_code =
412 Set::GetLanguageCodeFromIndex(Settings::values.language_index.GetValue()); 412 Set::GetLanguageCodeFromIndex(static_cast<s32>(Settings::values.language_index.GetValue()));
413 413
414 // Convert to application language, get priority list 414 // Convert to application language, get priority list
415 const auto application_language = ConvertToApplicationLanguage(language_code); 415 const auto application_language = ConvertToApplicationLanguage(language_code);
diff --git a/src/core/hle/service/set/set.cpp b/src/core/hle/service/set/set.cpp
index f5788b481..83f888c54 100644
--- a/src/core/hle/service/set/set.cpp
+++ b/src/core/hle/service/set/set.cpp
@@ -93,7 +93,8 @@ void GetAvailableLanguageCodesImpl(HLERequestContext& ctx, std::size_t max_entri
93} 93}
94 94
95void GetKeyCodeMapImpl(HLERequestContext& ctx) { 95void GetKeyCodeMapImpl(HLERequestContext& ctx) {
96 const auto language_code = available_language_codes[Settings::values.language_index.GetValue()]; 96 const auto language_code =
97 available_language_codes[static_cast<s32>(Settings::values.language_index.GetValue())];
97 const auto key_code = 98 const auto key_code =
98 std::find_if(language_to_layout.cbegin(), language_to_layout.cend(), 99 std::find_if(language_to_layout.cbegin(), language_to_layout.cend(),
99 [=](const auto& element) { return element.first == language_code; }); 100 [=](const auto& element) { return element.first == language_code; });
@@ -162,7 +163,7 @@ void SET::GetQuestFlag(HLERequestContext& ctx) {
162 163
163 IPC::ResponseBuilder rb{ctx, 3}; 164 IPC::ResponseBuilder rb{ctx, 3};
164 rb.Push(ResultSuccess); 165 rb.Push(ResultSuccess);
165 rb.Push(static_cast<u32>(Settings::values.quest_flag.GetValue())); 166 rb.Push(static_cast<s32>(Settings::values.quest_flag.GetValue()));
166} 167}
167 168
168void SET::GetLanguageCode(HLERequestContext& ctx) { 169void SET::GetLanguageCode(HLERequestContext& ctx) {
@@ -170,7 +171,8 @@ void SET::GetLanguageCode(HLERequestContext& ctx) {
170 171
171 IPC::ResponseBuilder rb{ctx, 4}; 172 IPC::ResponseBuilder rb{ctx, 4};
172 rb.Push(ResultSuccess); 173 rb.Push(ResultSuccess);
173 rb.PushEnum(available_language_codes[Settings::values.language_index.GetValue()]); 174 rb.PushEnum(
175 available_language_codes[static_cast<s32>(Settings::values.language_index.GetValue())]);
174} 176}
175 177
176void SET::GetRegionCode(HLERequestContext& ctx) { 178void SET::GetRegionCode(HLERequestContext& ctx) {
@@ -178,7 +180,7 @@ void SET::GetRegionCode(HLERequestContext& ctx) {
178 180
179 IPC::ResponseBuilder rb{ctx, 3}; 181 IPC::ResponseBuilder rb{ctx, 3};
180 rb.Push(ResultSuccess); 182 rb.Push(ResultSuccess);
181 rb.Push(Settings::values.region_index.GetValue()); 183 rb.Push(static_cast<u32>(Settings::values.region_index.GetValue()));
182} 184}
183 185
184void SET::GetKeyCodeMap(HLERequestContext& ctx) { 186void SET::GetKeyCodeMap(HLERequestContext& ctx) {
diff --git a/src/core/hle/service/spl/spl_module.cpp b/src/core/hle/service/spl/spl_module.cpp
index 0227d4393..cd631b2ea 100644
--- a/src/core/hle/service/spl/spl_module.cpp
+++ b/src/core/hle/service/spl/spl_module.cpp
@@ -19,7 +19,8 @@ namespace Service::SPL {
19Module::Interface::Interface(Core::System& system_, std::shared_ptr<Module> module_, 19Module::Interface::Interface(Core::System& system_, std::shared_ptr<Module> module_,
20 const char* name) 20 const char* name)
21 : ServiceFramework{system_, name}, module{std::move(module_)}, 21 : ServiceFramework{system_, name}, module{std::move(module_)},
22 rng(Settings::values.rng_seed.GetValue().value_or(std::time(nullptr))) {} 22 rng(Settings::values.rng_seed_enabled ? Settings::values.rng_seed.GetValue()
23 : static_cast<u32>(std::time(nullptr))) {}
23 24
24Module::Interface::~Interface() = default; 25Module::Interface::~Interface() = default;
25 26
diff --git a/src/core/hle/service/time/time_zone_content_manager.cpp b/src/core/hle/service/time/time_zone_content_manager.cpp
index 3b6047ad0..1b96de37a 100644
--- a/src/core/hle/service/time/time_zone_content_manager.cpp
+++ b/src/core/hle/service/time/time_zone_content_manager.cpp
@@ -78,7 +78,8 @@ TimeZoneContentManager::TimeZoneContentManager(Core::System& system_)
78 location_name_cache{BuildLocationNameCache(time_zone_binary)} {} 78 location_name_cache{BuildLocationNameCache(time_zone_binary)} {}
79 79
80void TimeZoneContentManager::Initialize(TimeManager& time_manager) { 80void TimeZoneContentManager::Initialize(TimeManager& time_manager) {
81 const auto timezone_setting = Settings::GetTimeZoneString(); 81 const auto timezone_setting =
82 Settings::GetTimeZoneString(Settings::values.time_zone_index.GetValue());
82 83
83 if (FileSys::VirtualFile vfs_file; 84 if (FileSys::VirtualFile vfs_file;
84 GetTimeZoneInfoFile(timezone_setting, vfs_file) == ResultSuccess) { 85 GetTimeZoneInfoFile(timezone_setting, vfs_file) == ResultSuccess) {