|
|
@@ -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;
|