diff --git a/src/core/hle/service/set/setting_formats/appln_settings.cpp b/src/core/hle/service/set/setting_formats/appln_settings.cpp index f7c7d5b912..05ec527bdd 100644 --- a/src/core/hle/service/set/setting_formats/appln_settings.cpp +++ b/src/core/hle/service/set/setting_formats/appln_settings.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -5,12 +8,4 @@ namespace Service::Set { -ApplnSettings DefaultApplnSettings() { - ApplnSettings settings{}; - - settings.mii_author_id = Common::UUID::MakeDefault(); - - return settings; -} - } // namespace Service::Set diff --git a/src/core/hle/service/set/setting_formats/appln_settings.h b/src/core/hle/service/set/setting_formats/appln_settings.h index ba9af998ab..b53c265408 100644 --- a/src/core/hle/service/set/setting_formats/appln_settings.h +++ b/src/core/hle/service/set/setting_formats/appln_settings.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -30,6 +33,4 @@ static_assert(offsetof(ApplnSettings, service_discovery_control_settings) == 0x5 static_assert(offsetof(ApplnSettings, in_repair_process_enable_flag) == 0x74); static_assert(sizeof(ApplnSettings) == 0x78, "ApplnSettings has the wrong size!"); -ApplnSettings DefaultApplnSettings(); - } // namespace Service::Set diff --git a/src/core/hle/service/set/setting_formats/device_settings.cpp b/src/core/hle/service/set/setting_formats/device_settings.cpp index 5f295404d9..00228e7a54 100644 --- a/src/core/hle/service/set/setting_formats/device_settings.cpp +++ b/src/core/hle/service/set/setting_formats/device_settings.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -5,8 +8,4 @@ namespace Service::Set { -DeviceSettings DefaultDeviceSettings() { - return {}; -} - } // namespace Service::Set diff --git a/src/core/hle/service/set/setting_formats/device_settings.h b/src/core/hle/service/set/setting_formats/device_settings.h index 2827756f6a..fb300437b0 100644 --- a/src/core/hle/service/set/setting_formats/device_settings.h +++ b/src/core/hle/service/set/setting_formats/device_settings.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -49,6 +52,4 @@ static_assert(offsetof(DeviceSettings, console_six_axis_sensor_acceleration_bias static_assert(offsetof(DeviceSettings, console_six_axis_sensor_angular_acceleration) == 0x13C); static_assert(sizeof(DeviceSettings) == 0x160, "DeviceSettings has the wrong size!"); -DeviceSettings DefaultDeviceSettings(); - } // namespace Service::Set diff --git a/src/core/hle/service/set/setting_formats/private_settings.cpp b/src/core/hle/service/set/setting_formats/private_settings.cpp index 81c3624826..78d9a616f1 100644 --- a/src/core/hle/service/set/setting_formats/private_settings.cpp +++ b/src/core/hle/service/set/setting_formats/private_settings.cpp @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -5,8 +8,4 @@ namespace Service::Set { -PrivateSettings DefaultPrivateSettings() { - return {}; -} - } // namespace Service::Set diff --git a/src/core/hle/service/set/setting_formats/private_settings.h b/src/core/hle/service/set/setting_formats/private_settings.h index 6579e95e04..0e803c0540 100644 --- a/src/core/hle/service/set/setting_formats/private_settings.h +++ b/src/core/hle/service/set/setting_formats/private_settings.h @@ -1,3 +1,6 @@ +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later @@ -33,6 +36,4 @@ static_assert(offsetof(PrivateSettings, external_steady_clock_internal_offset) = static_assert(offsetof(PrivateSettings, platform_region) == 0xD0); static_assert(sizeof(PrivateSettings) == 0xD8, "PrivateSettings has the wrong size!"); -PrivateSettings DefaultPrivateSettings(); - } // namespace Service::Set diff --git a/src/core/hle/service/set/setting_formats/system_settings.cpp b/src/core/hle/service/set/setting_formats/system_settings.cpp index 258e213e13..49909262c7 100644 --- a/src/core/hle/service/set/setting_formats/system_settings.cpp +++ b/src/core/hle/service/set/setting_formats/system_settings.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project @@ -9,69 +9,4 @@ namespace Service::Set { -SystemSettings DefaultSystemSettings() { - SystemSettings settings{}; - - settings.version = 0x140000; - settings.flags = 7; - - settings.mii_author_id = Common::UUID::MakeDefault(); - - settings.color_set_id = ColorSet::BasicWhite; - - settings.notification_settings = { - .flags{0x300}, - .volume = NotificationVolume::High, - .start_time = {.hour = 9, .minute = 0}, - .stop_time = {.hour = 21, .minute = 0}, - }; - - settings.tv_settings = { - .flags = {0xC}, - .tv_resolution = TvResolution::Auto, - .hdmi_content_type = HdmiContentType::Game, - .rgb_range = RgbRange::Auto, - .cmu_mode = CmuMode::None, - .tv_underscan = {}, - .tv_gama = 1.0f, - .contrast_ratio = 0.5f, - }; - - settings.initial_launch_settings_packed = { - .flags = {0x10001}, - .timestamp = {}, - }; - - settings.sleep_settings = { - .flags = {0x3}, - .handheld_sleep_plan = HandheldSleepPlan::Sleep10Min, - .console_sleep_plan = ConsoleSleepPlan::Sleep1Hour, - }; - - settings.device_time_zone_location_name = Service::PSC::Time::LocationName{"UTC"}; - settings.user_system_clock_automatic_correction_enabled = true; - - settings.primary_album_storage = PrimaryAlbumStorage::SdCard; - settings.battery_percentage_flag = true; - settings.chinese_traditional_input_method = ChineseTraditionalInputMethod::Unknown0; - settings.vibration_master_volume = 1.0f; - settings.touch_screen_mode = TouchScreenMode::Standard; - settings.nfc_enable_flag = true; - settings.bluetooth_enable_flag = true; - settings.wireless_lan_enable_flag = true; - - const auto language_code = - available_language_codes[static_cast(::Settings::values.language_index.GetValue())]; - const auto key_code = - std::find_if(language_to_layout.cbegin(), language_to_layout.cend(), - [=](const auto& element) { return element.first == language_code; }); - - settings.keyboard_layout = KeyboardLayout::EnglishUs; - if (key_code != language_to_layout.end()) { - settings.keyboard_layout = key_code->second; - } - - return settings; -} - } // namespace Service::Set diff --git a/src/core/hle/service/set/setting_formats/system_settings.h b/src/core/hle/service/set/setting_formats/system_settings.h index 75deb1a93f..095a7b254a 100644 --- a/src/core/hle/service/set/setting_formats/system_settings.h +++ b/src/core/hle/service/set/setting_formats/system_settings.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project @@ -389,6 +389,4 @@ static_assert(offsetof(SystemSettings, nx_controller_settings_data_from_offset_3 static_assert(sizeof(SystemSettings) == 0x336A0, "SystemSettings has the wrong size!"); -SystemSettings DefaultSystemSettings(); - } // namespace Service::Set diff --git a/src/core/hle/service/set/system_settings_server.cpp b/src/core/hle/service/set/system_settings_server.cpp index f87dd847ba..bcef34de9e 100644 --- a/src/core/hle/service/set/system_settings_server.cpp +++ b/src/core/hle/service/set/system_settings_server.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project @@ -377,22 +377,18 @@ bool ISystemSettingsServer::LoadSettingsFile(std::filesystem::path& path, auto&& auto settings_file = path / "settings.dat"; auto exists = std::filesystem::exists(settings_file); - auto file_size_ok = exists && std::filesystem::file_size(settings_file) == - sizeof(SettingsHeader) + sizeof(settings_type); - + auto file_size_ok = exists && std::filesystem::file_size(settings_file) == sizeof(SettingsHeader) + sizeof(settings_type); auto ResetToDefault = [&]() { - auto default_settings{default_func()}; - + auto default_settings; + default_func(default_settings); SettingsHeader hdr{ .magic = SETTINGS_MAGIC, .version = SETTINGS_VERSION, .reserved = 0u, }; - std::ofstream out_settings_file(settings_file, std::ios::out | std::ios::binary); out_settings_file.write(reinterpret_cast(&hdr), sizeof(hdr)); - out_settings_file.write(reinterpret_cast(&default_settings), - sizeof(settings_type)); + out_settings_file.write(reinterpret_cast(&default_settings), sizeof(settings_type)); out_settings_file.flush(); out_settings_file.close(); }; @@ -432,7 +428,6 @@ bool ISystemSettingsServer::LoadSettingsFile(std::filesystem::path& path, auto&& UNREACHABLE(); } file.close(); - return true; } @@ -1371,24 +1366,98 @@ Result ISystemSettingsServer::GetHttpAuthConfigs(Out out_count, OutBuffersecond; + } +} + +static void DefaultPrivateSettings(PrivateSettings& settings) { + settings = {}; +} + +static void DefaultDeviceSettings(DeviceSettings& settings) { + settings = {}; +} + +static void DefaultApplnSettings(ApplnSettings& settings) { + settings = {}; + settings.mii_author_id = Common::UUID::MakeDefault(); +} + +// URVO fails on MSVC, causing stack __chkstk to fail due to the sheer bigness of SystemSettings :) void ISystemSettingsServer::SetupSettings() { auto system_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir) / "system/save/8000000000000050"; - if (!LoadSettingsFile(system_dir, []() { return DefaultSystemSettings(); })) { + if (!LoadSettingsFile(system_dir, DefaultSystemSettings)) { ASSERT(false); } auto private_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir) / "system/save/8000000000000052"; - if (!LoadSettingsFile(private_dir, []() { return DefaultPrivateSettings(); })) { + if (!LoadSettingsFile(private_dir, DefaultPrivateSettings)) { ASSERT(false); } auto device_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir) / "system/save/8000000000000053"; - if (!LoadSettingsFile(device_dir, []() { return DefaultDeviceSettings(); })) { + if (!LoadSettingsFile(device_dir, DefaultDeviceSettings)) { ASSERT(false); } auto appln_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::NANDDir) / "system/save/8000000000000054"; - if (!LoadSettingsFile(appln_dir, []() { return DefaultApplnSettings(); })) { + if (!LoadSettingsFile(appln_dir, DefaultApplnSettings)) { ASSERT(false); } }