HID Shared Memory: Difference between revisions
No edit summary |
No edit summary |
||
Line 28: | Line 28: | ||
| 0x3C00 | | 0x3C00 | ||
| 0x1000 | | 0x1000 | ||
| [1.0.0-9.2.0] [[#BasicXpadSharedMemoryFormat|BasicXpad]] | | [[#DigitizerSharedMemoryFormat|Digitizer]] ([1.0.0-9.2.0] [[#BasicXpadSharedMemoryFormat|BasicXpad]]) | ||
|- | |- | ||
| 0x4C00 | | 0x4C00 | ||
Line 63: | Line 59: | ||
|- | |- | ||
| 0x3C200 | | 0x3C200 | ||
| | | 0x1C | ||
| [5.0.0+] [[#ConsoleSixAxisSensorSharedMemoryFormat|ConsoleSixAxisSensor]] | | [5.0.0+] [[#ConsoleSixAxisSensorSharedMemoryFormat|ConsoleSixAxisSensor]] | ||
|} | |} | ||
Line 941: | Line 937: | ||
|} | |} | ||
== UniquePadSharedMemoryEntry == | |||
This is "nn::hid::detail::UniquePadSharedMemoryEntry". | This is "nn::hid::detail::UniquePadSharedMemoryEntry". | ||
Line 955: | Line 951: | ||
|} | |} | ||
=== UniquePadLifo === | |||
This is "nn::hid::detail::UniquePadLifo". This is a RingLifo object. | This is "nn::hid::detail::UniquePadLifo". This is a RingLifo object. | ||
Line 977: | Line 973: | ||
|- | |- | ||
| 0x1A0 | | 0x1A0 | ||
| | | 0x40 | ||
| UniquePadConfigMutex | | UniquePadConfigMutex | ||
|} | |} | ||
==== UniquePadConfigLifo ==== | |||
This is "nn::hid::detail::UniquePadConfigLifo". This is a RingLifo object. | This is "nn::hid::detail::UniquePadConfigLifo". This is a RingLifo object. | ||
Line 1,011: | Line 1,007: | ||
|} | |} | ||
===== UniquePadConfigAtomicStorage ===== | |||
This is "nn::hid::detail::UniquePadConfigAtomicStorage". | This is "nn::hid::detail::UniquePadConfigAtomicStorage". | ||
Line 1,067: | Line 1,063: | ||
|} | |} | ||
==== AnalogStickCalibrationStateImplLifo ==== | |||
This is "nn::hid::detail::AnalogStickCalibrationStateImplLifo". This is a RingLifo object. | This is "nn::hid::detail::AnalogStickCalibrationStateImplLifo". This is a RingLifo object. | ||
Line 1,094: | Line 1,090: | ||
| 0x20 | | 0x20 | ||
| 0x28 * 2 | | 0x28 * 2 | ||
| Array of [[# | | Array of [[#AnalogStickCalibrationStateImplAtomicStorage]] | ||
|} | |} | ||
===== AnalogStickCalibrationStateImplAtomicStorage ===== | |||
This is "nn::hid::detail::AnalogStickCalibrationStateImplAtomicStorage". | This is "nn::hid::detail::AnalogStickCalibrationStateImplAtomicStorage". | ||
Line 1,141: | Line 1,137: | ||
|} | |} | ||
==== SixAxisSensorUserCalibrationStateLifo ==== | |||
This is "nn::hid::detail::SixAxisSensorUserCalibrationStateLifo". This is a RingLifo object. | This is "nn::hid::detail::SixAxisSensorUserCalibrationStateLifo". This is a RingLifo object. | ||
Line 1,171: | Line 1,167: | ||
|} | |} | ||
===== SixAxisSensorUserCalibrationStateAtomicStorage ===== | |||
This is "nn::hid::detail::SixAxisSensorUserCalibrationStateAtomicStorage". | This is "nn::hid::detail::SixAxisSensorUserCalibrationStateAtomicStorage". | ||
Line 1,189: | Line 1,185: | ||
|} | |} | ||
====== | ====== SixAxisSensorUserCalibrationState ====== | ||
This is "nn::hid::detail::UniquePadConfig". | This is "nn::hid::detail::UniquePadConfig". | ||
Line 1,199: | Line 1,195: | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
| | | 0x4 | ||
| [[#SixAxisSensorUserCalibrationFlagsSet|Flags]] | | [[#SixAxisSensorUserCalibrationFlagsSet|Flags]] | ||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Reserved | |||
|- | |- | ||
| 0x8 | | 0x8 | ||
Line 1,214: | Line 1,214: | ||
This is "nn::hid::detail::NpadSharedMemoryFormat". | This is "nn::hid::detail::NpadSharedMemoryFormat". | ||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x5000 * 10 | |||
| Array of [[#NpadSharedMemoryEntry]] | |||
|} | |||
Each entry describes an available controller: | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Entry | ||
! Description | ! Description | ||
|- | |- | ||
Line 1,231: | Line 1,241: | ||
|} | |} | ||
== | == NpadSharedMemoryEntry == | ||
This is "nn::hid::detail::NpadSharedMemoryEntry". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,239: | Line 1,251: | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
| | | 0x43F0 ([1.0.0-8.1.0] 0x4410) | ||
| [[# | | [[#NpadInternalState]] | ||
|} | |||
=== NpadInternalState === | |||
This is "nn::hid::detail::NpadInternalState". | |||
{| class="wikitable" border="1" | |||
|- | |- | ||
| | ! Offset | ||
| | ! Size | ||
| | ! Description | ||
|- | |||
| 0x0 | |||
| 0x4 | |||
| [[HID_services#NpadStyleTag|StyleSet]] | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| [[HID_services#NpadJoyAssignmentMode|JoyAssignmentMode]] | |||
|- | |||
| 0x8 | |||
| 0xC | |||
| [[#NpadFullKeyColorState|FullKeyColor]] | |||
|- | |||
| 0x14 | |||
| 0x14 | |||
| [[#NpadJoyColorState|JoyColor]] | |||
|- | |- | ||
| | | 0x28 | ||
| | | 0x350 | ||
| | | [[#NpadFullKeyLifo|FullKeyLifo]] | ||
|- | |- | ||
| 0x378 | | 0x378 | ||
| | | 0x350 | ||
| [[# | | [[#NpadHandheldLifo|HandheldLifo]] | ||
| | |||
|- | |- | ||
| 0x6C8 | | 0x6C8 | ||
| | | 0x350 | ||
| | | [[#NpadJoyDualLifo|JoyDualLifo]] | ||
| | |||
|- | |- | ||
| 0xA18 | | 0xA18 | ||
| | | 0x350 | ||
| | | [[#NpadJoyLeftLifo|JoyLeftLifo]] | ||
| | |||
|- | |- | ||
| 0xD68 | | 0xD68 | ||
| | | 0x350 | ||
| | | [[#NpadJoyRightLifo|JoyRightLifo]] | ||
| | |||
|- | |- | ||
| 0x10B8 | | 0x10B8 | ||
| | | 0x350 | ||
| | | [[#NpadPalmaLifo|PalmaLifo]] ([1.0.0-3.0.2] [[#NpadSystemLifo|SystemLifo]]) | ||
| | |||
|- | |- | ||
| 0x1408 | | 0x1408 | ||
| | | 0x350 | ||
| | | [[#NpadSystemExtLifo|SystemExtLifo]] ([4.0.0+] also used for NpadSystem) | ||
|- | |- | ||
| 0x1758 | | 0x1758 | ||
| | | 0x708 | ||
| | | [[#NpadSixAxisSensorLifo|FullKeySixAxisSensorLifo]] | ||
| | |||
|- | |- | ||
| 0x1E60 | | 0x1E60 | ||
| | | 0x708 | ||
| | | [[#NpadSixAxisSensorLifo|HandheldSixAxisSensorLifo]] | ||
| | |||
|- | |- | ||
| 0x2568 | | 0x2568 | ||
| | | 0x708 | ||
| | | [[#NpadSixAxisSensorLifo|JoyDualLeftSixAxisSensorLifo]] | ||
| | |||
|- | |- | ||
| 0x2C70 | | 0x2C70 | ||
| | | 0x708 | ||
| | | [[#NpadSixAxisSensorLifo|JoyDualRightSixAxisSensorLifo]] | ||
| | |||
|- | |- | ||
| 0x3378 | | 0x3378 | ||
| | | 0x708 | ||
| | | [[#NpadSixAxisSensorLifo|JoyLeftSixAxisSensorLifo]] | ||
| | |||
|- | |- | ||
| 0x3A80 | | 0x3A80 | ||
| | | 0x708 | ||
| | | [[#NpadSixAxisSensorLifo|JoyRightSixAxisSensorLifo]] | ||
| | |||
|- | |- | ||
| 0x4188 | | 0x4188 | ||
Line 1,352: | Line 1,338: | ||
| 0x418C | | 0x418C | ||
| 0x4 | | 0x4 | ||
| | | Reserved | ||
|- | |- | ||
| 0x4190 | | 0x4190 | ||
| 0x8 | | 0x8 | ||
| [[#NpadSystemProperties]] | | [[#NpadSystemProperties|SystemProperties]] | ||
|- | |- | ||
| 0x4198 | | 0x4198 | ||
| 0x4 | | 0x4 | ||
| [[#NpadSystemButtonProperties]] | | [[#NpadSystemButtonProperties|SystemButtonProperties]] | ||
|- | |- | ||
| 0x419C | | 0x419C | ||
| 0x4 | | 0x4 | ||
| | | BatteryLevel0 | ||
|- | |- | ||
| 0x41A0 | | 0x41A0 | ||
| 0x4 | | 0x4 | ||
| | | BatteryLevel1 | ||
|- | |- | ||
| 0x41A4 | | 0x41A4 | ||
| 0x4 | | 0x4 | ||
| | | BatteryLevel2 | ||
|- | |- | ||
| 0x41A8 | | 0x41A8 | ||
| | | 0x60 | ||
| [1.0.0- | | [1.0.0-8.1.0] [[#NfcXcdDeviceHandleState|NfcXcdDeviceHandle]] (replaced by [[HID_services|GetXcdHandleForNpadWithNfc/IsNfcActivated]]) | ||
|- | |- | ||
| 0x41A8 | | 0x41A8 | ||
| 0x4 | | 0x4 | ||
| [9.0.0+] [[ | | [9.0.0+] [[#AppletFooterUiAttribute|AppletFooterUiAttributes]] | ||
|- | |- | ||
| 0x41AC | | 0x41AC | ||
| 0x1 | | 0x1 | ||
| [9.0.0+] [[ | | [9.0.0+] [[#AppletFooterUiType|AppletFooterUiType]] | ||
|- | |||
| 0x41AD | |||
| 0x7B | |||
| [9.0.0+] Reserved | |||
|- | |- | ||
| 0x4208 | | 0x4208 | ||
| | | 0x40 | ||
| Mutex | | [1.0.0-8.1.0] Mutex | ||
|- | |- | ||
| 0x4228 | | 0x4228 ([1.0.0-8.1.0] 0x4248) | ||
| | | 0x1B8 | ||
| | | [[#NpadGcTriggerLifo|GcTriggerLifo]] | ||
|- | |- | ||
| | | 0x43E0 ([1.0.0-8.1.0] 0x4400) | ||
| | | 0x4 | ||
| | | LarkTypeLAndMain | ||
|- | |- | ||
| | | 0x43E4 ([1.0.0-8.1.0] 0x4404) | ||
| 0x4 | | 0x4 | ||
| | | LarkTypeR | ||
|- | |- | ||
| | | 0x43E8 ([1.0.0-8.1.0] 0x4408) | ||
| 0x4 | | 0x4 | ||
| | | LuciaType | ||
|- | |- | ||
| | | 0x43EC ([1.0.0-8.1.0] 0x440C) | ||
| 0x4 | | 0x4 | ||
| | | | ||
|} | |} | ||
==== | ==== NpadFullKeyLifo ==== | ||
This is "nn::hid::detail::NpadFullKeyLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,423: | Line 1,411: | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
| | | 0x8 | ||
| | | RingLifoVptr | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| | | 0x8 | ||
| | | BufferCount | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| | | 0x8 | ||
| | | Tail | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| | | 0x8 | ||
| | | Count | ||
|- | |- | ||
| 0x20 | | 0x20 | ||
| | | 0x30 * 17 | ||
| | | Array of [[#NpadFullKeyStateAtomicStorage]] | ||
|} | |} | ||
==== | ===== NpadFullKeyStateAtomicStorage ===== | ||
This is "nn::hid::detail::NpadFullKeyStateAtomicStorage". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,472: | Line 1,442: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | SamplingNumber | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| | | 0x28 | ||
| | | [[#NpadFullKeyState]] | ||
|} | |} | ||
==== | ====== NpadFullKeyState ====== | ||
This is "nn::hid::NpadFullKeyState". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,496: | Line 1,460: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | SamplingNumber | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x8 | | 0x8 | ||
| | | [[#NpadButtonSet|Buttons]] | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| 0x8 | | 0x8 | ||
| [[# | | [[#AnalogStickState|AnalogStickL]] | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| | | 0x8 | ||
| | | [[#AnalogStickState|AnalogStickR]] | ||
| | |||
|- | |- | ||
| 0x20 | | 0x20 | ||
| 0x4 | | 0x4 | ||
| | | [[#NpadAttributesSet|Attributes]] | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
| 0x4 | | 0x4 | ||
| | | Reserved | ||
|} | |} | ||
==== | ==== NpadHandheldLifo ==== | ||
This is | This is "nn::hid::detail::NpadHandheldLifo". This is a RingLifo object. | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Offset | ||
! | ! Size | ||
! Description | |||
|- | |- | ||
| | | 0x0 | ||
| | | 0x8 | ||
| RingLifoVptr | |||
|- | |- | ||
| | | 0x8 | ||
| | | 0x8 | ||
| BufferCount | |||
|- | |- | ||
| | | 0x10 | ||
| | | 0x8 | ||
| Tail | |||
|- | |- | ||
| | | 0x18 | ||
| | | 0x8 | ||
| Count | |||
|- | |- | ||
| | | 0x20 | ||
| 0x30 * 17 | |||
| Array of [[#NpadHandheldStateAtomicStorage]] | |||
| 17 | |||
| | |||
|} | |} | ||
===== | ===== NpadHandheldStateAtomicStorage ===== | ||
This is "nn::hid::detail::NpadHandheldStateAtomicStorage". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,642: | Line 1,524: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | SamplingNumber | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| | | 0x28 | ||
| | | [[#NpadHandheldState]] | ||
|} | |} | ||
===== | ====== NpadHandheldState ====== | ||
This is "nn::hid::NpadHandheldState". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,666: | Line 1,542: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | SamplingNumber | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x8 | | 0x8 | ||
| | | [[#NpadButtonSet|Buttons]] | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| 0x8 | | 0x8 | ||
| | | [[#AnalogStickState|AnalogStickL]] | ||
|- | |||
| 0x18 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickR]] | |||
|- | |- | ||
| | | 0x20 | ||
| 0x4 | | 0x4 | ||
| | | [[#NpadAttributesSet|Attributes]] | ||
|- | |- | ||
| 0x24 | | 0x24 | ||
| 0x4 | | 0x4 | ||
| | | Reserved | ||
|} | |} | ||
==== NpadJoyDualLifo ==== | |||
This is "nn::hid::detail::NpadJoyDualLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Offset | ||
! Size | |||
! Description | ! Description | ||
|- | |- | ||
| | | 0x0 | ||
| | | 0x8 | ||
| RingLifoVptr | |||
|- | |- | ||
| | | 0x8 | ||
| | | 0x8 | ||
| BufferCount | |||
|- | |- | ||
| | | 0x10 | ||
| | | 0x8 | ||
| Tail | |||
|- | |- | ||
| | | 0x18 | ||
| | | 0x8 | ||
| Count | |||
|- | |- | ||
| | | 0x20 | ||
| | | 0x30 * 17 | ||
| Array of [[#NpadJoyDualStateAtomicStorage]] | |||
| [ | |||
|} | |} | ||
==== | ===== NpadJoyDualStateAtomicStorage ===== | ||
This is "nn::hid::detail::NpadJoyDualStateAtomicStorage". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Offset | ||
! Size | |||
! Description | ! Description | ||
|- | |- | ||
| | | 0x0 | ||
| | | 0x8 | ||
|} | | SamplingNumber | ||
|- | |||
| 0x8 | |||
| 0x28 | |||
| [[#NpadJoyDualState]] | |||
|} | |||
====== NpadJoyDualState ====== | |||
This is "nn::hid::NpadJoyDualState". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,770: | Line 1,624: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | SamplingNumber | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x8 | | 0x8 | ||
| | | [[#NpadButtonSet|Buttons]] | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| | | 0x8 | ||
| | | [[#AnalogStickState|AnalogStickL]] | ||
|- | |- | ||
| | | 0x18 | ||
| | | 0x8 | ||
| | | [[#AnalogStickState|AnalogStickR]] | ||
|- | |- | ||
| | | 0x20 | ||
| | | 0x4 | ||
| | | [[#NpadAttributesSet|Attributes]] | ||
|- | |- | ||
| | | 0x24 | ||
| | | 0x4 | ||
| | | Reserved | ||
|} | |} | ||
==== | ==== NpadJoyLeftLifo ==== | ||
This is "nn::hid::detail::NpadJoyLeftLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,802: | Line 1,658: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | RingLifoVptr | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x8 | | 0x8 | ||
| | | BufferCount | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| | | 0x8 | ||
| | | Tail | ||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |- | ||
| | | 0x20 | ||
| | | 0x30 * 17 | ||
| | | Array of [[#NpadJoyLeftStateAtomicStorage]] | ||
|} | |} | ||
== | ===== NpadJoyLeftStateAtomicStorage ===== | ||
This is "nn::hid::detail:: | This is "nn::hid::detail::NpadJoyLeftStateAtomicStorage". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 1,827: | Line 1,687: | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
| | | 0x8 | ||
| | | SamplingNumber | ||
|- | |- | ||
| | | 0x8 | ||
| | | 0x28 | ||
| | | [[#NpadJoyLeftState]] | ||
|} | |} | ||
=== | ====== NpadJoyLeftState ====== | ||
This is "nn::hid::NpadJoyLeftState". | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 1,844: | Line 1,706: | ||
| 0x0 | | 0x0 | ||
| 0x8 | | 0x8 | ||
| | | SamplingNumber | ||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x8 | | 0x8 | ||
| | | [[#NpadButtonSet|Buttons]] | ||
|- | |- | ||
| 0x10 | | 0x10 | ||
| 0x8 | | 0x8 | ||
| | | [[#AnalogStickState|AnalogStickL]] | ||
|- | |- | ||
| 0x18 | | 0x18 | ||
| 0x8 | | 0x8 | ||
| | | [[#AnalogStickState|AnalogStickR]] | ||
|} | |- | ||
| 0x20 | |||
=== | | 0x4 | ||
{| class="wikitable" border="1" | | [[#NpadAttributesSet|Attributes]] | ||
|- | |- | ||
! Offset | | 0x24 | ||
! Size | | 0x4 | ||
! Description | | Reserved | ||
|- | |} | ||
| 0x0 | |||
| 0x8 | ==== NpadJoyRightLifo ==== | ||
| | This is "nn::hid::detail::NpadJoyRightLifo". This is a RingLifo object. | ||
|- | |||
| 0x8 | {| class="wikitable" border="1" | ||
| 0x60 | |- | ||
| | ! Offset | ||
|} | ! Size | ||
! Description | |||
== ConsoleSixAxisSensorSharedMemoryFormat == | |- | ||
{| class="wikitable" border="1" | | 0x0 | ||
|- | | 0x8 | ||
! Offset | | RingLifoVptr | ||
! Size | |- | ||
! Description | | 0x8 | ||
|- | | 0x8 | ||
| 0x0 | | BufferCount | ||
| 0x8 | |- | ||
| | | 0x10 | ||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x30 * 17 | |||
| Array of [[#NpadJoyRightStateAtomicStorage]] | |||
|} | |||
===== NpadJoyRightStateAtomicStorage ===== | |||
This is "nn::hid::detail::NpadJoyRightStateAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x28 | |||
| [[#NpadJoyRightState]] | |||
|} | |||
====== NpadJoyRightState ====== | |||
This is "nn::hid::NpadJoyRightState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| [[#NpadButtonSet|Buttons]] | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickL]] | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickR]] | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| [[#NpadAttributesSet|Attributes]] | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| Reserved | |||
|} | |||
==== NpadPalmaLifo ==== | |||
This is "nn::hid::detail::NpadPalmaLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| RingLifoVptr | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| BufferCount | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x30 * 17 | |||
| Array of [[#NpadPalmaStateAtomicStorage]] | |||
|} | |||
===== NpadPalmaStateAtomicStorage ===== | |||
This is "nn::hid::detail::NpadPalmaStateAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x28 | |||
| [[#NpadPalmaState]] | |||
|} | |||
====== NpadPalmaState ====== | |||
This is "nn::hid::NpadPalmaState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| [[#NpadButtonSet|Buttons]] | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickL]] | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickR]] | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| [[#NpadAttributesSet|Attributes]] | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| Reserved | |||
|} | |||
==== NpadSystemLifo ==== | |||
This is "nn::hid::detail::NpadSystemLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| RingLifoVptr | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| BufferCount | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x30 * 17 | |||
| Array of [[#NpadSystemStateAtomicStorage]] | |||
|} | |||
===== NpadSystemStateAtomicStorage ===== | |||
This is "nn::hid::detail::NpadSystemStateAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x28 | |||
| [[#NpadSystemState]] | |||
|} | |||
====== NpadSystemState ====== | |||
This is "nn::hid::system::NpadSystemState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| [[#NpadButtonSet|Buttons]] | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickL]] | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickR]] | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| [[#NpadAttributesSet|Attributes]] | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| Reserved | |||
|} | |||
==== NpadSystemExtLifo ==== | |||
This is "nn::hid::detail::NpadSystemExtLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| RingLifoVptr | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| BufferCount | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x30 * 17 | |||
| Array of [[#NpadSystemExtStateAtomicStorage]] | |||
|} | |||
===== NpadSystemExtStateAtomicStorage ===== | |||
This is "nn::hid::detail::NpadSystemExtStateAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x28 | |||
| [[#NpadSystemState]] | |||
|} | |||
====== NpadSystemExtState ====== | |||
This is "nn::hid::system::NpadSystemExtState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| [[#NpadButtonSet|Buttons]] | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickL]] | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| [[#AnalogStickState|AnalogStickR]] | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| [[#NpadAttributesSet|Attributes]] | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| Reserved | |||
|} | |||
==== NpadSixAxisSensorLifo ==== | |||
This is "nn::hid::detail::NpadSixAxisSensorLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| RingLifoVptr | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| BufferCount | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x68 * 17 | |||
| Array of [[#SixAxisSensorStateAtomicStorage]] | |||
|} | |||
===== SixAxisSensorStateAtomicStorage ===== | |||
This is "nn::hid::detail::SixAxisSensorStateAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x60 | |||
| [[#SixAxisSensorState]] | |||
|} | |||
====== SixAxisSensorState ====== | |||
This is "nn::hid::SixAxisSensorState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| DeltaTime | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x10 | |||
| 0x4 | |||
| AccelerationX | |||
|- | |||
| 0x14 | |||
| 0x4 | |||
| AccelerationY | |||
|- | |||
| 0x18 | |||
| 0x4 | |||
| AccelerationZ | |||
|- | |||
| 0x1C | |||
| 0x4 | |||
| AngularVelocityX | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| AngularVelocityY | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| AngularVelocityZ | |||
|- | |||
| 0x28 | |||
| 0x4 | |||
| AngleX | |||
|- | |||
| 0x2C | |||
| 0x4 | |||
| AngleY | |||
|- | |||
| 0x30 | |||
| 0x4 | |||
| AngleZ | |||
|- | |||
| 0x34 | |||
| 0x24 | |||
| [[#DirectionState|Direction]] | |||
|- | |||
| 0x58 | |||
| 0x4 | |||
| [[#SixAxisSensorAttributeSet|Attributes]] | |||
|- | |||
| 0x5C | |||
| 0x4 | |||
| Reserved | |||
|} | |||
==== NfcXcdDeviceHandleState ==== | |||
This is "nn::hid::detail::NfcXcdDeviceHandleState". This is a RingLifo object. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| RingLifoVptr | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| BufferCount | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x20 * 2 | |||
| Array of [[#NfcXcdDeviceHandleStateImplAtomicStorage]] | |||
|} | |||
===== NfcXcdDeviceHandleStateImplAtomicStorage ===== | |||
This is "nn::hid::detail::NfcXcdDeviceHandleStateImplAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x18 | |||
| [[#NfcXcdDeviceHandleStateImpl]] | |||
|} | |||
====== NfcXcdDeviceHandleStateImpl ====== | |||
This is "nn::hid::detail::NfcXcdDeviceHandleStateImpl". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| Handle | |||
|- | |||
| 0x8 | |||
| 0x1 | |||
| IsAvailable | |||
|- | |||
| 0x9 | |||
| 0x1 | |||
| IsActivated | |||
|- | |||
| 0xA | |||
| 0x6 | |||
| Reserved | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| SamplingNumber | |||
|} | |||
==== NpadGcTriggerLifo ==== | |||
This is "nn::hid::detail::NpadGcTriggerLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| RingLifoVptr | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| BufferCount | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x18 * 17 | |||
| Array of [[#NpadGcTriggerStateAtomicStorage]] | |||
|} | |||
===== NpadGcTriggerStateAtomicStorage ===== | |||
This is "nn::hid::detail::NpadGcTriggerStateAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x10 | |||
| [[#NpadGcTriggerState]] | |||
|} | |||
====== NpadGcTriggerState ====== | |||
This is "nn::hid::server::NpadGcTriggerState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| | |||
|} | |||
== GestureSharedMemoryFormat == | |||
This is "nn::hid::detail::GestureSharedMemoryFormat". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x708 | |||
| [[#GestureLifo]] | |||
|} | |||
=== GestureLifo === | |||
This is "nn::hid::detail::GestureLifo". This is a RingLifo object. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| RingLifoVptr | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| BufferCount | |||
|- | |||
| 0x10 | |||
| 0x8 | |||
| Tail | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Count | |||
|- | |||
| 0x20 | |||
| 0x68 * 17 | |||
| Array of [[#GestureDummyStateAtomicStorage]] | |||
|} | |||
===== GestureDummyStateAtomicStorage ===== | |||
This is "nn::hid::detail::GestureDummyStateAtomicStorage". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x60 | |||
| [[#GestureDummyState]] | |||
|} | |||
====== GestureDummyState ====== | |||
This is "nn::hid::detail::GestureDummyState". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |||
| 0x8 | |||
| 0x8 | |||
| ContextNumber | |||
|- | |||
| 0x10 | |||
| 0x4 | |||
| Type | |||
|- | |||
| 0x14 | |||
| 0x4 | |||
| Direction | |||
|- | |||
| 0x18 | |||
| 0x4 | |||
| X | |||
|- | |||
| 0x1C | |||
| 0x4 | |||
| Y | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| DeltaX | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| DeltaY | |||
|- | |||
| 0x28 | |||
| 0x4 | |||
| VelocityX | |||
|- | |||
| 0x2C | |||
| 0x4 | |||
| VelocityY | |||
|- | |||
| 0x30 | |||
| 0x4 | |||
| [[#GestureAttributeSet|Attributes]] | |||
|- | |||
| 0x34 | |||
| 0x4 | |||
| Scale | |||
|- | |||
| 0x38 | |||
| 0x4 | |||
| RotationAngle | |||
|- | |||
| 0x3C | |||
| 0x4 | |||
| PointCount | |||
|- | |||
| 0x40 | |||
| 0x8 * 4 | |||
| [[#GesturePoint|Points]] | |||
|} | |||
== ConsoleSixAxisSensorSharedMemoryFormat == | |||
This is "nn::hid::detail::ConsoleSixAxisSensorSharedMemoryFormat". | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x8 | |||
| SamplingNumber | |||
|- | |- | ||
| 0x8 | | 0x8 | ||
Line 1,901: | Line 2,475: | ||
| 0xC | | 0xC | ||
| GyroBias | | GyroBias | ||
|} | |} |