aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Horizon/Sdk/Settings
diff options
context:
space:
mode:
Diffstat (limited to 'src/Ryujinx.Horizon/Sdk/Settings')
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/BatteryLot.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerOffset.cs12
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerScale.cs12
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcdsaCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsKey.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsRootCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboKey.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickFactoryCalibration.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickModelParameter.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/BdAddress.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/ConfigurationId1.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/ConsoleSixAxisSensorHorizontalOffset.cs12
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/CountryCode.cs8
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceKey.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardKey.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeOffset.cs12
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeScale.cs12
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/MacAddress.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceKey.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/SerialNumber.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/SpeakerParameter.cs32
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/SslCertificate.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Factory/SslKey.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/Language.cs24
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/LanguageCode.cs63
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/SettingsItemKey.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/SettingsName.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/AccountNotificationSettings.cs15
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/AccountOnlineStorageSettings.cs6
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/AccountSettings.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/AllowedSslHost.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/AnalogStickUserCalibration.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/AppletLaunchFlag.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/AudioVolume.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettings.cs22
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettingsEx.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/BlePairingSettings.cs6
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/BluetoothDevicesSettings.cs29
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigRegisteredSettings.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigSettings.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationBias.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationGain.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularAcceleration.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityBias.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityGain.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityTimeBias.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/DataDeletionSettings.cs18
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/DeviceNickName.cs25
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/Edid.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/EulaVersion.cs6
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/FatalDirtyFlag.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersion.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersionDigest.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/HomeMenuScheme.cs14
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/HostFsMountPoint.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/InitialLaunchSettings.cs14
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/NetworkSettings.cs6
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/NotificationSettings.cs38
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerLegacySettings.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerSettings.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/PtmFuelGaugeParameter.cs20
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/RebootlessSystemUpdateVersion.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/SerialNumber.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ServiceDiscoveryControlSettings.cs10
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/SleepSettings.cs40
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/TelemetryDirtyFlag.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ThemeId.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/ThemeSettings.cs9
-rw-r--r--src/Ryujinx.Horizon/Sdk/Settings/System/TvSettings.cs59
74 files changed, 956 insertions, 0 deletions
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/BatteryLot.cs b/src/Ryujinx.Horizon/Sdk/Settings/BatteryLot.cs
new file mode 100644
index 00000000..71185fcd
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/BatteryLot.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x18, Pack = 0x1)]
+ struct BatteryLot
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerOffset.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerOffset.cs
new file mode 100644
index 00000000..292a368f
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerOffset.cs
@@ -0,0 +1,12 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x6, Pack = 0x2)]
+ struct AccelerometerOffset
+ {
+ public ushort X;
+ public ushort Y;
+ public ushort Z;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerScale.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerScale.cs
new file mode 100644
index 00000000..ef9d17ef
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AccelerometerScale.cs
@@ -0,0 +1,12 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x6, Pack = 0x2)]
+ struct AccelerometerScale
+ {
+ public ushort X;
+ public ushort Y;
+ public ushort Z;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcdsaCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcdsaCertificate.cs
new file mode 100644
index 00000000..7cbab2f0
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcdsaCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x74, Pack = 0x4)]
+ struct AmiiboEcdsaCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsCertificate.cs
new file mode 100644
index 00000000..8d16b51b
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x24, Pack = 0x4)]
+ struct AmiiboEcqvBlsCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsKey.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsKey.cs
new file mode 100644
index 00000000..da6ca53b
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsKey.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x48, Pack = 0x4)]
+ struct AmiiboEcqvBlsKey
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsRootCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsRootCertificate.cs
new file mode 100644
index 00000000..e69e38a1
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvBlsRootCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x94, Pack = 0x4)]
+ struct AmiiboEcqvBlsRootCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvCertificate.cs
new file mode 100644
index 00000000..43742fbb
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboEcqvCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x18, Pack = 0x4)]
+ struct AmiiboEcqvCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboKey.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboKey.cs
new file mode 100644
index 00000000..43ffccb0
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AmiiboKey.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x58, Pack = 0x4)]
+ struct AmiiboKey
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickFactoryCalibration.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickFactoryCalibration.cs
new file mode 100644
index 00000000..3fe6f322
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickFactoryCalibration.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x9, Pack = 0x1)]
+ struct AnalogStickFactoryCalibration
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickModelParameter.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickModelParameter.cs
new file mode 100644
index 00000000..a442032c
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/AnalogStickModelParameter.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x12, Pack = 0x1)]
+ struct AnalogStickModelParameter
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/BdAddress.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/BdAddress.cs
new file mode 100644
index 00000000..519d72e8
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/BdAddress.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x6, Pack = 0x1)]
+ struct BdAddress
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/ConfigurationId1.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/ConfigurationId1.cs
new file mode 100644
index 00000000..40565805
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/ConfigurationId1.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x1E, Pack = 0x1)]
+ struct ConfigurationId1
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/ConsoleSixAxisSensorHorizontalOffset.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/ConsoleSixAxisSensorHorizontalOffset.cs
new file mode 100644
index 00000000..c5503edc
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/ConsoleSixAxisSensorHorizontalOffset.cs
@@ -0,0 +1,12 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x6, Pack = 0x2)]
+ struct ConsoleSixAxisSensorHorizontalOffset
+ {
+ public ushort X;
+ public ushort Y;
+ public ushort Z;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/CountryCode.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/CountryCode.cs
new file mode 100644
index 00000000..daf2ba3b
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/CountryCode.cs
@@ -0,0 +1,8 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ struct CountryCode
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceCertificate.cs
new file mode 100644
index 00000000..727408ed
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x180)]
+ struct EccB233DeviceCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceKey.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceKey.cs
new file mode 100644
index 00000000..a0481f4d
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/EccB233DeviceKey.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x58, Pack = 0x4)]
+ struct EccB233DeviceKey
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardCertificate.cs
new file mode 100644
index 00000000..ce3908af
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x400)]
+ struct GameCardCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardKey.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardKey.cs
new file mode 100644
index 00000000..81144ac4
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GameCardKey.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x138)]
+ struct GameCardKey
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeOffset.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeOffset.cs
new file mode 100644
index 00000000..801d117c
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeOffset.cs
@@ -0,0 +1,12 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x6, Pack = 0x2)]
+ struct GyroscopeOffset
+ {
+ public ushort X;
+ public ushort Y;
+ public ushort Z;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeScale.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeScale.cs
new file mode 100644
index 00000000..7812281f
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/GyroscopeScale.cs
@@ -0,0 +1,12 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x6, Pack = 0x2)]
+ struct GyroscopeScale
+ {
+ public ushort X;
+ public ushort Y;
+ public ushort Z;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/MacAddress.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/MacAddress.cs
new file mode 100644
index 00000000..65e222ee
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/MacAddress.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x6, Pack = 0x1)]
+ struct MacAddress
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceCertificate.cs
new file mode 100644
index 00000000..57217059
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x240)]
+ struct Rsa2048DeviceCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceKey.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceKey.cs
new file mode 100644
index 00000000..d2fd51cf
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/Rsa2048DeviceKey.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x248)]
+ struct Rsa2048DeviceKey
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/SerialNumber.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SerialNumber.cs
new file mode 100644
index 00000000..af664cdc
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SerialNumber.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x18, Pack = 0x1)]
+ struct SerialNumber
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/SpeakerParameter.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SpeakerParameter.cs
new file mode 100644
index 00000000..f147f66f
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SpeakerParameter.cs
@@ -0,0 +1,32 @@
+using Ryujinx.Common.Memory;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x5A, Pack = 0x2)]
+ struct SpeakerParameter
+ {
+ public ushort Version;
+ public Array34<byte> Reserved;
+ public ushort SpeakerHpf2A1;
+ public ushort SpeakerHpf2A2;
+ public ushort SpeakerHpf2H0;
+ public ushort SpeakerEqInputVolume;
+ public ushort SpeakerEqOutputVolume;
+ public ushort SpeakerEqCtrl1;
+ public ushort SpeakerEqCtrl2;
+ public ushort SpeakerDrcAgcCtrl2;
+ public ushort SpeakerDrcAgcCtrl3;
+ public ushort SpeakerDrcAgcCtrl1;
+ public ushort SpeakerAnalogVolume;
+ public ushort HeadphoneAnalogVolume;
+ public ushort SpeakerDigitalVolumeMin;
+ public ushort SpeakerDigitalVolumeMax;
+ public ushort HeadphoneDigitalVolumeMin;
+ public ushort HeadphoneDigitalVolumeMax;
+ public ushort MicFixedGain;
+ public ushort MicVariableVolumeMin;
+ public ushort MicVariableVolumeMax;
+ public Array16<byte> Reserved2;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/SslCertificate.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SslCertificate.cs
new file mode 100644
index 00000000..5d825216
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SslCertificate.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x804)]
+ struct SslCertificate
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Factory/SslKey.cs b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SslKey.cs
new file mode 100644
index 00000000..7d4b4136
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Factory/SslKey.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.Factory
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x138)]
+ struct SslKey
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/Language.cs b/src/Ryujinx.Horizon/Sdk/Settings/Language.cs
new file mode 100644
index 00000000..4ffc66fe
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/Language.cs
@@ -0,0 +1,24 @@
+namespace Ryujinx.Horizon.Sdk.Settings
+{
+ enum Language : uint
+ {
+ Japanese,
+ AmericanEnglish,
+ French,
+ German,
+ Italian,
+ Spanish,
+ Chinese,
+ Korean,
+ Dutch,
+ Portuguese,
+ Russian,
+ Taiwanese,
+ BritishEnglish,
+ CanadianFrench,
+ LatinAmericanSpanish,
+ SimplifiedChinese,
+ TraditionalChinese,
+ BrazilianPortuguese,
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/LanguageCode.cs b/src/Ryujinx.Horizon/Sdk/Settings/LanguageCode.cs
new file mode 100644
index 00000000..dc971269
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/LanguageCode.cs
@@ -0,0 +1,63 @@
+using Ryujinx.Common.Memory;
+using System;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Ryujinx.Horizon.Sdk.Settings
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x8, Pack = 0x1)]
+ struct LanguageCode
+ {
+ private static readonly string[] _languageCodes = new string[]
+ {
+ "ja",
+ "en-US",
+ "fr",
+ "de",
+ "it",
+ "es",
+ "zh-CN",
+ "ko",
+ "nl",
+ "pt",
+ "ru",
+ "zh-TW",
+ "en-GB",
+ "fr-CA",
+ "es-419",
+ "zh-Hans",
+ "zh-Hant",
+ "pt-BR"
+ };
+
+ public Array8<byte> Value;
+
+ public bool IsValid()
+ {
+ int length = Value.AsSpan().IndexOf((byte)0);
+ if (length < 0)
+ {
+ return false;
+ }
+
+ string str = Encoding.ASCII.GetString(Value.AsSpan()[..length]);
+
+ return _languageCodes.AsSpan().Contains(str);
+ }
+
+ public LanguageCode(Language language)
+ {
+ if ((uint)language >= _languageCodes.Length)
+ {
+ throw new ArgumentOutOfRangeException(nameof(language));
+ }
+
+ Value = new LanguageCode(_languageCodes[(int)language]).Value;
+ }
+
+ public LanguageCode(string strCode)
+ {
+ Encoding.ASCII.GetBytes(strCode, Value.AsSpan());
+ }
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/SettingsItemKey.cs b/src/Ryujinx.Horizon/Sdk/Settings/SettingsItemKey.cs
new file mode 100644
index 00000000..66118410
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/SettingsItemKey.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x48)]
+ struct SettingsItemKey
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/SettingsName.cs b/src/Ryujinx.Horizon/Sdk/Settings/SettingsName.cs
new file mode 100644
index 00000000..6864b8cd
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/SettingsName.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x48)]
+ struct SettingsName
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/AccountNotificationSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/AccountNotificationSettings.cs
new file mode 100644
index 00000000..a2cbad6a
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/AccountNotificationSettings.cs
@@ -0,0 +1,15 @@
+using Ryujinx.Horizon.Sdk.Account;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ struct AccountNotificationSettings
+ {
+#pragma warning disable CS0649 // Field is never assigned to
+ public Uid UserId;
+ public uint Flags;
+ public byte FriendPresenceOverlayPermission;
+ public byte FriendInvitationOverlayPermission;
+ public ushort Reserved;
+#pragma warning restore CS0649
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/AccountOnlineStorageSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/AccountOnlineStorageSettings.cs
new file mode 100644
index 00000000..3ed77e52
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/AccountOnlineStorageSettings.cs
@@ -0,0 +1,6 @@
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ struct AccountOnlineStorageSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/AccountSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/AccountSettings.cs
new file mode 100644
index 00000000..bd27ea0b
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/AccountSettings.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x4, Pack = 0x4)]
+ struct AccountSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/AllowedSslHost.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/AllowedSslHost.cs
new file mode 100644
index 00000000..cb90daf1
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/AllowedSslHost.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x100)]
+ struct AllowedSslHost
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/AnalogStickUserCalibration.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/AnalogStickUserCalibration.cs
new file mode 100644
index 00000000..36023da9
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/AnalogStickUserCalibration.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 0x4)]
+ struct AnalogStickUserCalibration
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/AppletLaunchFlag.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/AppletLaunchFlag.cs
new file mode 100644
index 00000000..00d6f4d0
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/AppletLaunchFlag.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [Flags]
+ enum AppletLaunchFlag : uint
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/AudioVolume.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/AudioVolume.cs
new file mode 100644
index 00000000..d246bc2b
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/AudioVolume.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x8, Pack = 0x4)]
+ struct AudioVolume
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettings.cs
new file mode 100644
index 00000000..00de6869
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettings.cs
@@ -0,0 +1,22 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x28, Pack = 0x4)]
+ struct BacklightSettings
+ {
+ // TODO: Determine field names.
+ public uint Unknown0x00;
+ public float Unknown0x04;
+ // 1st group
+ public float Unknown0x08;
+ public float Unknown0x0C;
+ public float Unknown0x10;
+ // 2nd group
+ public float Unknown0x14;
+ public float Unknown0x18;
+ public float Unknown0x1C;
+ public float Unknown0x20;
+ public float Unknown0x24;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettingsEx.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettingsEx.cs
new file mode 100644
index 00000000..347afdfe
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/BacklightSettingsEx.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x2C, Pack = 0x4)]
+ struct BacklightSettingsEx
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/BlePairingSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/BlePairingSettings.cs
new file mode 100644
index 00000000..d9b01f9f
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/BlePairingSettings.cs
@@ -0,0 +1,6 @@
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ struct BlePairingSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/BluetoothDevicesSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/BluetoothDevicesSettings.cs
new file mode 100644
index 00000000..ec5c97c5
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/BluetoothDevicesSettings.cs
@@ -0,0 +1,29 @@
+using Ryujinx.Common.Memory;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ struct BluetoothDevicesSettings
+ {
+#pragma warning disable CS0649 // Field is never assigned to
+ public Array6<byte> BdAddr;
+ public Array32<byte> DeviceName;
+ public Array3<byte> ClassOfDevice;
+ public Array16<byte> LinkKey;
+ public bool LinkKeyPresent;
+ public ushort Version;
+ public uint TrustedServices;
+ public ushort Vid;
+ public ushort Pid;
+ public byte SubClass;
+ public byte AttributeMask;
+ public ushort DescriptorLength;
+ public Array128<byte> Descriptor;
+ public byte KeyType;
+ public byte DeviceType;
+ public ushort BrrSize;
+ public Array9<byte> Brr;
+ public Array256<byte> Reserved;
+ public Array43<byte> Reserved2;
+#pragma warning restore CS0649
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigRegisteredSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigRegisteredSettings.cs
new file mode 100644
index 00000000..8bd4924e
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigRegisteredSettings.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x5C8)]
+ struct ButtonConfigRegisteredSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigSettings.cs
new file mode 100644
index 00000000..2f06e32e
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ButtonConfigSettings.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x5A8)]
+ struct ButtonConfigSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationBias.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationBias.cs
new file mode 100644
index 00000000..c70d4ff2
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationBias.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0xC, Pack = 0x4)]
+ struct ConsoleSixAxisSensorAccelerationBias
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationGain.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationGain.cs
new file mode 100644
index 00000000..0803beb8
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAccelerationGain.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x24, Pack = 0x4)]
+ struct ConsoleSixAxisSensorAccelerationGain
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularAcceleration.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularAcceleration.cs
new file mode 100644
index 00000000..831e44bd
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularAcceleration.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x24, Pack = 0x4)]
+ struct ConsoleSixAxisSensorAngularAcceleration
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityBias.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityBias.cs
new file mode 100644
index 00000000..83d1faa8
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityBias.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0xC, Pack = 0x4)]
+ struct ConsoleSixAxisSensorAngularVelocityBias
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityGain.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityGain.cs
new file mode 100644
index 00000000..68e0c614
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityGain.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x24, Pack = 0x4)]
+ struct ConsoleSixAxisSensorAngularVelocityGain
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityTimeBias.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityTimeBias.cs
new file mode 100644
index 00000000..47f3d951
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ConsoleSixAxisSensorAngularVelocityTimeBias.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0xC, Pack = 0x4)]
+ struct ConsoleSixAxisSensorAngularVelocityTimeBias
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/DataDeletionSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/DataDeletionSettings.cs
new file mode 100644
index 00000000..a10a265d
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/DataDeletionSettings.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [Flags]
+ enum DataDeletionFlag : uint
+ {
+ AutomaticDeletionFlag = 1 << 0,
+ }
+
+ [StructLayout(LayoutKind.Sequential, Size = 0x8, Pack = 0x4)]
+ struct DataDeletionSettings
+ {
+ public DataDeletionFlag Flags;
+ public uint UseCount;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/DeviceNickName.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/DeviceNickName.cs
new file mode 100644
index 00000000..99c9f981
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/DeviceNickName.cs
@@ -0,0 +1,25 @@
+using Ryujinx.Common.Memory;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x80)]
+ struct DeviceNickName
+ {
+ public Array128<byte> Value;
+
+ public DeviceNickName(string value)
+ {
+ int bytesWritten = Encoding.ASCII.GetBytes(value, Value.AsSpan());
+ if (bytesWritten < 128)
+ {
+ Value[bytesWritten] = 0;
+ }
+ else
+ {
+ Value[127] = 0;
+ }
+ }
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/Edid.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/Edid.cs
new file mode 100644
index 00000000..3ff56685
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/Edid.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x200)]
+ struct Edid
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/EulaVersion.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/EulaVersion.cs
new file mode 100644
index 00000000..65905b1b
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/EulaVersion.cs
@@ -0,0 +1,6 @@
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ struct EulaVersion
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/FatalDirtyFlag.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/FatalDirtyFlag.cs
new file mode 100644
index 00000000..6be94115
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/FatalDirtyFlag.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 0x8)]
+ struct FatalDirtyFlag
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersion.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersion.cs
new file mode 100644
index 00000000..39825e01
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersion.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x100)]
+ struct FirmwareVersion
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersionDigest.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersionDigest.cs
new file mode 100644
index 00000000..0027d7ef
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/FirmwareVersionDigest.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x40, Pack = 0x1)]
+ struct FirmwareVersionDigest
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/HomeMenuScheme.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/HomeMenuScheme.cs
new file mode 100644
index 00000000..cc7b317b
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/HomeMenuScheme.cs
@@ -0,0 +1,14 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x14, Pack = 0x1)]
+ struct HomeMenuScheme
+ {
+ public uint Main;
+ public uint Back;
+ public uint Sub;
+ public uint Bezel;
+ public uint Extra;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/HostFsMountPoint.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/HostFsMountPoint.cs
new file mode 100644
index 00000000..1a66abac
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/HostFsMountPoint.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x100)]
+ struct HostFsMountPoint
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/InitialLaunchSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/InitialLaunchSettings.cs
new file mode 100644
index 00000000..b3989de7
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/InitialLaunchSettings.cs
@@ -0,0 +1,14 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x20, Pack = 0x8)]
+ struct InitialLaunchSettings
+ {
+ public uint Flags;
+ public uint Reserved;
+ public ulong TimeStamp1;
+ public ulong TimeStamp2;
+ public ulong TimeStamp3;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/NetworkSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/NetworkSettings.cs
new file mode 100644
index 00000000..a0101b62
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/NetworkSettings.cs
@@ -0,0 +1,6 @@
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ struct NetworkSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/NotificationSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/NotificationSettings.cs
new file mode 100644
index 00000000..2ce56c4d
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/NotificationSettings.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [Flags]
+ enum NotificationFlag : uint
+ {
+ RingtoneFlag = 1 << 0,
+ DownloadCompletionFlag = 1 << 1,
+ EnablesNews = 1 << 8,
+ IncomingLampFlag = 1 << 9,
+ }
+
+ enum NotificationVolume : uint
+ {
+ Mute,
+ Low,
+ High,
+ }
+
+ struct NotificationTime
+ {
+#pragma warning disable CS0649 // Field is never assigned to
+ public uint Hour;
+ public uint Minute;
+#pragma warning restore CS0649
+ }
+
+ [StructLayout(LayoutKind.Sequential, Size = 0x18, Pack = 0x4)]
+ struct NotificationSettings
+ {
+ public NotificationFlag Flag;
+ public NotificationVolume Volume;
+ public NotificationTime HeadTime;
+ public NotificationTime TailTime;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerLegacySettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerLegacySettings.cs
new file mode 100644
index 00000000..845715df
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerLegacySettings.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x29)]
+ struct NxControllerLegacySettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerSettings.cs
new file mode 100644
index 00000000..c8f81cec
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/NxControllerSettings.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x42C)]
+ struct NxControllerSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/PtmFuelGaugeParameter.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/PtmFuelGaugeParameter.cs
new file mode 100644
index 00000000..b843bcd6
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/PtmFuelGaugeParameter.cs
@@ -0,0 +1,20 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x18, Pack = 0x4)]
+ struct PtmFuelGaugeParameter
+ {
+ public ushort Rcomp0;
+ public ushort TempCo;
+ public ushort FullCap;
+ public ushort FullCapNom;
+ public ushort IavgEmpty;
+ public ushort QrTable00;
+ public ushort QrTable10;
+ public ushort QrTable20;
+ public ushort QrTable30;
+ public ushort Reserved;
+ public uint Cycles;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/RebootlessSystemUpdateVersion.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/RebootlessSystemUpdateVersion.cs
new file mode 100644
index 00000000..b4e9b8b2
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/RebootlessSystemUpdateVersion.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x40, Pack = 0x4)]
+ struct RebootlessSystemUpdateVersion
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/SerialNumber.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/SerialNumber.cs
new file mode 100644
index 00000000..22ddb85c
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/SerialNumber.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x18, Pack = 0x1)]
+ struct SerialNumber
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ServiceDiscoveryControlSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ServiceDiscoveryControlSettings.cs
new file mode 100644
index 00000000..7c7b625a
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ServiceDiscoveryControlSettings.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [Flags]
+ enum ServiceDiscoveryControlSettings : uint
+ {
+ IsChangeEnvironmentIdentifierDisabled = 1 << 0,
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/SleepSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/SleepSettings.cs
new file mode 100644
index 00000000..7493c677
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/SleepSettings.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [Flags]
+ enum SleepFlag : uint
+ {
+ SleepsWhilePlayingMedia = 1 << 0,
+ WakesAtPowerStateChange = 1 << 1,
+ }
+
+ enum HandheldSleepPlan : uint
+ {
+ At1Min,
+ At3Min,
+ At5Min,
+ At10Min,
+ At30Min,
+ Never,
+ }
+
+ enum ConsoleSleepPlan : uint
+ {
+ At1Hour,
+ At2Hour,
+ At3Hour,
+ At6Hour,
+ At12Hour,
+ Never,
+ }
+
+ [StructLayout(LayoutKind.Sequential, Size = 0xC, Pack = 0x4)]
+ struct SleepSettings
+ {
+ public SleepFlag Flags;
+ public HandheldSleepPlan HandheldSleepPlan;
+ public ConsoleSleepPlan ConsoleSleepPlan;
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/TelemetryDirtyFlag.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/TelemetryDirtyFlag.cs
new file mode 100644
index 00000000..46ec2d76
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/TelemetryDirtyFlag.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x10, Pack = 0x8)]
+ struct TelemetryDirtyFlag
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ThemeId.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ThemeId.cs
new file mode 100644
index 00000000..886ec872
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ThemeId.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x80, Pack = 0x8)]
+ struct ThemeId
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/ThemeSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/ThemeSettings.cs
new file mode 100644
index 00000000..ac36bcd8
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/ThemeSettings.cs
@@ -0,0 +1,9 @@
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [StructLayout(LayoutKind.Sequential, Size = 0x8, Pack = 0x8)]
+ struct ThemeSettings
+ {
+ }
+}
diff --git a/src/Ryujinx.Horizon/Sdk/Settings/System/TvSettings.cs b/src/Ryujinx.Horizon/Sdk/Settings/System/TvSettings.cs
new file mode 100644
index 00000000..5ee0b85d
--- /dev/null
+++ b/src/Ryujinx.Horizon/Sdk/Settings/System/TvSettings.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Runtime.InteropServices;
+
+namespace Ryujinx.Horizon.Sdk.Settings.System
+{
+ [Flags]
+ enum TvFlag : uint
+ {
+ Allows4k = 1 << 0,
+ Allows3d = 1 << 1,
+ AllowsCec = 1 << 2,
+ PreventsScreenBurnIn = 1 << 3,
+ }
+
+ enum TvResolution : uint
+ {
+ Auto,
+ At1080p,
+ At720p,
+ At480p,
+ }
+
+ enum HdmiContentType : uint
+ {
+ None,
+ Graphics,
+ Cinema,
+ Photo,
+ Game,
+ }
+
+ enum RgbRange : uint
+ {
+ Auto,
+ Full,
+ Limited,
+ }
+
+ enum CmuMode : uint
+ {
+ None,
+ ColorInvert,
+ HighContrast,
+ GrayScale,
+ }
+
+ [StructLayout(LayoutKind.Sequential, Size = 0x20, Pack = 0x4)]
+ struct TvSettings
+ {
+ public TvFlag Flags;
+ public TvResolution TvResolution;
+ public HdmiContentType HdmiContentType;
+ public RgbRange RgbRange;
+ public CmuMode CmuMode;
+ public float TvUnderscan;
+ public float TvGamma;
+ public float ContrastRatio;
+ }
+}