summaryrefslogtreecommitdiff
path: root/src/yuzu_cmd
diff options
context:
space:
mode:
Diffstat (limited to 'src/yuzu_cmd')
-rw-r--r--src/yuzu_cmd/config.cpp87
-rw-r--r--src/yuzu_cmd/default_ini.h7
-rw-r--r--src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp5
-rw-r--r--src/yuzu_cmd/yuzu.cpp7
-rw-r--r--src/yuzu_cmd/yuzu.rc2
5 files changed, 60 insertions, 48 deletions
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index c20d48c42..23763144f 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -354,65 +354,72 @@ void Config::ReadValues() {
354 354
355 const auto rng_seed_enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false); 355 const auto rng_seed_enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false);
356 if (rng_seed_enabled) { 356 if (rng_seed_enabled) {
357 Settings::values.rng_seed = sdl2_config->GetInteger("System", "rng_seed", 0); 357 Settings::values.rng_seed.SetValue(sdl2_config->GetInteger("System", "rng_seed", 0));
358 } else { 358 } else {
359 Settings::values.rng_seed = std::nullopt; 359 Settings::values.rng_seed.SetValue(std::nullopt);
360 } 360 }
361 361
362 const auto custom_rtc_enabled = sdl2_config->GetBoolean("System", "custom_rtc_enabled", false); 362 const auto custom_rtc_enabled = sdl2_config->GetBoolean("System", "custom_rtc_enabled", false);
363 if (custom_rtc_enabled) { 363 if (custom_rtc_enabled) {
364 Settings::values.custom_rtc = 364 Settings::values.custom_rtc.SetValue(
365 std::chrono::seconds(sdl2_config->GetInteger("System", "custom_rtc", 0)); 365 std::chrono::seconds(sdl2_config->GetInteger("System", "custom_rtc", 0)));
366 } else { 366 } else {
367 Settings::values.custom_rtc = std::nullopt; 367 Settings::values.custom_rtc.SetValue(std::nullopt);
368 } 368 }
369 369
370 Settings::values.language_index = sdl2_config->GetInteger("System", "language_index", 1); 370 Settings::values.language_index.SetValue(
371 Settings::values.time_zone_index = sdl2_config->GetInteger("System", "time_zone_index", 0); 371 sdl2_config->GetInteger("System", "language_index", 1));
372 Settings::values.time_zone_index.SetValue(
373 sdl2_config->GetInteger("System", "time_zone_index", 0));
372 374
373 // Core 375 // Core
374 Settings::values.use_multi_core = sdl2_config->GetBoolean("Core", "use_multi_core", false); 376 Settings::values.use_multi_core.SetValue(
377 sdl2_config->GetBoolean("Core", "use_multi_core", false));
375 378
376 // Renderer 379 // Renderer
377 const int renderer_backend = sdl2_config->GetInteger( 380 const int renderer_backend = sdl2_config->GetInteger(
378 "Renderer", "backend", static_cast<int>(Settings::RendererBackend::OpenGL)); 381 "Renderer", "backend", static_cast<int>(Settings::RendererBackend::OpenGL));
379 Settings::values.renderer_backend = static_cast<Settings::RendererBackend>(renderer_backend); 382 Settings::values.renderer_backend.SetValue(
383 static_cast<Settings::RendererBackend>(renderer_backend));
380 Settings::values.renderer_debug = sdl2_config->GetBoolean("Renderer", "debug", false); 384 Settings::values.renderer_debug = sdl2_config->GetBoolean("Renderer", "debug", false);
381 Settings::values.vulkan_device = sdl2_config->GetInteger("Renderer", "vulkan_device", 0); 385 Settings::values.vulkan_device.SetValue(
382 386 sdl2_config->GetInteger("Renderer", "vulkan_device", 0));
383 Settings::values.resolution_factor = 387
384 static_cast<float>(sdl2_config->GetReal("Renderer", "resolution_factor", 1.0)); 388 Settings::values.aspect_ratio.SetValue(
385 Settings::values.aspect_ratio = 389 static_cast<int>(sdl2_config->GetInteger("Renderer", "aspect_ratio", 0)));
386 static_cast<int>(sdl2_config->GetInteger("Renderer", "aspect_ratio", 0)); 390 Settings::values.max_anisotropy.SetValue(
387 Settings::values.max_anisotropy = 391 static_cast<int>(sdl2_config->GetInteger("Renderer", "max_anisotropy", 0)));
388 static_cast<int>(sdl2_config->GetInteger("Renderer", "max_anisotropy", 0)); 392 Settings::values.use_frame_limit.SetValue(
389 Settings::values.use_frame_limit = sdl2_config->GetBoolean("Renderer", "use_frame_limit", true); 393 sdl2_config->GetBoolean("Renderer", "use_frame_limit", true));
390 Settings::values.frame_limit = 394 Settings::values.frame_limit.SetValue(
391 static_cast<u16>(sdl2_config->GetInteger("Renderer", "frame_limit", 100)); 395 static_cast<u16>(sdl2_config->GetInteger("Renderer", "frame_limit", 100)));
392 Settings::values.use_disk_shader_cache = 396 Settings::values.use_disk_shader_cache.SetValue(
393 sdl2_config->GetBoolean("Renderer", "use_disk_shader_cache", false); 397 sdl2_config->GetBoolean("Renderer", "use_disk_shader_cache", false));
394 const int gpu_accuracy_level = sdl2_config->GetInteger("Renderer", "gpu_accuracy", 0); 398 const int gpu_accuracy_level = sdl2_config->GetInteger("Renderer", "gpu_accuracy", 0);
395 Settings::values.gpu_accuracy = static_cast<Settings::GPUAccuracy>(gpu_accuracy_level); 399 Settings::values.gpu_accuracy.SetValue(static_cast<Settings::GPUAccuracy>(gpu_accuracy_level));
396 Settings::values.use_asynchronous_gpu_emulation = 400 Settings::values.use_asynchronous_gpu_emulation.SetValue(
397 sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false); 401 sdl2_config->GetBoolean("Renderer", "use_asynchronous_gpu_emulation", false));
398 Settings::values.use_vsync = 402 Settings::values.use_vsync.SetValue(
399 static_cast<u16>(sdl2_config->GetInteger("Renderer", "use_vsync", 1)); 403 static_cast<u16>(sdl2_config->GetInteger("Renderer", "use_vsync", 1)));
400 Settings::values.use_assembly_shaders = 404 Settings::values.use_assembly_shaders.SetValue(
401 sdl2_config->GetBoolean("Renderer", "use_assembly_shaders", false); 405 sdl2_config->GetBoolean("Renderer", "use_assembly_shaders", false));
402 Settings::values.use_fast_gpu_time = 406 Settings::values.use_fast_gpu_time.SetValue(
403 sdl2_config->GetBoolean("Renderer", "use_fast_gpu_time", true); 407 sdl2_config->GetBoolean("Renderer", "use_fast_gpu_time", true));
404 408
405 Settings::values.bg_red = static_cast<float>(sdl2_config->GetReal("Renderer", "bg_red", 0.0)); 409 Settings::values.bg_red.SetValue(
406 Settings::values.bg_green = 410 static_cast<float>(sdl2_config->GetReal("Renderer", "bg_red", 0.0)));
407 static_cast<float>(sdl2_config->GetReal("Renderer", "bg_green", 0.0)); 411 Settings::values.bg_green.SetValue(
408 Settings::values.bg_blue = static_cast<float>(sdl2_config->GetReal("Renderer", "bg_blue", 0.0)); 412 static_cast<float>(sdl2_config->GetReal("Renderer", "bg_green", 0.0)));
413 Settings::values.bg_blue.SetValue(
414 static_cast<float>(sdl2_config->GetReal("Renderer", "bg_blue", 0.0)));
409 415
410 // Audio 416 // Audio
411 Settings::values.sink_id = sdl2_config->Get("Audio", "output_engine", "auto"); 417 Settings::values.sink_id = sdl2_config->Get("Audio", "output_engine", "auto");
412 Settings::values.enable_audio_stretching = 418 Settings::values.enable_audio_stretching.SetValue(
413 sdl2_config->GetBoolean("Audio", "enable_audio_stretching", true); 419 sdl2_config->GetBoolean("Audio", "enable_audio_stretching", true));
414 Settings::values.audio_device_id = sdl2_config->Get("Audio", "output_device", "auto"); 420 Settings::values.audio_device_id = sdl2_config->Get("Audio", "output_device", "auto");
415 Settings::values.volume = static_cast<float>(sdl2_config->GetReal("Audio", "volume", 1)); 421 Settings::values.volume.SetValue(
422 static_cast<float>(sdl2_config->GetReal("Audio", "volume", 1)));
416 423
417 // Miscellaneous 424 // Miscellaneous
418 Settings::values.log_filter = sdl2_config->Get("Miscellaneous", "log_filter", "*:Trace"); 425 Settings::values.log_filter = sdl2_config->Get("Miscellaneous", "log_filter", "*:Trace");
@@ -432,6 +439,8 @@ void Config::ReadValues() {
432 Settings::values.quest_flag = sdl2_config->GetBoolean("Debugging", "quest_flag", false); 439 Settings::values.quest_flag = sdl2_config->GetBoolean("Debugging", "quest_flag", false);
433 Settings::values.disable_cpu_opt = 440 Settings::values.disable_cpu_opt =
434 sdl2_config->GetBoolean("Debugging", "disable_cpu_opt", false); 441 sdl2_config->GetBoolean("Debugging", "disable_cpu_opt", false);
442 Settings::values.disable_macro_jit =
443 sdl2_config->GetBoolean("Debugging", "disable_macro_jit", false);
435 444
436 const auto title_list = sdl2_config->Get("AddOns", "title_ids", ""); 445 const auto title_list = sdl2_config->Get("AddOns", "title_ids", "");
437 std::stringstream ss(title_list); 446 std::stringstream ss(title_list);
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index abc6e6e65..45c07ed5d 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -117,11 +117,6 @@ use_hw_renderer =
117# 0: Interpreter (slow), 1 (default): JIT (fast) 117# 0: Interpreter (slow), 1 (default): JIT (fast)
118use_shader_jit = 118use_shader_jit =
119 119
120# Resolution scale factor
121# 0: Auto (scales resolution to window size), 1: Native Switch screen resolution, Otherwise a scale
122# factor for the Switch resolution
123resolution_factor =
124
125# Aspect ratio 120# Aspect ratio
126# 0: Default (16:9), 1: Force 4:3, 2: Force 21:9, 3: Stretch to Window 121# 0: Default (16:9), 1: Force 4:3, 2: Force 21:9, 3: Stretch to Window
127aspect_ratio = 122aspect_ratio =
@@ -291,6 +286,8 @@ quest_flag =
291# Determines whether or not JIT CPU optimizations are enabled 286# Determines whether or not JIT CPU optimizations are enabled
292# false: Optimizations Enabled, true: Optimizations Disabled 287# false: Optimizations Enabled, true: Optimizations Disabled
293disable_cpu_opt = 288disable_cpu_opt =
289# Enables/Disables the macro JIT compiler
290disable_macro_jit=false
294 291
295[WebService] 292[WebService]
296# Whether or not to enable telemetry 293# Whether or not to enable telemetry
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
index 411e7e647..e78025737 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
@@ -98,6 +98,9 @@ EmuWindow_SDL2_GL::EmuWindow_SDL2_GL(Core::System& system, bool fullscreen)
98 SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); 98 SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
99 SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0); 99 SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 0);
100 SDL_GL_SetAttribute(SDL_GL_SHARE_WITH_CURRENT_CONTEXT, 1); 100 SDL_GL_SetAttribute(SDL_GL_SHARE_WITH_CURRENT_CONTEXT, 1);
101 if (Settings::values.renderer_debug) {
102 SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG);
103 }
101 SDL_GL_SetSwapInterval(0); 104 SDL_GL_SetSwapInterval(0);
102 105
103 std::string window_title = fmt::format("yuzu {} | {}-{}", Common::g_build_fullname, 106 std::string window_title = fmt::format("yuzu {} | {}-{}", Common::g_build_fullname,
@@ -162,7 +165,7 @@ std::unique_ptr<Core::Frontend::GraphicsContext> EmuWindow_SDL2_GL::CreateShared
162 165
163void EmuWindow_SDL2_GL::Present() { 166void EmuWindow_SDL2_GL::Present() {
164 SDL_GL_MakeCurrent(render_window, window_context); 167 SDL_GL_MakeCurrent(render_window, window_context);
165 SDL_GL_SetSwapInterval(Settings::values.use_vsync ? 1 : 0); 168 SDL_GL_SetSwapInterval(Settings::values.use_vsync.GetValue() ? 1 : 0);
166 while (IsOpen()) { 169 while (IsOpen()) {
167 system.Renderer().TryPresent(100); 170 system.Renderer().TryPresent(100);
168 SDL_GL_SwapWindow(render_window); 171 SDL_GL_SwapWindow(render_window);
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index 4d2ea7e9e..512b060a7 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -2,6 +2,7 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <chrono>
5#include <iostream> 6#include <iostream>
6#include <memory> 7#include <memory>
7#include <string> 8#include <string>
@@ -180,7 +181,7 @@ int main(int argc, char** argv) {
180 Core::System& system{Core::System::GetInstance()}; 181 Core::System& system{Core::System::GetInstance()};
181 182
182 std::unique_ptr<EmuWindow_SDL2> emu_window; 183 std::unique_ptr<EmuWindow_SDL2> emu_window;
183 switch (Settings::values.renderer_backend) { 184 switch (Settings::values.renderer_backend.GetValue()) {
184 case Settings::RendererBackend::OpenGL: 185 case Settings::RendererBackend::OpenGL:
185 emu_window = std::make_unique<EmuWindow_SDL2_GL>(system, fullscreen); 186 emu_window = std::make_unique<EmuWindow_SDL2_GL>(system, fullscreen);
186 break; 187 break;
@@ -236,9 +237,11 @@ int main(int argc, char** argv) {
236 system.Renderer().Rasterizer().LoadDiskResources(); 237 system.Renderer().Rasterizer().LoadDiskResources();
237 238
238 std::thread render_thread([&emu_window] { emu_window->Present(); }); 239 std::thread render_thread([&emu_window] { emu_window->Present(); });
240 system.Run();
239 while (emu_window->IsOpen()) { 241 while (emu_window->IsOpen()) {
240 system.RunLoop(); 242 std::this_thread::sleep_for(std::chrono::milliseconds(1));
241 } 243 }
244 system.Pause();
242 render_thread.join(); 245 render_thread.join();
243 246
244 system.Shutdown(); 247 system.Shutdown();
diff --git a/src/yuzu_cmd/yuzu.rc b/src/yuzu_cmd/yuzu.rc
index 7de8ef3d9..0cde75e2f 100644
--- a/src/yuzu_cmd/yuzu.rc
+++ b/src/yuzu_cmd/yuzu.rc
@@ -14,4 +14,4 @@ YUZU_ICON ICON "../../dist/yuzu.ico"
14// RT_MANIFEST 14// RT_MANIFEST
15// 15//
16 16
171 RT_MANIFEST "../../dist/yuzu.manifest" 170 RT_MANIFEST "../../dist/yuzu.manifest"