Difference between revisions of "HID Shared Memory"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Redirected page to HID services)
Tag: New redirect
 
Line 1: Line 1:
HID shared memory is a 0x40000 byte read-only segment of memory shared between applications for input. The segment contains structures for most if not all input methods available to applications.
+
#REDIRECT [[HID_services]]
 
 
= SharedMemoryFormat =
 
This is "nn::hid::detail::SharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x400
 
| [[#DebugPadSharedMemoryFormat|DebugPad]]
 
|-
 
| 0x400
 
| 0x3000
 
| [[#TouchScreenSharedMemoryFormat|TouchScreen]]
 
|-
 
| 0x3400
 
| 0x400
 
| [[#MouseSharedMemoryFormat|Mouse]]
 
|-
 
| 0x3800
 
| 0x400
 
| [[#KeyboardSharedMemoryFormat|Keyboard]]
 
|-
 
| 0x3C00
 
| 0x1000
 
| [[#DigitizerSharedMemoryFormat|Digitizer]] ([1.0.0-9.2.0] [[#BasicXpadSharedMemoryFormat|BasicXpad]])
 
|-
 
| 0x4C00
 
| 0x200
 
| [[#HomeButtonSharedMemoryFormat|HomeButton]]
 
|-
 
| 0x4E00
 
| 0x200
 
| [[#SleepButtonSharedMemoryFormat|SleepButton]]
 
|-
 
| 0x5000
 
| 0x200
 
| [[#CaptureButtonSharedMemoryFormat|CaptureButton]]
 
|-
 
| 0x5200
 
| 0x800 (0x80 * 0x10)
 
| [[#InputDetectorSharedMemoryFormat|InputDetector]]
 
|-
 
| 0x5A00
 
| 0x4000 (0x400 * 0x10)
 
| [1.0.0-4.1.0] [[#UniquePadSharedMemoryFormat|UniquePad]]
 
|-
 
| 0x9A00
 
| 0x32000 (0x5000 * 0x0A)
 
| [[#NpadSharedMemoryFormat|Npad]]
 
|-
 
| 0x3BA00
 
| 0x800
 
| [[#GestureSharedMemoryFormat|Gesture]]
 
|-
 
| 0x3C200
 
| 0x1C
 
| [5.0.0+] [[#ConsoleSixAxisSensorSharedMemoryFormat|ConsoleSixAxisSensor]]
 
|}
 
 
 
== DebugPadSharedMemoryFormat ==
 
This is "nn::hid::detail::DebugPadSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x2C8
 
| [[#DebugPadLifo]]
 
|}
 
 
 
=== DebugPadLifo ===
 
This is "nn::hid::detail::DebugPadLifo". 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
 
| 0x28 * 17
 
| Array of [[#DebugPadStateAtomicStorage]]
 
|}
 
 
 
==== DebugPadStateAtomicStorage ====
 
This is "nn::hid::detail::DebugPadStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x20
 
| [[#DebugPadState]]
 
|}
 
 
 
===== DebugPadState =====
 
This is "nn::hid::DebugPadState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x4
 
| [[#DebugPadAttributeSet|Attributes]]
 
|-
 
| 0xC
 
| 0x4
 
| [[#DebugPadButtonSet|Buttons]]
 
|-
 
| 0x10
 
| 0x8
 
| [[#AnalogStickState|AnalogStickR]]
 
|-
 
| 0x18
 
| 0x8
 
| [[#AnalogStickState|AnalogStickL]]
 
|}
 
 
 
== TouchScreenSharedMemoryFormat ==
 
This is "nn::hid::detail::TouchScreenSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x2C38
 
| [[#TouchScreenLifo]]
 
|}
 
 
 
=== TouchScreenLifo ===
 
This is "nn::hid::detail::TouchScreenLifo". 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
 
| 0x298 * 17
 
| Array of [[#TouchScreenStateAtomicStorage]]
 
|}
 
 
 
==== TouchScreenStateAtomicStorage ====
 
This is "nn::hid::detail::TouchScreenStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x290
 
| [[#TouchScreenState]]
 
|}
 
 
 
===== TouchScreenState =====
 
This is "nn::hid::detail::TouchScreenState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x4
 
| Count
 
|-
 
| 0xC
 
| 0x4
 
| Reserved
 
|-
 
| 0x10
 
| 0x28 * 16
 
| [[#TouchState|Touches]]
 
|}
 
 
 
====== TouchState ======
 
This is "nn::hid::TouchState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| DeltaTime
 
|-
 
| 0x8
 
| 0x4
 
| [[#TouchAttributeSet|Attributes]]
 
|-
 
| 0xC
 
| 0x4
 
| FingerId
 
|-
 
| 0x10
 
| 0x4
 
| X
 
|-
 
| 0x14
 
| 0x4
 
| Y
 
|-
 
| 0x18
 
| 0x4
 
| DiameterX
 
|-
 
| 0x1C
 
| 0x4
 
| DiameterY
 
|-
 
| 0x20
 
| 0x4
 
| RotationAngle
 
|-
 
| 0x24
 
| 0x4
 
| Reserved
 
|}
 
 
 
== MouseSharedMemoryFormat ==
 
This is "nn::hid::detail::MouseSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x350
 
| [[#MouseLifo]]
 
|}
 
 
 
=== MouseLifo ===
 
This is "nn::hid::detail::MouseLifo". 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 [[#MouseStateAtomicStorage]]
 
|}
 
 
 
==== MouseStateAtomicStorage ====
 
This is "nn::hid::detail::MouseStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x28
 
| [[#MouseState]]
 
|}
 
 
 
===== MouseState =====
 
This is "nn::hid::detail::MouseState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x4
 
| X
 
|-
 
| 0xC
 
| 0x4
 
| Y
 
|-
 
| 0x10
 
| 0x4
 
| DeltaX
 
|-
 
| 0x14
 
| 0x4
 
| DeltaY
 
|-
 
| 0x18
 
| 0x4
 
| WheelDeltaX
 
|-
 
| 0x1C
 
| 0x4
 
| WheelDeltaY
 
|-
 
| 0x20
 
| 0x4
 
| [[#MouseButtonSet|Buttons]]
 
|-
 
| 0x24
 
| 0x4
 
| [[#MouseAttributeSet|Attributes]]
 
|}
 
 
 
== KeyboardSharedMemoryFormat ==
 
This is "nn::hid::detail::KeyboardSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x3D8
 
| [[#KeyboardLifo]]
 
|}
 
 
 
=== KeyboardLifo ===
 
This is "nn::hid::detail::KeyboardLifo". 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
 
| 0x38 * 17
 
| Array of [[#KeyboardStateAtomicStorage]]
 
|}
 
 
 
==== KeyboardStateAtomicStorage ====
 
This is "nn::hid::detail::KeyboardStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x30
 
| [[#KeyboardState]]
 
|}
 
 
 
===== KeyboardState =====
 
This is "nn::hid::detail::KeyboardState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x8
 
| [[#KeyboardModifierSet|Modifiers]]
 
|-
 
| 0x10
 
| 0x20
 
| [[#KeyboardKeySet|Keys]]
 
|}
 
 
 
== BasicXpadSharedMemoryFormat ==
 
This is "nn::hid::detail::BasicXpadSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x400 * 4
 
| Array of [[#BasicXpadSharedMemoryEntry]]
 
|}
 
 
 
=== BasicXpadSharedMemoryEntry ===
 
This is "nn::hid::detail::BasicXpadSharedMemoryEntry".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x2C8
 
| [[#BasicXpadLifo]]
 
|}
 
 
 
==== BasicXpadLifo ====
 
This is "nn::hid::detail::BasicXpadLifo". 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
 
| 0x28 * 17
 
| Array of [[#BasicXpadStateAtomicStorage]]
 
|}
 
 
 
===== BasicXpadStateAtomicStorage =====
 
This is "nn::hid::detail::BasicXpadStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x20
 
| [[#BasicXpadState]]
 
|}
 
 
 
====== BasicXpadState ======
 
This is "nn::hid::detail::BasicXpadState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x4
 
| [[#BasicXpadAttributeSet|Attributes]]
 
|-
 
| 0xC
 
| 0x4
 
| [[#BasicXpadButtonSet|Buttons]]
 
|-
 
| 0x10
 
| 0x8
 
| [[#AnalogStickState|AnalogStickL]]
 
|-
 
| 0x18
 
| 0x8
 
| [[#AnalogStickState|AnalogStickR]]
 
|}
 
 
 
== HomeButtonSharedMemoryFormat ==
 
This is "nn::hid::detail::HomeButtonSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x1B8
 
| [[#HomeButtonLifo]]
 
|}
 
 
 
=== HomeButtonLifo ===
 
This is "nn::hid::detail::HomeButtonLifo". 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 [[#HomeButtonStateAtomicStorage]]
 
|}
 
 
 
==== HomeButtonStateAtomicStorage ====
 
This is "nn::hid::detail::HomeButtonStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x10
 
| [[#HomeButtonState]]
 
|}
 
 
 
===== HomeButtonState =====
 
This is "nn::hid::system::HomeButtonState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x8
 
| [[#HomeButtonSet|Buttons]]
 
|}
 
 
 
== SleepButtonSharedMemoryFormat ==
 
This is "nn::hid::detail::SleepButtonSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x1B8
 
| [[#SleepButtonLifo]]
 
|}
 
 
 
=== SleepButtonLifo ===
 
This is "nn::hid::detail::SleepButtonLifo". 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 [[#SleepButtonStateAtomicStorage]]
 
|}
 
 
 
==== SleepButtonStateAtomicStorage ====
 
This is "nn::hid::detail::SleepButtonStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x10
 
| [[#SleepButtonState]]
 
|}
 
 
 
===== SleepButtonState =====
 
This is "nn::hid::system::SleepButtonState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x8
 
| [[#SleepButtonSet|Buttons]]
 
|}
 
 
 
== CaptureButtonSharedMemoryFormat ==
 
This is "nn::hid::detail::CaptureButtonSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x1B8
 
| [[#CaptureButtonLifo]]
 
|}
 
 
 
=== CaptureButtonLifo ===
 
This is "nn::hid::detail::CaptureButtonLifo". 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 [[#CaptureButtonStateAtomicStorage]]
 
|}
 
 
 
==== CaptureButtonStateAtomicStorage ====
 
This is "nn::hid::detail::CaptureButtonStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x10
 
| [[#CaptureButtonState]]
 
|}
 
 
 
===== CaptureButtonState =====
 
This is "nn::hid::system::CaptureButtonState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x8
 
| [[#CaptureButtonSet|Buttons]]
 
|}
 
 
 
== InputDetectorSharedMemoryFormat ==
 
This is "nn::hid::detail::InputDetectorSharedMemoryFormat".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x80 * 16
 
| Array of [[#InputDetectorSharedMemoryEntry]]
 
|}
 
 
 
=== InputDetectorSharedMemoryEntry ===
 
This is "nn::hid::detail::InputDetectorSharedMemoryEntry".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x50
 
| [[#InputDetectorLifo]]
 
|}
 
 
 
==== InputDetectorLifo ====
 
This is "nn::hid::detail::InputDetectorLifo". 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 * 2
 
| Array of [[#InputDetectorStateAtomicStorage]]
 
|}
 
 
 
===== InputDetectorStateAtomicStorage =====
 
This is "nn::hid::detail::InputDetectorStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x10
 
| [[#InputDetectorState]]
 
|}
 
 
 
====== InputDetectorState ======
 
This is "nn::hid::detail::InputDetectorState".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| InputSourceState
 
|-
 
| 0x8
 
| 0x8
 
| SamplingNumber
 
|}
 
 
 
== UniquePadSharedMemoryFormat ==
 
This is "nn::hid::detail::UniquePadSharedMemoryFormat".
 
 
 
[5.0.0+] This section has been removed from [[#SharedMemoryFormat]]. [[#UniquePadSharedMemoryFormat]] is now a specialization of [[#NpadSharedMemoryFormat]].
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x400 * 16
 
| Array of [[#UniquePadSharedMemoryEntry]]
 
|}
 
 
 
== UniquePadSharedMemoryEntry ==
 
This is "nn::hid::detail::UniquePadSharedMemoryEntry".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x1E0
 
| [[#UniquePadLifo]]
 
|}
 
 
 
=== UniquePadLifo ===
 
This is "nn::hid::detail::UniquePadLifo". This is a RingLifo object.
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x80
 
| [[#UniquePadConfigLifo]]
 
|-
 
| 0x80
 
| 0x70 * 2
 
| Array of [[#AnalogStickCalibrationStateImplLifo]]
 
|-
 
| 0x160
 
| 0x40
 
| [[#SixAxisSensorUserCalibrationStateLifo]]
 
|-
 
| 0x1A0
 
| 0x40
 
| UniquePadConfigMutex
 
|}
 
 
 
==== UniquePadConfigLifo ====
 
This is "nn::hid::detail::UniquePadConfigLifo". 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 * 2
 
| Array of [[#UniquePadConfigAtomicStorage]]
 
|}
 
 
 
===== UniquePadConfigAtomicStorage =====
 
This is "nn::hid::detail::UniquePadConfigAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x28
 
| [[#UniquePadConfig]]
 
|}
 
 
 
====== UniquePadConfig ======
 
This is "nn::hid::detail::UniquePadConfig".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x4
 
| [[#UniquePadType|Type]]
 
|-
 
| 0x4
 
| 0x4
 
| [[#UniquePadInterface|Interface]]
 
|-
 
| 0x8
 
| 0x10
 
| [[#UniquePadSerialNumber|SerialNumber]]
 
|-
 
| 0x18
 
| 0x4
 
| ControllerNumber
 
|-
 
| 0x1C
 
| 0x1
 
| IsActive
 
|-
 
| 0x1D
 
| 0x3
 
| Reserved
 
|-
 
| 0x20
 
| 0x8
 
| SamplingNumber
 
|}
 
 
 
==== AnalogStickCalibrationStateImplLifo ====
 
This is "nn::hid::detail::AnalogStickCalibrationStateImplLifo". 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
 
| 0x28 * 2
 
| Array of [[#AnalogStickCalibrationStateImplAtomicStorage]]
 
|}
 
 
 
===== AnalogStickCalibrationStateImplAtomicStorage =====
 
This is "nn::hid::detail::AnalogStickCalibrationStateImplAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x20
 
| [[#AnalogStickCalibrationStateImpl]]
 
|}
 
 
 
====== AnalogStickCalibrationStateImpl ======
 
This is "nn::hid::detail::AnalogStickCalibrationStateImpl".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| [[#AnalogStickState|State]]
 
|-
 
| 0x8
 
| 0x8
 
| [[#AnalogStickCalibrationFlagsSet|Flags]]
 
|-
 
| 0x10
 
| 0x8
 
| Stage
 
|-
 
| 0x18
 
| 0x8
 
| SamplingNumber
 
|}
 
 
 
==== SixAxisSensorUserCalibrationStateLifo ====
 
This is "nn::hid::detail::SixAxisSensorUserCalibrationStateLifo". 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 [[#SixAxisSensorUserCalibrationStateAtomicStorage]]
 
|}
 
 
 
===== SixAxisSensorUserCalibrationStateAtomicStorage =====
 
This is "nn::hid::detail::SixAxisSensorUserCalibrationStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x18
 
| [[#SixAxisSensorUserCalibrationState]]
 
|}
 
 
 
====== SixAxisSensorUserCalibrationState ======
 
This is "nn::hid::detail::UniquePadConfig".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x4
 
| [[#SixAxisSensorUserCalibrationFlagsSet|Flags]]
 
|-
 
| 0x4
 
| 0x4
 
| Reserved
 
|-
 
| 0x8
 
| 0x8
 
| Stage
 
|-
 
| 0x10
 
| 0x8
 
| SamplingNumber
 
|}
 
 
 
== 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"
 
|-
 
! Entry
 
! Description
 
|-
 
| 0 to 7
 
| Players 1 to 8
 
|-
 
| 8
 
| Handheld Mode
 
|-
 
| 9
 
| Other
 
|}
 
 
 
== NpadSharedMemoryEntry ==
 
This is "nn::hid::detail::NpadSharedMemoryEntry".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 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
 
| 0x350
 
| [[#NpadHandheldLifo|HandheldLifo]]
 
|-
 
| 0x6C8
 
| 0x350
 
| [[#NpadJoyDualLifo|JoyDualLifo]]
 
|-
 
| 0xA18
 
| 0x350
 
| [[#NpadJoyLeftLifo|JoyLeftLifo]]
 
|-
 
| 0xD68
 
| 0x350
 
| [[#NpadJoyRightLifo|JoyRightLifo]]
 
|-
 
| 0x10B8
 
| 0x350
 
| [[#NpadPalmaLifo|PalmaLifo]] ([1.0.0-3.0.2] [[#NpadSystemLifo|SystemLifo]])
 
|-
 
| 0x1408
 
| 0x350
 
| [[#NpadSystemExtLifo|SystemExtLifo]] ([4.0.0+] also used for NpadSystem)
 
|-
 
| 0x1758
 
| 0x708
 
| [[#NpadSixAxisSensorLifo|FullKeySixAxisSensorLifo]]
 
|-
 
| 0x1E60
 
| 0x708
 
| [[#NpadSixAxisSensorLifo|HandheldSixAxisSensorLifo]]
 
|-
 
| 0x2568
 
| 0x708
 
| [[#NpadSixAxisSensorLifo|JoyDualLeftSixAxisSensorLifo]]
 
|-
 
| 0x2C70
 
| 0x708
 
| [[#NpadSixAxisSensorLifo|JoyDualRightSixAxisSensorLifo]]
 
|-
 
| 0x3378
 
| 0x708
 
| [[#NpadSixAxisSensorLifo|JoyLeftSixAxisSensorLifo]]
 
|-
 
| 0x3A80
 
| 0x708
 
| [[#NpadSixAxisSensorLifo|JoyRightSixAxisSensorLifo]]
 
|-
 
| 0x4188
 
| 0x4
 
| [[HID_services#DeviceType|DeviceType]]
 
|-
 
| 0x418C
 
| 0x4
 
| Reserved
 
|-
 
| 0x4190
 
| 0x8
 
| [[#NpadSystemProperties|SystemProperties]]
 
|-
 
| 0x4198
 
| 0x4
 
| [[#NpadSystemButtonProperties|SystemButtonProperties]]
 
|-
 
| 0x419C
 
| 0x4
 
| BatteryLevel0
 
|-
 
| 0x41A0
 
| 0x4
 
| BatteryLevel1
 
|-
 
| 0x41A4
 
| 0x4
 
| BatteryLevel2
 
|-
 
| 0x41A8
 
| 0x60
 
| [1.0.0-8.1.0] [[#NfcXcdDeviceHandleState|NfcXcdDeviceHandle]] (replaced by [[HID_services|GetXcdHandleForNpadWithNfc/IsNfcActivated]])
 
|-
 
| 0x41A8
 
| 0x4
 
| [9.0.0+] [[#AppletFooterUiAttribute|AppletFooterUiAttributes]]
 
|-
 
| 0x41AC
 
| 0x1
 
| [9.0.0+] [[#AppletFooterUiType|AppletFooterUiType]]
 
|-
 
| 0x41AD
 
| 0x7B
 
| [9.0.0+] Reserved
 
|-
 
| 0x4208
 
| 0x40
 
| [1.0.0-8.1.0] Mutex
 
|-
 
| 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
 
| LarkTypeR
 
|-
 
| 0x43E8 ([1.0.0-8.1.0] 0x4408)
 
| 0x4
 
| LuciaType
 
|-
 
| 0x43EC ([1.0.0-8.1.0] 0x440C)
 
| 0x4
 
|
 
|}
 
 
 
==== NpadFullKeyLifo ====
 
This is "nn::hid::detail::NpadFullKeyLifo". 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 [[#NpadFullKeyStateAtomicStorage]]
 
|}
 
 
 
===== NpadFullKeyStateAtomicStorage =====
 
This is "nn::hid::detail::NpadFullKeyStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x28
 
| [[#NpadFullKeyState]]
 
|}
 
 
 
====== NpadFullKeyState ======
 
This is "nn::hid::NpadFullKeyState".
 
 
 
{| 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
 
|}
 
 
 
==== NpadHandheldLifo ====
 
This is "nn::hid::detail::NpadHandheldLifo". 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 [[#NpadHandheldStateAtomicStorage]]
 
|}
 
 
 
===== NpadHandheldStateAtomicStorage =====
 
This is "nn::hid::detail::NpadHandheldStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x28
 
| [[#NpadHandheldState]]
 
|}
 
 
 
====== NpadHandheldState ======
 
This is "nn::hid::NpadHandheldState".
 
 
 
{| 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
 
|}
 
 
 
==== NpadJoyDualLifo ====
 
This is "nn::hid::detail::NpadJoyDualLifo". 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 [[#NpadJoyDualStateAtomicStorage]]
 
|}
 
 
 
===== NpadJoyDualStateAtomicStorage =====
 
This is "nn::hid::detail::NpadJoyDualStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x28
 
| [[#NpadJoyDualState]]
 
|}
 
 
 
====== NpadJoyDualState ======
 
This is "nn::hid::NpadJoyDualState".
 
 
 
{| 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
 
|}
 
 
 
==== NpadJoyLeftLifo ====
 
This is "nn::hid::detail::NpadJoyLeftLifo". 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 [[#NpadJoyLeftStateAtomicStorage]]
 
|}
 
 
 
===== NpadJoyLeftStateAtomicStorage =====
 
This is "nn::hid::detail::NpadJoyLeftStateAtomicStorage".
 
 
 
{| class="wikitable" border="1"
 
|-
 
! Offset
 
! Size
 
! Description
 
|-
 
| 0x0
 
| 0x8
 
| SamplingNumber
 
|-
 
| 0x8
 
| 0x28
 
| [[#NpadJoyLeftState]]
 
|}
 
 
 
====== NpadJoyLeftState ======
 
This is "nn::hid::NpadJoyLeftState".
 
 
 
{| 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
 
|}
 
 
 
==== NpadJoyRightLifo ====
 
This is "nn::hid::detail::NpadJoyRightLifo". 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 [[#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
 
| 0x1
 
| IsSevenSixAxisSensorAtRest
 
|-
 
| 0x9
 
| 0x3
 
| Padding
 
|-
 
| 0xC
 
| 0x4
 
| VerticalizationError
 
|-
 
| 0x10
 
| 0xC
 
| GyroBias
 
|}
 

Latest revision as of 18:21, 22 November 2020

Redirect to: