mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	yuzu_cmd/config: Add config deserialization for multiplayer
This commit is contained in:
		
							parent
							
								
									c77454b9d0
								
							
						
					
					
						commit
						b8f7f9651e
					
				@ -65,30 +65,272 @@ static const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs>
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
}};
 | 
					}};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const std::array<int, Settings::NativeMouseButton::NumMouseButtons> default_mouse_buttons = {
 | 
				
			||||||
 | 
					    SDL_SCANCODE_LEFTBRACKET, SDL_SCANCODE_RIGHTBRACKET, SDL_SCANCODE_APOSTROPHE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_MINUS,       SDL_SCANCODE_EQUALS,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const std::array<int, 0x8A> keyboard_keys = {
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_A,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_B,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_C,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_D,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_E,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_G,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_H,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_I,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_J,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_K,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_L,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_M,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_N,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_O,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_P,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_Q,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_R,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_S,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_T,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_U,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_V,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_W,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_X,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_Y,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_Z,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_1,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_2,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_3,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_4,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_5,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_6,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_7,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_8,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_9,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_RETURN,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_ESCAPE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_BACKSPACE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_TAB,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_SPACE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_MINUS,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_EQUALS,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_LEFTBRACKET,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_RIGHTBRACKET,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_BACKSLASH,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_SEMICOLON,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_APOSTROPHE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_GRAVE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_COMMA,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_PERIOD,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_SLASH,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_CAPSLOCK,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F1,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F2,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F3,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F4,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F5,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F6,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F7,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F8,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F9,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F10,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F11,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F12,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_SCROLLLOCK,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_PAUSE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_INSERT,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_HOME,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_PAGEUP,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_DELETE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_END,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_PAGEDOWN,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_RIGHT,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_LEFT,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_DOWN,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_UP,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SDL_SCANCODE_NUMLOCKCLEAR,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_DIVIDE,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_MULTIPLY,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_MINUS,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_PLUS,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_ENTER,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_1,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_2,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_3,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_4,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_5,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_6,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_7,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_8,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_9,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_PERIOD,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_POWER,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_EQUALS,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F13,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F14,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F15,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F16,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F17,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F18,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F19,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F20,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F21,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F22,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F23,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_F24,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_HELP,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_MENU,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_COMMA,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_LEFTPAREN,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_KP_RIGHTPAREN,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					    0,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static const std::array<int, 8> keyboard_mods{
 | 
				
			||||||
 | 
					    SDL_SCANCODE_LCTRL, SDL_SCANCODE_LSHIFT, SDL_SCANCODE_LALT, SDL_SCANCODE_LGUI,
 | 
				
			||||||
 | 
					    SDL_SCANCODE_RCTRL, SDL_SCANCODE_RSHIFT, SDL_SCANCODE_RALT, SDL_SCANCODE_RGUI,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Config::ReadValues() {
 | 
					void Config::ReadValues() {
 | 
				
			||||||
    // Controls
 | 
					    // Controls
 | 
				
			||||||
 | 
					    for (std::size_t p = 0; p < Settings::values.players.size(); ++p) {
 | 
				
			||||||
 | 
					        const auto group = fmt::format("ControlsP{}", p);
 | 
				
			||||||
 | 
					        for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
 | 
				
			||||||
 | 
					            std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
 | 
				
			||||||
 | 
					            Settings::values.players[p].buttons[i] =
 | 
				
			||||||
 | 
					                sdl2_config->Get(group, Settings::NativeButton::mapping[i], default_param);
 | 
				
			||||||
 | 
					            if (Settings::values.players[p].buttons[i].empty())
 | 
				
			||||||
 | 
					                Settings::values.players[p].buttons[i] = default_param;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) {
 | 
				
			||||||
 | 
					            std::string default_param = InputCommon::GenerateAnalogParamFromKeys(
 | 
				
			||||||
 | 
					                default_analogs[i][0], default_analogs[i][1], default_analogs[i][2],
 | 
				
			||||||
 | 
					                default_analogs[i][3], default_analogs[i][4], 0.5f);
 | 
				
			||||||
 | 
					            Settings::values.players[p].analogs[i] =
 | 
				
			||||||
 | 
					                sdl2_config->Get(group, Settings::NativeAnalog::mapping[i], default_param);
 | 
				
			||||||
 | 
					            if (Settings::values.players[p].analogs[i].empty())
 | 
				
			||||||
 | 
					                Settings::values.players[p].analogs[i] = default_param;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Settings::values.mouse_enabled =
 | 
				
			||||||
 | 
					        sdl2_config->GetBoolean("ControlsGeneral", "mouse_enabled", false);
 | 
				
			||||||
 | 
					    for (int i = 0; i < Settings::NativeMouseButton::NumMouseButtons; ++i) {
 | 
				
			||||||
 | 
					        std::string default_param = InputCommon::GenerateKeyboardParam(default_mouse_buttons[i]);
 | 
				
			||||||
 | 
					        Settings::values.mouse_buttons[i] = sdl2_config->Get(
 | 
				
			||||||
 | 
					            "ControlsGeneral", std::string("mouse_") + Settings::NativeMouseButton::mapping[i],
 | 
				
			||||||
 | 
					            default_param);
 | 
				
			||||||
 | 
					        if (Settings::values.mouse_buttons[i].empty())
 | 
				
			||||||
 | 
					            Settings::values.mouse_buttons[i] = default_param;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Settings::values.motion_device = sdl2_config->Get(
 | 
				
			||||||
 | 
					        "ControlsGeneral", "motion_device", "engine:motion_emu,update_period:100,sensitivity:0.01");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Settings::values.keyboard_enabled =
 | 
				
			||||||
 | 
					        sdl2_config->GetBoolean("ControlsGeneral", "keyboard_enabled", false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Settings::values.debug_pad_enabled =
 | 
				
			||||||
 | 
					        sdl2_config->GetBoolean("ControlsGeneral", "debug_pad_enabled", false);
 | 
				
			||||||
    for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
 | 
					    for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
 | 
				
			||||||
        std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
 | 
					        std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
 | 
				
			||||||
        Settings::values.buttons[i] =
 | 
					        Settings::values.debug_pad_buttons[i] = sdl2_config->Get(
 | 
				
			||||||
            sdl2_config->Get("Controls", Settings::NativeButton::mapping[i], default_param);
 | 
					            "ControlsGeneral", std::string("debug_pad_") + Settings::NativeButton::mapping[i],
 | 
				
			||||||
        if (Settings::values.buttons[i].empty())
 | 
					            default_param);
 | 
				
			||||||
            Settings::values.buttons[i] = default_param;
 | 
					        if (Settings::values.debug_pad_buttons[i].empty())
 | 
				
			||||||
 | 
					            Settings::values.debug_pad_buttons[i] = default_param;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) {
 | 
					    for (int i = 0; i < Settings::NativeAnalog::NumAnalogs; ++i) {
 | 
				
			||||||
        std::string default_param = InputCommon::GenerateAnalogParamFromKeys(
 | 
					        std::string default_param = InputCommon::GenerateAnalogParamFromKeys(
 | 
				
			||||||
            default_analogs[i][0], default_analogs[i][1], default_analogs[i][2],
 | 
					            default_analogs[i][0], default_analogs[i][1], default_analogs[i][2],
 | 
				
			||||||
            default_analogs[i][3], default_analogs[i][4], 0.5f);
 | 
					            default_analogs[i][3], default_analogs[i][4], 0.5f);
 | 
				
			||||||
        Settings::values.analogs[i] =
 | 
					        Settings::values.debug_pad_analogs[i] = sdl2_config->Get(
 | 
				
			||||||
            sdl2_config->Get("Controls", Settings::NativeAnalog::mapping[i], default_param);
 | 
					            "ControlsGeneral", std::string("debug_pad_") + Settings::NativeAnalog::mapping[i],
 | 
				
			||||||
        if (Settings::values.analogs[i].empty())
 | 
					            default_param);
 | 
				
			||||||
            Settings::values.analogs[i] = default_param;
 | 
					        if (Settings::values.debug_pad_analogs[i].empty())
 | 
				
			||||||
 | 
					            Settings::values.debug_pad_analogs[i] = default_param;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Settings::values.motion_device = sdl2_config->Get(
 | 
					    Settings::values.touchscreen.enabled =
 | 
				
			||||||
        "Controls", "motion_device", "engine:motion_emu,update_period:100,sensitivity:0.01");
 | 
					        sdl2_config->GetBoolean("ControlsGeneral", "touch_enabled", true);
 | 
				
			||||||
    Settings::values.touch_device =
 | 
					    Settings::values.touchscreen.device =
 | 
				
			||||||
        sdl2_config->Get("Controls", "touch_device", "engine:emu_window");
 | 
					        sdl2_config->Get("ControlsGeneral", "touch_device", "engine:emu_window");
 | 
				
			||||||
 | 
					    Settings::values.touchscreen.finger =
 | 
				
			||||||
 | 
					        sdl2_config->GetInteger("ControlsGeneral", "touch_finger", 0);
 | 
				
			||||||
 | 
					    Settings::values.touchscreen.rotation_angle =
 | 
				
			||||||
 | 
					        sdl2_config->GetInteger("ControlsGeneral", "touch_angle", 0);
 | 
				
			||||||
 | 
					    Settings::values.touchscreen.diameter_x =
 | 
				
			||||||
 | 
					        sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_x", 15);
 | 
				
			||||||
 | 
					    Settings::values.touchscreen.diameter_y =
 | 
				
			||||||
 | 
					        sdl2_config->GetInteger("ControlsGeneral", "touch_diameter_y", 15);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    std::transform(keyboard_keys.begin(), keyboard_keys.end(),
 | 
				
			||||||
 | 
					                   Settings::values.keyboard_keys.begin(), InputCommon::GenerateKeyboardParam);
 | 
				
			||||||
 | 
					    std::transform(keyboard_mods.begin(), keyboard_mods.end(),
 | 
				
			||||||
 | 
					                   Settings::values.keyboard_keys.begin() +
 | 
				
			||||||
 | 
					                       Settings::NativeKeyboard::LeftControlKey,
 | 
				
			||||||
 | 
					                   InputCommon::GenerateKeyboardParam);
 | 
				
			||||||
 | 
					    std::transform(keyboard_mods.begin(), keyboard_mods.end(),
 | 
				
			||||||
 | 
					                   Settings::values.keyboard_mods.begin(), InputCommon::GenerateKeyboardParam);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Data Storage
 | 
				
			||||||
 | 
					    Settings::values.use_virtual_sd =
 | 
				
			||||||
 | 
					        sdl2_config->GetBoolean("Data Storage", "use_virtual_sd", true);
 | 
				
			||||||
 | 
					    FileUtil::GetUserPath(FileUtil::UserPath::NANDDir,
 | 
				
			||||||
 | 
					                          sdl2_config->Get("Data Storage", "nand_directory",
 | 
				
			||||||
 | 
					                                           FileUtil::GetUserPath(FileUtil::UserPath::NANDDir)));
 | 
				
			||||||
 | 
					    FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir,
 | 
				
			||||||
 | 
					                          sdl2_config->Get("Data Storage", "sdmc_directory",
 | 
				
			||||||
 | 
					                                           FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // System
 | 
				
			||||||
 | 
					    Settings::values.use_docked_mode = sdl2_config->GetBoolean("System", "use_docked_mode", false);
 | 
				
			||||||
 | 
					    Settings::values.enable_nfc = sdl2_config->GetBoolean("System", "enable_nfc", true);
 | 
				
			||||||
 | 
					    const auto size = sdl2_config->GetInteger("System", "users_size", 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Settings::values.current_user = std::clamp<int>(
 | 
				
			||||||
 | 
					        sdl2_config->GetInteger("System", "current_user", 0), 0, Service::Account::MAX_USERS - 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						const auto enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false);
 | 
				
			||||||
 | 
						if (enabled) {
 | 
				
			||||||
 | 
							Settings::values.rng_seed = sdl2_config->GetInteger("System", "rng_seed", 0);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						else {
 | 
				
			||||||
 | 
							Settings::values.rng_seed = std::nullopt;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Core
 | 
					    // Core
 | 
				
			||||||
    Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true);
 | 
					    Settings::values.use_cpu_jit = sdl2_config->GetBoolean("Core", "use_cpu_jit", true);
 | 
				
			||||||
@ -114,31 +356,6 @@ void Config::ReadValues() {
 | 
				
			|||||||
    Settings::values.audio_device_id = sdl2_config->Get("Audio", "output_device", "auto");
 | 
					    Settings::values.audio_device_id = sdl2_config->Get("Audio", "output_device", "auto");
 | 
				
			||||||
    Settings::values.volume = sdl2_config->GetReal("Audio", "volume", 1);
 | 
					    Settings::values.volume = sdl2_config->GetReal("Audio", "volume", 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Data Storage
 | 
					 | 
				
			||||||
    Settings::values.use_virtual_sd =
 | 
					 | 
				
			||||||
        sdl2_config->GetBoolean("Data Storage", "use_virtual_sd", true);
 | 
					 | 
				
			||||||
    FileUtil::GetUserPath(FileUtil::UserPath::NANDDir,
 | 
					 | 
				
			||||||
                          sdl2_config->Get("Data Storage", "nand_directory",
 | 
					 | 
				
			||||||
                                           FileUtil::GetUserPath(FileUtil::UserPath::NANDDir)));
 | 
					 | 
				
			||||||
    FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir,
 | 
					 | 
				
			||||||
                          sdl2_config->Get("Data Storage", "sdmc_directory",
 | 
					 | 
				
			||||||
                                           FileUtil::GetUserPath(FileUtil::UserPath::SDMCDir)));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // System
 | 
					 | 
				
			||||||
    Settings::values.use_docked_mode = sdl2_config->GetBoolean("System", "use_docked_mode", false);
 | 
					 | 
				
			||||||
    Settings::values.enable_nfc = sdl2_config->GetBoolean("System", "enable_nfc", true);
 | 
					 | 
				
			||||||
    const auto size = sdl2_config->GetInteger("System", "users_size", 0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Settings::values.current_user = std::clamp<int>(
 | 
					 | 
				
			||||||
        sdl2_config->GetInteger("System", "current_user", 0), 0, Service::Account::MAX_USERS - 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    const auto enabled = sdl2_config->GetBoolean("System", "rng_seed_enabled", false);
 | 
					 | 
				
			||||||
    if (enabled) {
 | 
					 | 
				
			||||||
        Settings::values.rng_seed = sdl2_config->GetInteger("System", "rng_seed", 0);
 | 
					 | 
				
			||||||
    } else {
 | 
					 | 
				
			||||||
        Settings::values.rng_seed = std::nullopt;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Settings::values.language_index = sdl2_config->GetInteger("System", "language_index", 1);
 | 
					    Settings::values.language_index = sdl2_config->GetInteger("System", "language_index", 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Miscellaneous
 | 
					    // Miscellaneous
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user