diff options
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/set/setting_formats/appln_settings.cpp (renamed from src/core/hle/service/set/appln_settings.cpp) | 8 | ||||
-rw-r--r-- | src/core/hle/service/set/setting_formats/appln_settings.h (renamed from src/core/hle/service/set/appln_settings.h) | 17 | ||||
-rw-r--r-- | src/core/hle/service/set/setting_formats/device_settings.cpp (renamed from src/core/hle/service/set/device_settings.cpp) | 2 | ||||
-rw-r--r-- | src/core/hle/service/set/setting_formats/device_settings.h (renamed from src/core/hle/service/set/device_settings.h) | 16 | ||||
-rw-r--r-- | src/core/hle/service/set/setting_formats/private_settings.cpp (renamed from src/core/hle/service/set/private_settings.cpp) | 2 | ||||
-rw-r--r-- | src/core/hle/service/set/setting_formats/private_settings.h | 39 | ||||
-rw-r--r-- | src/core/hle/service/set/setting_formats/system_settings.cpp (renamed from src/core/hle/service/set/system_settings.cpp) | 8 | ||||
-rw-r--r-- | src/core/hle/service/set/setting_formats/system_settings.h (renamed from src/core/hle/service/set/system_settings.h) | 496 |
8 files changed, 163 insertions, 425 deletions
diff --git a/src/core/hle/service/set/appln_settings.cpp b/src/core/hle/service/set/setting_formats/appln_settings.cpp index a5d802757..f7c7d5b91 100644 --- a/src/core/hle/service/set/appln_settings.cpp +++ b/src/core/hle/service/set/setting_formats/appln_settings.cpp @@ -1,12 +1,16 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include "core/hle/service/set/appln_settings.h" +#include "core/hle/service/set/setting_formats/appln_settings.h" namespace Service::Set { ApplnSettings DefaultApplnSettings() { - return {}; + ApplnSettings settings{}; + + settings.mii_author_id = Common::UUID::MakeDefault(); + + return settings; } } // namespace Service::Set diff --git a/src/core/hle/service/set/appln_settings.h b/src/core/hle/service/set/setting_formats/appln_settings.h index 126375860..ba9af998a 100644 --- a/src/core/hle/service/set/appln_settings.h +++ b/src/core/hle/service/set/setting_formats/appln_settings.h @@ -7,24 +7,23 @@ #include <cstddef> #include "common/common_types.h" +#include "common/uuid.h" +#include "core/hle/service/set/settings_types.h" namespace Service::Set { struct ApplnSettings { - std::array<u8, 0x10> reserved_000; + INSERT_PADDING_BYTES(0x10); // Reserved // nn::util::Uuid MiiAuthorId, copied from system settings 0x94B0 - std::array<u8, 0x10> mii_author_id; - - std::array<u8, 0x30> reserved_020; + Common::UUID mii_author_id; + INSERT_PADDING_BYTES(0x30); // Reserved // nn::settings::system::ServiceDiscoveryControlSettings - std::array<u8, 0x4> service_discovery_control_settings; - - std::array<u8, 0x20> reserved_054; + u32 service_discovery_control_settings; + INSERT_PADDING_BYTES(0x20); // Reserved bool in_repair_process_enable_flag; - - std::array<u8, 0x3> pad_075; + INSERT_PADDING_BYTES(0x3); }; static_assert(offsetof(ApplnSettings, mii_author_id) == 0x10); static_assert(offsetof(ApplnSettings, service_discovery_control_settings) == 0x50); diff --git a/src/core/hle/service/set/device_settings.cpp b/src/core/hle/service/set/setting_formats/device_settings.cpp index e423ce38a..5f295404d 100644 --- a/src/core/hle/service/set/device_settings.cpp +++ b/src/core/hle/service/set/setting_formats/device_settings.cpp @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include "core/hle/service/set/device_settings.h" +#include "core/hle/service/set/setting_formats/device_settings.h" namespace Service::Set { diff --git a/src/core/hle/service/set/device_settings.h b/src/core/hle/service/set/setting_formats/device_settings.h index f291d0ebe..2827756f6 100644 --- a/src/core/hle/service/set/device_settings.h +++ b/src/core/hle/service/set/setting_formats/device_settings.h @@ -7,10 +7,12 @@ #include <cstddef> #include "common/common_types.h" +#include "common/vector_math.h" +#include "core/hle/service/set/settings_types.h" namespace Service::Set { struct DeviceSettings { - std::array<u8, 0x10> reserved_000; + INSERT_PADDING_BYTES(0x10); // Reserved // nn::settings::BatteryLot std::array<u8, 0x18> ptm_battery_lot; @@ -19,26 +21,24 @@ struct DeviceSettings { u8 ptm_battery_version; // nn::settings::system::PtmCycleCountReliability u32 ptm_cycle_count_reliability; - - std::array<u8, 0x48> reserved_048; + INSERT_PADDING_BYTES(0x48); // Reserved // nn::settings::system::AnalogStickUserCalibration L std::array<u8, 0x10> analog_user_stick_calibration_l; // nn::settings::system::AnalogStickUserCalibration R std::array<u8, 0x10> analog_user_stick_calibration_r; - - std::array<u8, 0x20> reserved_0B0; + INSERT_PADDING_BYTES(0x20); // Reserved // nn::settings::system::ConsoleSixAxisSensorAccelerationBias - std::array<u8, 0xC> console_six_axis_sensor_acceleration_bias; + Common::Vec3<f32> console_six_axis_sensor_acceleration_bias; // nn::settings::system::ConsoleSixAxisSensorAngularVelocityBias - std::array<u8, 0xC> console_six_axis_sensor_angular_velocity_bias; + Common::Vec3<f32> console_six_axis_sensor_angular_velocity_bias; // nn::settings::system::ConsoleSixAxisSensorAccelerationGain std::array<u8, 0x24> console_six_axis_sensor_acceleration_gain; // nn::settings::system::ConsoleSixAxisSensorAngularVelocityGain std::array<u8, 0x24> console_six_axis_sensor_angular_velocity_gain; // nn::settings::system::ConsoleSixAxisSensorAngularVelocityTimeBias - std::array<u8, 0xC> console_six_axis_sensor_angular_velocity_time_bias; + Common::Vec3<f32> console_six_axis_sensor_angular_velocity_time_bias; // nn::settings::system::ConsoleSixAxisSensorAngularAcceleration std::array<u8, 0x24> console_six_axis_sensor_angular_acceleration; }; diff --git a/src/core/hle/service/set/private_settings.cpp b/src/core/hle/service/set/setting_formats/private_settings.cpp index 70bf65727..81c362482 100644 --- a/src/core/hle/service/set/private_settings.cpp +++ b/src/core/hle/service/set/setting_formats/private_settings.cpp @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include "core/hle/service/set/private_settings.h" +#include "core/hle/service/set/setting_formats/private_settings.h" 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 new file mode 100644 index 000000000..6c40f62e1 --- /dev/null +++ b/src/core/hle/service/set/setting_formats/private_settings.h @@ -0,0 +1,39 @@ +// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <array> + +#include "common/common_types.h" +#include "common/uuid.h" +#include "core/hle/service/set/settings_types.h" +#include "core/hle/service/time/clock_types.h" + +namespace Service::Set { + +struct PrivateSettings { + INSERT_PADDING_BYTES(0x10); // Reserved + + InitialLaunchSettings initial_launch_settings; + INSERT_PADDING_BYTES(0x20); // Reserved + + Common::UUID external_clock_source_id; + s64 shutdown_rtc_value; + s64 external_steady_clock_internal_offset; + INSERT_PADDING_BYTES(0x60); // Reserved + + // nn::settings::system::PlatformRegion + s32 platform_region; + INSERT_PADDING_BYTES(0x4); // Reserved +}; +static_assert(offsetof(PrivateSettings, initial_launch_settings) == 0x10); +static_assert(offsetof(PrivateSettings, external_clock_source_id) == 0x50); +static_assert(offsetof(PrivateSettings, shutdown_rtc_value) == 0x60); +static_assert(offsetof(PrivateSettings, external_steady_clock_internal_offset) == 0x68); +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/system_settings.cpp b/src/core/hle/service/set/setting_formats/system_settings.cpp index 5977429b2..66e57651e 100644 --- a/src/core/hle/service/set/system_settings.cpp +++ b/src/core/hle/service/set/setting_formats/system_settings.cpp @@ -1,7 +1,7 @@ // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later -#include "core/hle/service/set/system_settings.h" +#include "core/hle/service/set/setting_formats/system_settings.h" namespace Service::Set { @@ -11,6 +11,8 @@ SystemSettings DefaultSystemSettings() { settings.version = 0x140000; settings.flags = 7; + settings.mii_author_id = Common::UUID::MakeDefault(); + settings.color_set_id = ColorSet::BasicWhite; settings.notification_settings = { @@ -45,6 +47,10 @@ SystemSettings DefaultSystemSettings() { settings.device_time_zone_location_name = {"UTC"}; settings.user_system_clock_automatic_correction_enabled = false; + settings.primary_album_storage = PrimaryAlbumStorage::SdCard; + settings.battery_percentage_flag = true; + settings.chinese_traditional_input_method = ChineseTraditionalInputMethod::Unknown0; + return settings; } diff --git a/src/core/hle/service/set/system_settings.h b/src/core/hle/service/set/setting_formats/system_settings.h index 6ec9e71e7..14654f8b1 100644 --- a/src/core/hle/service/set/system_settings.h +++ b/src/core/hle/service/set/setting_formats/system_settings.h @@ -8,272 +8,14 @@ #include "common/bit_field.h" #include "common/common_funcs.h" #include "common/common_types.h" -#include "core/hle/service/set/private_settings.h" +#include "common/uuid.h" +#include "common/vector_math.h" +#include "core/hle/service/set/setting_formats/private_settings.h" +#include "core/hle/service/set/settings_types.h" #include "core/hle/service/time/clock_types.h" namespace Service::Set { -/// This is "nn::settings::LanguageCode", which is a NUL-terminated string stored in a u64. -enum class LanguageCode : u64 { - JA = 0x000000000000616A, - EN_US = 0x00000053552D6E65, - FR = 0x0000000000007266, - DE = 0x0000000000006564, - IT = 0x0000000000007469, - ES = 0x0000000000007365, - ZH_CN = 0x0000004E432D687A, - KO = 0x0000000000006F6B, - NL = 0x0000000000006C6E, - PT = 0x0000000000007470, - RU = 0x0000000000007572, - ZH_TW = 0x00000057542D687A, - EN_GB = 0x00000042472D6E65, - FR_CA = 0x00000041432D7266, - ES_419 = 0x00003931342D7365, - ZH_HANS = 0x00736E61482D687A, - ZH_HANT = 0x00746E61482D687A, - PT_BR = 0x00000052422D7470, -}; - -/// This is nn::settings::system::ErrorReportSharePermission -enum class ErrorReportSharePermission : u32 { - NotConfirmed, - Granted, - Denied, -}; - -/// This is nn::settings::system::ChineseTraditionalInputMethod -enum class ChineseTraditionalInputMethod : u32 { - Unknown0 = 0, - Unknown1 = 1, - Unknown2 = 2, -}; - -/// This is nn::settings::system::HomeMenuScheme -struct HomeMenuScheme { - u32 main; - u32 back; - u32 sub; - u32 bezel; - u32 extra; -}; -static_assert(sizeof(HomeMenuScheme) == 0x14, "HomeMenuScheme is incorrect size"); - -/// Indicates the current theme set by the system settings -enum class ColorSet : u32 { - BasicWhite = 0, - BasicBlack = 1, -}; - -/// Indicates the current console is a retail or kiosk unit -enum class QuestFlag : u8 { - Retail = 0, - Kiosk = 1, -}; - -/// This is nn::settings::system::RegionCode -enum class RegionCode : u32 { - Japan, - Usa, - Europe, - Australia, - HongKongTaiwanKorea, - China, -}; - -/// This is nn::settings::system::AccountSettings -struct AccountSettings { - u32 flags; -}; -static_assert(sizeof(AccountSettings) == 4, "AccountSettings is an invalid size"); - -/// This is nn::settings::system::NotificationVolume -enum class NotificationVolume : u32 { - Mute, - Low, - High, -}; - -/// This is nn::settings::system::NotificationFlag -struct NotificationFlag { - union { - u32 raw{}; - - BitField<0, 1, u32> RingtoneFlag; - BitField<1, 1, u32> DownloadCompletionFlag; - BitField<8, 1, u32> EnablesNews; - BitField<9, 1, u32> IncomingLampFlag; - }; -}; -static_assert(sizeof(NotificationFlag) == 4, "NotificationFlag is an invalid size"); - -/// This is nn::settings::system::NotificationTime -struct NotificationTime { - u32 hour; - u32 minute; -}; -static_assert(sizeof(NotificationTime) == 0x8, "NotificationTime is an invalid size"); - -/// This is nn::settings::system::NotificationSettings -struct NotificationSettings { - NotificationFlag flags; - NotificationVolume volume; - NotificationTime start_time; - NotificationTime stop_time; -}; -static_assert(sizeof(NotificationSettings) == 0x18, "NotificationSettings is an invalid size"); - -/// This is nn::settings::system::AccountNotificationFlag -struct AccountNotificationFlag { - union { - u32 raw{}; - - BitField<0, 1, u32> FriendOnlineFlag; - BitField<1, 1, u32> FriendRequestFlag; - BitField<8, 1, u32> CoralInvitationFlag; - }; -}; -static_assert(sizeof(AccountNotificationFlag) == 4, "AccountNotificationFlag is an invalid size"); - -/// This is nn::settings::system::FriendPresenceOverlayPermission -enum class FriendPresenceOverlayPermission : u8 { - NotConfirmed, - NoDisplay, - FavoriteFriends, - Friends, -}; - -/// This is nn::settings::system::AccountNotificationSettings -struct AccountNotificationSettings { - Common::UUID uid; - AccountNotificationFlag flags; - FriendPresenceOverlayPermission friend_presence_permission; - FriendPresenceOverlayPermission friend_invitation_permission; - INSERT_PADDING_BYTES(0x2); -}; -static_assert(sizeof(AccountNotificationSettings) == 0x18, - "AccountNotificationSettings is an invalid size"); - -/// This is nn::settings::system::TvFlag -struct TvFlag { - union { - u32 raw{}; - - BitField<0, 1, u32> Allows4k; - BitField<1, 1, u32> Allows3d; - BitField<2, 1, u32> AllowsCec; - BitField<3, 1, u32> PreventsScreenBurnIn; - }; -}; -static_assert(sizeof(TvFlag) == 4, "TvFlag is an invalid size"); - -/// This is nn::settings::system::TvResolution -enum class TvResolution : u32 { - Auto, - Resolution1080p, - Resolution720p, - Resolution480p, -}; - -/// This is nn::settings::system::HdmiContentType -enum class HdmiContentType : u32 { - None, - Graphics, - Cinema, - Photo, - Game, -}; - -/// This is nn::settings::system::RgbRange -enum class RgbRange : u32 { - Auto, - Full, - Limited, -}; - -/// This is nn::settings::system::CmuMode -enum class CmuMode : u32 { - None, - ColorInvert, - HighContrast, - GrayScale, -}; - -/// This is nn::settings::system::TvSettings -struct TvSettings { - TvFlag flags; - TvResolution tv_resolution; - HdmiContentType hdmi_content_type; - RgbRange rgb_range; - CmuMode cmu_mode; - u32 tv_underscan; - f32 tv_gama; - f32 contrast_ratio; -}; -static_assert(sizeof(TvSettings) == 0x20, "TvSettings is an invalid size"); - -/// This is nn::settings::system::PrimaryAlbumStorage -enum class PrimaryAlbumStorage : u32 { - Nand, - SdCard, -}; - -/// This is nn::settings::system::HandheldSleepPlan -enum class HandheldSleepPlan : u32 { - Sleep1Min, - Sleep3Min, - Sleep5Min, - Sleep10Min, - Sleep30Min, - Never, -}; - -/// This is nn::settings::system::ConsoleSleepPlan -enum class ConsoleSleepPlan : u32 { - Sleep1Hour, - Sleep2Hour, - Sleep3Hour, - Sleep6Hour, - Sleep12Hour, - Never, -}; - -/// This is nn::settings::system::SleepFlag -struct SleepFlag { - union { - u32 raw{}; - - BitField<0, 1, u32> SleepsWhilePlayingMedia; - BitField<1, 1, u32> WakesAtPowerStateChange; - }; -}; -static_assert(sizeof(SleepFlag) == 4, "TvFlag is an invalid size"); - -/// This is nn::settings::system::SleepSettings -struct SleepSettings { - SleepFlag flags; - HandheldSleepPlan handheld_sleep_plan; - ConsoleSleepPlan console_sleep_plan; -}; -static_assert(sizeof(SleepSettings) == 0xc, "SleepSettings is incorrect size"); - -/// This is nn::settings::system::EulaVersionClockType -enum class EulaVersionClockType : u32 { - NetworkSystemClock, - SteadyClock, -}; - -/// This is nn::settings::system::EulaVersion -struct EulaVersion { - u32 version; - RegionCode region_code; - EulaVersionClockType clock_type; - INSERT_PADDING_BYTES(0x4); - s64 posix_time; - Time::Clock::SteadyClockTimePoint timestamp; -}; -static_assert(sizeof(EulaVersion) == 0x30, "EulaVersion is incorrect size"); - struct SystemSettings { // 0/unwritten (1.0.0), 0x20000 (2.0.0), 0x30000 (3.0.0-3.0.1), 0x40001 (4.0.0-4.1.0), 0x50000 // (5.0.0-5.1.0), 0x60000 (6.0.0-6.2.0), 0x70000 (7.0.0), 0x80000 (8.0.0-8.1.1), 0x90000 @@ -283,20 +25,16 @@ struct SystemSettings { // 0/unwritten (1.0.0), 1 (6.0.0-8.1.0), 2 (8.1.1), 7 (9.0.0+). // if (flags & 2), defaults are written for AnalogStickUserCalibration u32 flags; + INSERT_PADDING_BYTES(0x8); // Reserved - std::array<u8, 0x8> reserved_00008; - - // nn::settings::LanguageCode LanguageCode language_code; - - std::array<u8, 0x38> reserved_00018; + INSERT_PADDING_BYTES(0x38); // Reserved // nn::settings::system::NetworkSettings u32 network_setting_count; bool wireless_lan_enable_flag; - std::array<u8, 0x3> pad_00055; - - std::array<u8, 0x8> reserved_00058; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x8); // Reserved // nn::settings::system::NetworkSettings std::array<std::array<u8, 0x400>, 32> network_settings_1B0; @@ -304,161 +42,142 @@ struct SystemSettings { // nn::settings::system::BluetoothDevicesSettings std::array<u8, 0x4> bluetooth_device_settings_count; bool bluetooth_enable_flag; - std::array<u8, 0x3> pad_08065; + INSERT_PADDING_BYTES(0x3); bool bluetooth_afh_enable_flag; - std::array<u8, 0x3> pad_08069; + INSERT_PADDING_BYTES(0x3); bool bluetooth_boost_enable_flag; - std::array<u8, 0x3> pad_0806D; + INSERT_PADDING_BYTES(0x3); std::array<std::array<u8, 0x200>, 10> bluetooth_device_settings_first_10; s32 ldn_channel; - - std::array<u8, 0x3C> reserved_09474; + INSERT_PADDING_BYTES(0x3C); // Reserved // nn::util::Uuid MiiAuthorId - std::array<u8, 0x10> mii_author_id; + Common::UUID mii_author_id; - std::array<u8, 0x30> reserved_094C0; + INSERT_PADDING_BYTES(0x30); // Reserved // nn::settings::system::NxControllerSettings u32 nx_controller_settings_count; - std::array<u8, 0xC> reserved_094F4; + INSERT_PADDING_BYTES(0xC); // Reserved // nn::settings::system::NxControllerSettings, // nn::settings::system::NxControllerLegacySettings on 13.0.0+ std::array<std::array<u8, 0x40>, 10> nx_controller_legacy_settings; - - std::array<u8, 0x170> reserved_09780; + INSERT_PADDING_BYTES(0x170); // Reserved bool external_rtc_reset_flag; - std::array<u8, 0x3> pad_098F1; - - std::array<u8, 0x3C> reserved_098F4; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x3C); // Reserved s32 push_notification_activity_mode_on_sleep; + INSERT_PADDING_BYTES(0x3C); // Reserved - std::array<u8, 0x3C> reserved_09934; - - // nn::settings::system::ErrorReportSharePermission ErrorReportSharePermission error_report_share_permission; + INSERT_PADDING_BYTES(0x3C); // Reserved - std::array<u8, 0x3C> reserved_09974; - - // nn::settings::KeyboardLayout - std::array<u8, 0x4> keyboard_layout; - - std::array<u8, 0x3C> reserved_099B4; + KeyboardLayout keyboard_layout; + INSERT_PADDING_BYTES(0x3C); // Reserved bool web_inspector_flag; - std::array<u8, 0x3> pad_099F1; + INSERT_PADDING_BYTES(0x3); // nn::settings::system::AllowedSslHost u32 allowed_ssl_host_count; bool memory_usage_rate_flag; - std::array<u8, 0x3> pad_099F9; - - std::array<u8, 0x34> reserved_099FC; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x34); // Reserved // nn::settings::system::HostFsMountPoint std::array<u8, 0x100> host_fs_mount_point; // nn::settings::system::AllowedSslHost std::array<std::array<u8, 0x100>, 8> allowed_ssl_hosts; - - std::array<u8, 0x6C0> reserved_0A330; + INSERT_PADDING_BYTES(0x6C0); // Reserved // nn::settings::system::BlePairingSettings u32 ble_pairing_settings_count; - std::array<u8, 0xC> reserved_0A9F4; + INSERT_PADDING_BYTES(0xC); // Reserved std::array<std::array<u8, 0x80>, 10> ble_pairing_settings; // nn::settings::system::AccountOnlineStorageSettings u32 account_online_storage_settings_count; - std::array<u8, 0xC> reserved_0AF04; + INSERT_PADDING_BYTES(0xC); // Reserved std::array<std::array<u8, 0x40>, 8> account_online_storage_settings; bool pctl_ready_flag; - std::array<u8, 0x3> pad_0B111; - - std::array<u8, 0x3C> reserved_0B114; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x3C); // Reserved // nn::settings::system::ThemeId std::array<u8, 0x80> theme_id_type0; std::array<u8, 0x80> theme_id_type1; + INSERT_PADDING_BYTES(0x100); // Reserved - std::array<u8, 0x100> reserved_0B250; - - // nn::settings::ChineseTraditionalInputMethod ChineseTraditionalInputMethod chinese_traditional_input_method; - - std::array<u8, 0x3C> reserved_0B354; + INSERT_PADDING_BYTES(0x3C); // Reserved bool zoom_flag; - std::array<u8, 0x3> pad_0B391; - - std::array<u8, 0x3C> reserved_0B394; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x3C); // Reserved // nn::settings::system::ButtonConfigRegisteredSettings u32 button_config_registered_settings_count; - std::array<u8, 0xC> reserved_0B3D4; + INSERT_PADDING_BYTES(0xC); // Reserved // nn::settings::system::ButtonConfigSettings u32 button_config_settings_count; - std::array<u8, 0x4> reserved_0B3E4; + INSERT_PADDING_BYTES(0x4); // Reserved std::array<std::array<u8, 0x5A8>, 5> button_config_settings; - std::array<u8, 0x13B0> reserved_0D030; + INSERT_PADDING_BYTES(0x13B0); // Reserved u32 button_config_settings_embedded_count; - std::array<u8, 0x4> reserved_0E3E4; + INSERT_PADDING_BYTES(0x4); // Reserved std::array<std::array<u8, 0x5A8>, 5> button_config_settings_embedded; - std::array<u8, 0x13B0> reserved_10030; + INSERT_PADDING_BYTES(0x13B0); // Reserved u32 button_config_settings_left_count; - std::array<u8, 0x4> reserved_113E4; + INSERT_PADDING_BYTES(0x4); // Reserved std::array<std::array<u8, 0x5A8>, 5> button_config_settings_left; - std::array<u8, 0x13B0> reserved_13030; + INSERT_PADDING_BYTES(0x13B0); // Reserved u32 button_config_settings_right_count; - std::array<u8, 0x4> reserved_143E4; + INSERT_PADDING_BYTES(0x4); // Reserved std::array<std::array<u8, 0x5A8>, 5> button_config_settings_right; - std::array<u8, 0x73B0> reserved_16030; + INSERT_PADDING_BYTES(0x73B0); // Reserved // nn::settings::system::ButtonConfigRegisteredSettings std::array<u8, 0x5C8> button_config_registered_settings_embedded; std::array<std::array<u8, 0x5C8>, 10> button_config_registered_settings; - - std::array<u8, 0x7FF8> reserved_21378; + INSERT_PADDING_BYTES(0x7FF8); // Reserved // nn::settings::system::ConsoleSixAxisSensorAccelerationBias - std::array<u8, 0xC> console_six_axis_sensor_acceleration_bias; + Common::Vec3<f32> console_six_axis_sensor_acceleration_bias; // nn::settings::system::ConsoleSixAxisSensorAngularVelocityBias - std::array<u8, 0xC> console_six_axis_sensor_angular_velocity_bias; + Common::Vec3<f32> console_six_axis_sensor_angular_velocity_bias; // nn::settings::system::ConsoleSixAxisSensorAccelerationGain std::array<u8, 0x24> console_six_axis_sensor_acceleration_gain; // nn::settings::system::ConsoleSixAxisSensorAngularVelocityGain std::array<u8, 0x24> console_six_axis_sensor_angular_velocity_gain; // nn::settings::system::ConsoleSixAxisSensorAngularVelocityTimeBias - std::array<u8, 0xC> console_six_axis_sensor_angular_velocity_time_bias; + Common::Vec3<f32> console_six_axis_sensor_angular_velocity_time_bias; // nn::settings::system::ConsoleSixAxisSensorAngularAcceleration std::array<u8, 0x24> console_six_axis_sensor_angular_velocity_acceleration; - - std::array<u8, 0x70> reserved_29400; + INSERT_PADDING_BYTES(0x70); // Reserved bool lock_screen_flag; - std::array<u8, 0x3> pad_29471; - - std::array<u8, 0x4> reserved_249274; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x4); // Reserved ColorSet color_set_id; QuestFlag quest_flag; - // nn::settings::system::RegionCode - RegionCode region_code; + SystemRegionCode region_code; // Different to nn::settings::system::InitialLaunchSettings? InitialLaunchSettingsPacked initial_launch_settings_packed; bool battery_percentage_flag; - std::array<u8, 0x3> pad_294A1; + INSERT_PADDING_BYTES(0x3); // BitFlagSet<32, nn::settings::system::AppletLaunchFlag> u32 applet_launch_flag; @@ -469,33 +188,26 @@ struct SystemSettings { std::array<u8, 0x10> theme_key; bool field_testing_flag; - std::array<u8, 0x3> pad_294C1; + INSERT_PADDING_BYTES(0x3); s32 panel_crc_mode; - - std::array<u8, 0x28> reserved_294C8; + INSERT_PADDING_BYTES(0x28); // Reserved // nn::settings::system::BacklightSettings std::array<u8, 0x2C> backlight_settings_mixed_up; + INSERT_PADDING_BYTES(0x64); // Reserved - std::array<u8, 0x64> reserved_2951C; - - // nn::time::SystemClockContext Service::Time::Clock::SystemClockContext user_system_clock_context; Service::Time::Clock::SystemClockContext network_system_clock_context; bool user_system_clock_automatic_correction_enabled; - std::array<u8, 0x3> pad_295C1; - std::array<u8, 0x4> reserved_295C4; - // nn::time::SteadyClockTimePoint + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x4); // Reserved Service::Time::Clock::SteadyClockTimePoint user_system_clock_automatic_correction_updated_time_point; + INSERT_PADDING_BYTES(0x10); // Reserved - std::array<u8, 0x10> reserved_295E0; - - // nn::settings::system::AccountSettings AccountSettings account_settings; - - std::array<u8, 0xFC> reserved_295F4; + INSERT_PADDING_BYTES(0xFC); // Reserved // nn::settings::system::AudioVolume std::array<u8, 0x8> audio_volume_type0; @@ -505,47 +217,42 @@ struct SystemSettings { s32 audio_output_mode_type1; s32 audio_output_mode_type2; bool force_mute_on_headphone_removed; - std::array<u8, 0x3> pad_2970D; + INSERT_PADDING_BYTES(0x3); s32 headphone_volume_warning_count; bool heaphone_volume_update_flag; - std::array<u8, 0x3> pad_29715; + INSERT_PADDING_BYTES(0x3); // nn::settings::system::AudioVolume std::array<u8, 0x8> audio_volume_type2; // nn::settings::system::AudioOutputMode s32 audio_output_mode_type3; s32 audio_output_mode_type4; bool hearing_protection_safeguard_flag; - std::array<u8, 0x3> pad_29729; - std::array<u8, 0x4> reserved_2972C; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x4); // Reserved s64 hearing_protection_safeguard_remaining_time; - std::array<u8, 0x38> reserved_29738; + INSERT_PADDING_BYTES(0x38); // Reserved bool console_information_upload_flag; - std::array<u8, 0x3> pad_29771; - - std::array<u8, 0x3C> reserved_29774; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x3C); // Reserved bool automatic_application_download_flag; - std::array<u8, 0x3> pad_297B1; - - std::array<u8, 0x4> reserved_297B4; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x4); // Reserved - // nn::settings::system::NotificationSettings NotificationSettings notification_settings; - - std::array<u8, 0x60> reserved_297D0; + INSERT_PADDING_BYTES(0x60); // Reserved // nn::settings::system::AccountNotificationSettings u32 account_notification_settings_count; - std::array<u8, 0xC> reserved_29834; + INSERT_PADDING_BYTES(0xC); // Reserved std::array<AccountNotificationSettings, 8> account_notification_settings; - - std::array<u8, 0x140> reserved_29900; + INSERT_PADDING_BYTES(0x140); // Reserved f32 vibration_master_volume; bool usb_full_key_enable_flag; - std::array<u8, 0x3> pad_29A45; + INSERT_PADDING_BYTES(0x3); // nn::settings::system::AnalogStickUserCalibration std::array<u8, 0x10> analog_stick_user_calibration_left; @@ -553,85 +260,68 @@ struct SystemSettings { // nn::settings::system::TouchScreenMode s32 touch_screen_mode; + INSERT_PADDING_BYTES(0x14); // Reserved - std::array<u8, 0x14> reserved_29A6C; - - // nn::settings::system::TvSettings TvSettings tv_settings; // nn::settings::system::Edid std::array<u8, 0x100> edid; - - std::array<u8, 0x2E0> reserved_29BA0; + INSERT_PADDING_BYTES(0x2E0); // Reserved // nn::settings::system::DataDeletionSettings std::array<u8, 0x8> data_deletion_settings; - - std::array<u8, 0x38> reserved_29E88; + INSERT_PADDING_BYTES(0x38); // Reserved // nn::ncm::ProgramId std::array<u8, 0x8> initial_system_applet_program_id; std::array<u8, 0x8> overlay_disp_program_id; - - std::array<u8, 0x4> reserved_29ED0; + INSERT_PADDING_BYTES(0x4); // Reserved bool requires_run_repair_time_reviser; + INSERT_PADDING_BYTES(0x6B); // Reserved - std::array<u8, 0x6B> reserved_29ED5; - - // nn::time::LocationName Service::Time::TimeZone::LocationName device_time_zone_location_name; - std::array<u8, 0x4> reserved_29F64; - // nn::time::SteadyClockTimePoint + INSERT_PADDING_BYTES(0x4); // Reserved Service::Time::Clock::SteadyClockTimePoint device_time_zone_location_updated_time; - - std::array<u8, 0xC0> reserved_29F80; + INSERT_PADDING_BYTES(0xC0); // Reserved // nn::settings::system::PrimaryAlbumStorage PrimaryAlbumStorage primary_album_storage; - - std::array<u8, 0x3C> reserved_2A044; + INSERT_PADDING_BYTES(0x3C); // Reserved bool usb_30_enable_flag; - std::array<u8, 0x3> pad_2A081; + INSERT_PADDING_BYTES(0x3); bool usb_30_host_enable_flag; - std::array<u8, 0x3> pad_2A085; + INSERT_PADDING_BYTES(0x3); bool usb_30_device_enable_flag; - std::array<u8, 0x3> pad_2A089; - - std::array<u8, 0x34> reserved_2A08C; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x34); // Reserved bool nfc_enable_flag; - std::array<u8, 0x3> pad_2A0C1; - - std::array<u8, 0x3C> reserved_2A0C4; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x3C); // Reserved // nn::settings::system::SleepSettings SleepSettings sleep_settings; - - std::array<u8, 0x34> reserved_2A10C; + INSERT_PADDING_BYTES(0x34); // Reserved // nn::settings::system::EulaVersion u32 eula_version_count; - std::array<u8, 0xC> reserved_2A144; + INSERT_PADDING_BYTES(0xC); // Reserved std::array<EulaVersion, 32> eula_versions; - - std::array<u8, 0x200> reserved_2A750; + INSERT_PADDING_BYTES(0x200); // Reserved // nn::settings::system::DeviceNickName std::array<u8, 0x80> device_nick_name; - - std::array<u8, 0x80> reserved_2A9D0; + INSERT_PADDING_BYTES(0x80); // Reserved bool auto_update_enable_flag; - std::array<u8, 0x3> pad_2AA51; - - std::array<u8, 0x4C> reserved_2AA54; + INSERT_PADDING_BYTES(0x3); + INSERT_PADDING_BYTES(0x4C); // Reserved // nn::settings::system::BluetoothDevicesSettings std::array<std::array<u8, 0x200>, 14> bluetooth_device_settings_last_14; - - std::array<u8, 0x2000> reserved_2C6A0; + INSERT_PADDING_BYTES(0x2000); // Reserved // nn::settings::system::NxControllerSettings std::array<std::array<u8, 0x800>, 10> nx_controller_settings_data_from_offset_30; |