|
|
(2 intermediate revisions by the same user not shown) |
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
| |
| | [1.0.0-9.2.0] [[#BasicXpadSharedMemoryFormat|BasicXpad]]
| |
| |-
| |
| | 0x3C00
| |
| |
| |
| | [10.0.0+] [[#DigitizerSharedMemoryFormat|Digitizer]]
| |
| |-
| |
| | 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
| |
| | 0x20
| |
| | [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
| |
| | 0x8
| |
| | 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 [[#AnalogStickCalibrationStateImpl]]
| |
| |}
| |
| | |
| ====== 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]]
| |
| |}
| |
| | |
| ======= UniquePadConfig =======
| |
| This is "nn::hid::detail::UniquePadConfig".
| |
| | |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | [[#SixAxisSensorUserCalibrationFlagsSet|Flags]]
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | Stage
| |
| |-
| |
| | 0x10
| |
| | 0x8
| |
| | SamplingNumber
| |
| |}
| |
| | |
| == NpadSharedMemoryFormat ==
| |
| This is "nn::hid::detail::NpadSharedMemoryFormat".
| |
| | |
| This section contains a series of 10 0x5000 byte structures describing each available controller.
| |
| | |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Index
| |
| ! Description
| |
| |-
| |
| | 0 to 7
| |
| | Players 1 to 8
| |
| |-
| |
| | 8
| |
| | Handheld Mode
| |
| |-
| |
| | 9
| |
| | Other
| |
| |}
| |
| | |
| === NpadState ===
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x28
| |
| | [[#NpadStateHeader]]
| |
| |-
| |
| | 0x28
| |
| | 0x20
| |
| | NpadFullKeyHeader
| |
| |-
| |
| | 0x48
| |
| | 0x30 * 17
| |
| | Array of NpadFullKeyState
| |
| |-
| |
| | 0x378
| |
| | 0x20
| |
| | [[#NpadHandheldHeader]]
| |
| |-
| |
| | 0x398
| |
| | 0x30 * 17
| |
| | Array of [[#NpadHandheldState]]
| |
| |-
| |
| | 0x6C8
| |
| | 0x20
| |
| | NpadJoyDualHeader
| |
| |-
| |
| | 0x6E8
| |
| | 0x30 * 17
| |
| | Array of NpadJoyDualState
| |
| |-
| |
| | 0xA18
| |
| | 0x20
| |
| | NpadJoyLeftHeader
| |
| |-
| |
| | 0xA38
| |
| | 0x30 * 17
| |
| | Array of NpadJoyLeftState
| |
| |-
| |
| | 0xD68
| |
| | 0x20
| |
| | NpadJoyRightHeader
| |
| |-
| |
| | 0xD88
| |
| | 0x30 * 17
| |
| | Array of NpadJoyRightState
| |
| |-
| |
| | 0x10B8
| |
| | 0x20
| |
| | NpadPalmaHeader ([1.0.0-3.0.2] NpadSystemHeader)
| |
| |-
| |
| | 0x12B8
| |
| | 0x30 * 17
| |
| | Array of NpadPalmaState ([1.0.0-3.0.2] NpadSystemState)
| |
| |-
| |
| | 0x1408
| |
| | 0x20
| |
| | NpadSystemExtHeader ([4.0.0+] also used by NpadSystem)
| |
| |-
| |
| | 0x1428
| |
| | 0x30 * 17
| |
| | Array of NpadSystemExtState ([4.0.0+] also used by NpadSystem)
| |
| |-
| |
| | 0x1758
| |
| | 0x20
| |
| | NpadSixAxisSensorFullKeyHeader
| |
| |-
| |
| | 0x1778
| |
| | 0x68 * 17
| |
| | Array of NpadSixAxisSensorFullKeyState
| |
| |-
| |
| | 0x1E60
| |
| | 0x20
| |
| | NpadSixAxisSensorHandheldHeader
| |
| |-
| |
| | 0x1E80
| |
| | 0x68 * 17
| |
| | Array of NpadSixAxisSensorHandheldState
| |
| |-
| |
| | 0x2568
| |
| | 0x20
| |
| | NpadSixAxisSensorJoyLeftDualHeader
| |
| |-
| |
| | 0x2588
| |
| | 0x68 * 17
| |
| | Array of NpadSixAxisSensorJoyLeftDualState
| |
| |-
| |
| | 0x2C70
| |
| | 0x20
| |
| | NpadSixAxisSensorJoyRightDualHeader
| |
| |-
| |
| | 0x2C90
| |
| | 0x68 * 17
| |
| | Array of NpadSixAxisSensorJoyRightDualState
| |
| |-
| |
| | 0x3378
| |
| | 0x20
| |
| | NpadSixAxisSensorJoyLeftHeader
| |
| |-
| |
| | 0x3398
| |
| | 0x68 * 17
| |
| | Array of NpadSixAxisSensorJoyLeftState
| |
| |-
| |
| | 0x3A80
| |
| | 0x20
| |
| | NpadSixAxisSensorJoyRightHeader
| |
| |-
| |
| | 0x3AA0
| |
| | 0x68 * 17
| |
| | Array of NpadSixAxisSensorJoyRightState
| |
| |-
| |
| | 0x4188
| |
| | 0x4
| |
| | [[HID_services#DeviceType|DeviceType]]
| |
| |-
| |
| | 0x418C
| |
| | 0x4
| |
| | Padding
| |
| |-
| |
| | 0x4190
| |
| | 0x8
| |
| | [[#NpadSystemProperties]]
| |
| |-
| |
| | 0x4198
| |
| | 0x4
| |
| | [[#NpadSystemButtonProperties]]
| |
| |-
| |
| | 0x419C
| |
| | 0x4
| |
| | BatteryIndex0 state (must be 0-4)
| |
| |-
| |
| | 0x41A0
| |
| | 0x4
| |
| | BatteryIndex1 state (must be 0-4)
| |
| |-
| |
| | 0x41A4
| |
| | 0x4
| |
| | BatteryIndex2 state (must be 0-4)
| |
| |-
| |
| | 0x41A8
| |
| | 0x20
| |
| | [1.0.0-3.0.2] NfcXcdDeviceHandleHeader (Replaced by [[HID_services|commands]] GetXcdHandleForNpadWithNfc/IsNfcActivated)
| |
| |-
| |
| | 0x41C8
| |
| | 0x20 * 2
| |
| | [1.0.0-3.0.2] Array of [[#NfcXcdDeviceHandleState]] (See above)
| |
| |-
| |
| | 0x41A8
| |
| | 0x4
| |
| | [9.0.0+] [[HID_services#AppletFooterUiAttribute|AppletFooterUiAttribute]]
| |
| |-
| |
| | 0x41AC
| |
| | 0x1
| |
| | [9.0.0+] [[HID_services#AppletFooterUiType|AppletFooterUiType]]
| |
| |-
| |
| | 0x4208
| |
| | 0x8
| |
| | Mutex
| |
| |-
| |
| | 0x4228
| |
| | 0x20
| |
| | NpadGcTriggerHeader
| |
| |-
| |
| | 0x4248
| |
| | 0x18 * 17
| |
| | Array of NpadGcTriggerState
| |
| |-
| |
| | 0x43E0
| |
| | 0x4
| |
| |
| |
| |-
| |
| | 0x43E4
| |
| | 0x4
| |
| |
| |
| |-
| |
| | 0x43E8
| |
| | 0x4
| |
| |
| |
| |}
| |
| | |
| ==== NpadStateHeader ====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x4
| |
| | [[HID_services#NpadStyleTag|NpadStyleSet]]
| |
| |-
| |
| | 0x4
| |
| | 0x4
| |
| | [[HID_services#NpadJoyAssignmentMode|NpadJoyAssignmentMode]]
| |
| |-
| |
| | 0x8
| |
| | 0x4
| |
| | bit1 color set does not exist
| |
| |-
| |
| | 0xC
| |
| | 0x4
| |
| | RGBA Body Color (single Joy-Con or Pro Controller)
| |
| |-
| |
| | 0x10
| |
| | 0x4
| |
| | RGBA Button Color (single Joy-Con or Pro Controller)
| |
| |-
| |
| | 0x14
| |
| | 0x4
| |
| | bit1 color set does not exist
| |
| |-
| |
| | 0x18
| |
| | 0x4
| |
| | RGBA Body Color (right Joy-Con)
| |
| |-
| |
| | 0x1C
| |
| | 0x4
| |
| | RGBA Button Color (right Joy-Con)
| |
| |-
| |
| | 0x20
| |
| | 0x4
| |
| | RGBA Body Color (left Joy-Con)
| |
| |-
| |
| | 0x24
| |
| | 0x4
| |
| | RGBA Button Color (left Joy-Con)
| |
| |}
| |
| | |
| ==== NpadHandheldHeader ====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in ticks
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | Number of entries (always 17)
| |
| |-
| |
| | 0x10
| |
| | 0x8
| |
| | Latest Entry Index
| |
| |-
| |
| | 0x18
| |
| | 0x8
| |
| | Maximum Entry Index (always 16)
| |
| |}
| |
| | |
| ==== NpadHandheldState ====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in samples (global)
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | Timestamp in samples
| |
| |-
| |
| | 0x10
| |
| | 0x8
| |
| | [[#NpadButton]]
| |
| |-
| |
| | 0x18
| |
| | 0x4
| |
| | Left Joystick X
| |
| |-
| |
| | 0x1C
| |
| | 0x4
| |
| | Left Joystick Y
| |
| |-
| |
| | 0x20
| |
| | 0x4
| |
| | Right Joystick X
| |
| |-
| |
| | 0x24
| |
| | 0x4
| |
| | Right Joystick Y
| |
| |-
| |
| | 0x28
| |
| | 0x4
| |
| | Controller State (bit0 connected, bit1 wired)
| |
| |-
| |
| | 0x2C
| |
| | 0x4
| |
| | Padding
| |
| |}
| |
| | |
| ===== NpadButton =====
| |
| This is the u64 bitmask for "nn::hid::NpadButton".
| |
| | |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Bit
| |
| ! Button
| |
| |-
| |
| | 0
| |
| | A
| |
| |-
| |
| | 1
| |
| | B
| |
| |-
| |
| | 2
| |
| | X
| |
| |-
| |
| | 3
| |
| | Y
| |
| |-
| |
| | 4
| |
| | Left Stick Pressed
| |
| |-
| |
| | 5
| |
| | Right Stick Pressed
| |
| |-
| |
| | 6
| |
| | L
| |
| |-
| |
| | 7
| |
| | R
| |
| |-
| |
| | 8
| |
| | ZL
| |
| |-
| |
| | 9
| |
| | ZR
| |
| |-
| |
| | 10
| |
| | Plus
| |
| |-
| |
| | 11
| |
| | Minus
| |
| |-
| |
| | 12
| |
| | Left
| |
| |-
| |
| | 13
| |
| | Up
| |
| |-
| |
| | 14
| |
| | Right
| |
| |-
| |
| | 15
| |
| | Down
| |
| |-
| |
| | 16
| |
| | Left Stick Left
| |
| |-
| |
| | 17
| |
| | Left Stick Up
| |
| |-
| |
| | 18
| |
| | Left Stick Right
| |
| |-
| |
| | 19
| |
| | Left Stick Down
| |
| |-
| |
| | 20
| |
| | Right Stick Left
| |
| |-
| |
| | 21
| |
| | Right Stick Up
| |
| |-
| |
| | 22
| |
| | Right Stick Right
| |
| |-
| |
| | 23
| |
| | Right Stick Down
| |
| |-
| |
| | 24
| |
| | LeftSL
| |
| |-
| |
| | 25
| |
| | LeftSR
| |
| |-
| |
| | 26
| |
| | RightSL
| |
| |-
| |
| | 27
| |
| | RightSR
| |
| |-
| |
| | 28
| |
| | Palma
| |
| |-
| |
| | 29
| |
| |
| |
| |-
| |
| | 30
| |
| | HandheldLeftB (Left B button on NES controllers in Handheld mode)
| |
| |}
| |
| | |
| ===== NpadSixAxisSensorHandheldHeader =====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in ticks
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | Number of entries (always 17)
| |
| |-
| |
| | 0x10
| |
| | 0x8
| |
| | Latest Entry Index
| |
| |-
| |
| | 0x18
| |
| | 0x8
| |
| | Maximum Entry Index (up to 16)
| |
| |}
| |
| | |
| ===== NpadSixAxisSensorHandheldState =====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in samples (global)
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | Unknown
| |
| |-
| |
| | 0x10
| |
| | 0x8
| |
| | Timestamp in samples
| |
| |-
| |
| | 0x1C
| |
| | 0x4 * 3
| |
| | Accelerometer data as 3 floats
| |
| |-
| |
| | 0x24
| |
| | 0x4 * 3
| |
| | Gyroscope data as 3 floats
| |
| |-
| |
| | 0x30
| |
| | 0x4 * 3
| |
| | Unknown sensor data as 3 floats
| |
| |-
| |
| | 0x3C
| |
| | 0x4 * 9
| |
| | Orientation basis as 3x3 matrix of floats
| |
| |-
| |
| | 0x60
| |
| | 0x8
| |
| | Unknown, always 1
| |
| |}
| |
| | |
| Official sw copies the data from offset 0x8 size 0x60 to the final output state.
| |
| | |
| ==== NpadSystemProperties ====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Bit
| |
| ! Description
| |
| |-
| |
| | 0
| |
| | PowerInfo0 isCharging
| |
| |-
| |
| | 1
| |
| | PowerInfo1 isCharging
| |
| |-
| |
| | 2
| |
| | PowerInfo2 isCharging
| |
| |-
| |
| | 3
| |
| | PowerInfo0 powerConnected
| |
| |-
| |
| | 4
| |
| | PowerInfo1 powerConnected
| |
| |-
| |
| | 5
| |
| | PowerInfo2 powerConnected
| |
| |-
| |
| | 6-8
| |
| | Unused
| |
| |-
| |
| | 9
| |
| | UnsupportedButtonPressed_NpadSystem
| |
| |-
| |
| | 10
| |
| | UnsupportedButtonPressed_NpadSystemExt
| |
| |-
| |
| | 11
| |
| | AbxyButtonOriented
| |
| |-
| |
| | 12
| |
| | SlSrButtonOriented
| |
| |-
| |
| | 13
| |
| | [4.0.0+] PlusButtonCapability
| |
| |-
| |
| | 14
| |
| | [4.0.0+] MinusButtonCapability
| |
| |-
| |
| | 15
| |
| | [8.0.0+] DirectionalButtonsSupported
| |
| |-
| |
| | 16-63
| |
| | Unused
| |
| |}
| |
| | |
| ==== NpadSystemButtonProperties ====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Bit
| |
| ! Description
| |
| |-
| |
| | 0
| |
| | UnintendedHomeButtonInputProtectionEnabled (if cleared)
| |
| |}
| |
| | |
| ==== NfcXcdDeviceHandleState ====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in samples (global)
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | DeviceHandle
| |
| |-
| |
| | 0x10
| |
| | 0x1
| |
| | Flag
| |
| |-
| |
| | 0x11
| |
| | 0x1
| |
| | Flag
| |
| |-
| |
| | 0x12
| |
| | 0x6
| |
| | Padding
| |
| |-
| |
| | 0x18
| |
| | 0x8
| |
| | Timestamp in samples
| |
| |}
| |
| | |
| ==== NpadGcTriggerState ====
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in samples (global)
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | Timestamp in samples
| |
| |-
| |
| | 0x10
| |
| | 0x4
| |
| | L analog trigger. Valid range: 0x0-0x7FFF.
| |
| |-
| |
| | 0x14
| |
| | 0x4
| |
| | R analog trigger. Valid range: 0x0-0x7FFF.
| |
| |}
| |
| | |
| == GestureSharedMemoryFormat ==
| |
| This is "nn::hid::detail::GestureSharedMemoryFormat".
| |
| | |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x20
| |
| | [[#GestureHeader]]
| |
| |-
| |
| | 0x20
| |
| | 0x68 * 17
| |
| | Array of [[#GestureState]]
| |
| |}
| |
| | |
| === GestureHeader ===
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in ticks
| |
| |-
| |
| | 0x8
| |
| | 0x8
| |
| | Number of Entries (always 17)
| |
| |-
| |
| | 0x10
| |
| | 0x8
| |
| | Latest Entry Index
| |
| |-
| |
| | 0x18
| |
| | 0x8
| |
| | Maximum Entry Index (always 16)
| |
| |}
| |
| | |
| === GestureState ===
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in samples (global)
| |
| |-
| |
| | 0x8
| |
| | 0x60
| |
| |
| |
| |}
| |
| | |
| == ConsoleSixAxisSensorSharedMemoryFormat ==
| |
| {| class="wikitable" border="1"
| |
| |-
| |
| ! Offset
| |
| ! Size
| |
| ! Description
| |
| |-
| |
| | 0x0
| |
| | 0x8
| |
| | Timestamp in samples
| |
| |-
| |
| | 0x8
| |
| | 0x1
| |
| | IsSevenSixAxisSensorAtRest
| |
| |-
| |
| | 0x9
| |
| | 0x3
| |
| | Padding
| |
| |-
| |
| | 0xC
| |
| | 0x4
| |
| | VerticalizationError
| |
| |-
| |
| | 0x10
| |
| | 0xC
| |
| | GyroBias
| |
| |-
| |
| | 0x1C
| |
| | 0x4
| |
| | Padding
| |
| |}
| |