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]]) |
− | |-
| |
− | | 0x3C00
| |
− | |
| |
− | | [10.0.0+] [[#DigitizerSharedMemoryFormat|Digitizer]]
| |
| |- | | |- |
| | 0x4C00 | | | 0x4C00 |
Line 63: |
Line 59: |
| |- | | |- |
| | 0x3C200 | | | 0x3C200 |
− | | 0x20 | + | | 0x1C |
| | [5.0.0+] [[#ConsoleSixAxisSensorSharedMemoryFormat|ConsoleSixAxisSensor]] | | | [5.0.0+] [[#ConsoleSixAxisSensorSharedMemoryFormat|ConsoleSixAxisSensor]] |
| |} | | |} |
Line 941: |
Line 937: |
| |} | | |} |
| | | |
− | === UniquePadSharedMemoryEntry ===
| + | == UniquePadSharedMemoryEntry == |
| This is "nn::hid::detail::UniquePadSharedMemoryEntry". | | This is "nn::hid::detail::UniquePadSharedMemoryEntry". |
| | | |
Line 955: |
Line 951: |
| |} | | |} |
| | | |
− | ==== UniquePadLifo ====
| + | === 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 |
− | | 0x8 | + | | 0x40 |
| | UniquePadConfigMutex | | | UniquePadConfigMutex |
| |} | | |} |
| | | |
− | ===== UniquePadConfigLifo =====
| + | ==== 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 ======
| + | ===== UniquePadConfigAtomicStorage ===== |
| This is "nn::hid::detail::UniquePadConfigAtomicStorage". | | This is "nn::hid::detail::UniquePadConfigAtomicStorage". |
| | | |
Line 1,067: |
Line 1,063: |
| |} | | |} |
| | | |
− | ===== AnalogStickCalibrationStateImplLifo =====
| + | ==== 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 [[#AnalogStickCalibrationStateImpl]] | + | | Array of [[#AnalogStickCalibrationStateImplAtomicStorage]] |
| |} | | |} |
| | | |
− | ====== AnalogStickCalibrationStateImplAtomicStorage ======
| + | ===== AnalogStickCalibrationStateImplAtomicStorage ===== |
| This is "nn::hid::detail::AnalogStickCalibrationStateImplAtomicStorage". | | This is "nn::hid::detail::AnalogStickCalibrationStateImplAtomicStorage". |
| | | |
Line 1,141: |
Line 1,137: |
| |} | | |} |
| | | |
− | ===== SixAxisSensorUserCalibrationStateLifo =====
| + | ==== 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 ======
| + | ===== SixAxisSensorUserCalibrationStateAtomicStorage ===== |
| This is "nn::hid::detail::SixAxisSensorUserCalibrationStateAtomicStorage". | | This is "nn::hid::detail::SixAxisSensorUserCalibrationStateAtomicStorage". |
| | | |
Line 1,189: |
Line 1,185: |
| |} | | |} |
| | | |
− | ====== UniquePadConfig ====== | + | ====== SixAxisSensorUserCalibrationState ====== |
| This is "nn::hid::detail::UniquePadConfig". | | This is "nn::hid::detail::UniquePadConfig". |
| | | |
Line 1,199: |
Line 1,195: |
| |- | | |- |
| | 0x0 | | | 0x0 |
− | | 0x8 | + | | 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". |
| | | |
− | This section contains a series of 10 0x5000 byte structures describing each available controller.
| + | {| 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" |
| |- | | |- |
− | ! Index | + | ! Entry |
| ! Description | | ! Description |
| |- | | |- |
Line 1,231: |
Line 1,241: |
| |} | | |} |
| | | |
− | === NpadState === | + | == NpadSharedMemoryEntry == |
| + | This is "nn::hid::detail::NpadSharedMemoryEntry". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,239: |
Line 1,251: |
| |- | | |- |
| | 0x0 | | | 0x0 |
− | | 0x28 | + | | 0x43F0 ([1.0.0-8.1.0] 0x4410) |
− | | [[#NpadStateHeader]] | + | | [[#NpadInternalState]] |
| + | |} |
| + | |
| + | === NpadInternalState === |
| + | This is "nn::hid::detail::NpadInternalState". |
| + | |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 0x28 | + | ! Offset |
− | | 0x20 | + | ! Size |
− | | NpadFullKeyHeader | + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | [[HID_services#NpadStyleTag|StyleSet]] |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | [[HID_services#NpadJoyAssignmentMode|JoyAssignmentMode]] |
| + | |- |
| + | | 0x8 |
| + | | 0xC |
| + | | [[#NpadFullKeyColorState|FullKeyColor]] |
| + | |- |
| + | | 0x14 |
| + | | 0x14 |
| + | | [[#NpadJoyColorState|JoyColor]] |
| |- | | |- |
− | | 0x48 | + | | 0x28 |
− | | 0x30 * 17 | + | | 0x350 |
− | | Array of NpadFullKeyState | + | | [[#NpadFullKeyLifo|FullKeyLifo]] |
| |- | | |- |
| | 0x378 | | | 0x378 |
− | | 0x20 | + | | 0x350 |
− | | [[#NpadHandheldHeader]] | + | | [[#NpadHandheldLifo|HandheldLifo]] |
− | |-
| |
− | | 0x398
| |
− | | 0x30 * 17
| |
− | | Array of [[#NpadHandheldState]] | |
| |- | | |- |
| | 0x6C8 | | | 0x6C8 |
− | | 0x20 | + | | 0x350 |
− | | NpadJoyDualHeader | + | | [[#NpadJoyDualLifo|JoyDualLifo]] |
− | |-
| |
− | | 0x6E8
| |
− | | 0x30 * 17
| |
− | | Array of NpadJoyDualState | |
| |- | | |- |
| | 0xA18 | | | 0xA18 |
− | | 0x20 | + | | 0x350 |
− | | NpadJoyLeftHeader | + | | [[#NpadJoyLeftLifo|JoyLeftLifo]] |
− | |-
| |
− | | 0xA38
| |
− | | 0x30 * 17
| |
− | | Array of NpadJoyLeftState | |
| |- | | |- |
| | 0xD68 | | | 0xD68 |
− | | 0x20 | + | | 0x350 |
− | | NpadJoyRightHeader | + | | [[#NpadJoyRightLifo|JoyRightLifo]] |
− | |-
| |
− | | 0xD88
| |
− | | 0x30 * 17
| |
− | | Array of NpadJoyRightState | |
| |- | | |- |
| | 0x10B8 | | | 0x10B8 |
− | | 0x20 | + | | 0x350 |
− | | NpadPalmaHeader ([1.0.0-3.0.2] NpadSystemHeader) | + | | [[#NpadPalmaLifo|PalmaLifo]] ([1.0.0-3.0.2] [[#NpadSystemLifo|SystemLifo]]) |
− | |- | |
− | | 0x12B8
| |
− | | 0x30 * 17
| |
− | | Array of NpadPalmaState ([1.0.0-3.0.2] NpadSystemState)
| |
| |- | | |- |
| | 0x1408 | | | 0x1408 |
− | | 0x20 | + | | 0x350 |
− | | NpadSystemExtHeader ([4.0.0+] also used by NpadSystem) | + | | [[#NpadSystemExtLifo|SystemExtLifo]] ([4.0.0+] also used for NpadSystem) |
− | |-
| |
− | | 0x1428
| |
− | | 0x30 * 17
| |
− | | Array of NpadSystemExtState ([4.0.0+] also used by NpadSystem)
| |
| |- | | |- |
| | 0x1758 | | | 0x1758 |
− | | 0x20 | + | | 0x708 |
− | | NpadSixAxisSensorFullKeyHeader | + | | [[#NpadSixAxisSensorLifo|FullKeySixAxisSensorLifo]] |
− | |-
| |
− | | 0x1778
| |
− | | 0x68 * 17
| |
− | | Array of NpadSixAxisSensorFullKeyState | |
| |- | | |- |
| | 0x1E60 | | | 0x1E60 |
− | | 0x20 | + | | 0x708 |
− | | NpadSixAxisSensorHandheldHeader | + | | [[#NpadSixAxisSensorLifo|HandheldSixAxisSensorLifo]] |
− | |-
| |
− | | 0x1E80
| |
− | | 0x68 * 17
| |
− | | Array of NpadSixAxisSensorHandheldState | |
| |- | | |- |
| | 0x2568 | | | 0x2568 |
− | | 0x20 | + | | 0x708 |
− | | NpadSixAxisSensorJoyLeftDualHeader | + | | [[#NpadSixAxisSensorLifo|JoyDualLeftSixAxisSensorLifo]] |
− | |-
| |
− | | 0x2588
| |
− | | 0x68 * 17
| |
− | | Array of NpadSixAxisSensorJoyLeftDualState | |
| |- | | |- |
| | 0x2C70 | | | 0x2C70 |
− | | 0x20 | + | | 0x708 |
− | | NpadSixAxisSensorJoyRightDualHeader | + | | [[#NpadSixAxisSensorLifo|JoyDualRightSixAxisSensorLifo]] |
− | |-
| |
− | | 0x2C90
| |
− | | 0x68 * 17
| |
− | | Array of NpadSixAxisSensorJoyRightDualState | |
| |- | | |- |
| | 0x3378 | | | 0x3378 |
− | | 0x20 | + | | 0x708 |
− | | NpadSixAxisSensorJoyLeftHeader | + | | [[#NpadSixAxisSensorLifo|JoyLeftSixAxisSensorLifo]] |
− | |-
| |
− | | 0x3398
| |
− | | 0x68 * 17
| |
− | | Array of NpadSixAxisSensorJoyLeftState | |
| |- | | |- |
| | 0x3A80 | | | 0x3A80 |
− | | 0x20 | + | | 0x708 |
− | | NpadSixAxisSensorJoyRightHeader | + | | [[#NpadSixAxisSensorLifo|JoyRightSixAxisSensorLifo]] |
− | |-
| |
− | | 0x3AA0
| |
− | | 0x68 * 17
| |
− | | Array of NpadSixAxisSensorJoyRightState | |
| |- | | |- |
| | 0x4188 | | | 0x4188 |
Line 1,352: |
Line 1,338: |
| | 0x418C | | | 0x418C |
| | 0x4 | | | 0x4 |
− | | Padding | + | | Reserved |
| |- | | |- |
| | 0x4190 | | | 0x4190 |
| | 0x8 | | | 0x8 |
− | | [[#NpadSystemProperties]] | + | | [[#NpadSystemProperties|SystemProperties]] |
| |- | | |- |
| | 0x4198 | | | 0x4198 |
| | 0x4 | | | 0x4 |
− | | [[#NpadSystemButtonProperties]] | + | | [[#NpadSystemButtonProperties|SystemButtonProperties]] |
| |- | | |- |
| | 0x419C | | | 0x419C |
| | 0x4 | | | 0x4 |
− | | BatteryIndex0 state (must be 0-4) | + | | BatteryLevel0 |
| |- | | |- |
| | 0x41A0 | | | 0x41A0 |
| | 0x4 | | | 0x4 |
− | | BatteryIndex1 state (must be 0-4) | + | | BatteryLevel1 |
| |- | | |- |
| | 0x41A4 | | | 0x41A4 |
| | 0x4 | | | 0x4 |
− | | BatteryIndex2 state (must be 0-4) | + | | BatteryLevel2 |
| |- | | |- |
| | 0x41A8 | | | 0x41A8 |
− | | 0x20 | + | | 0x60 |
− | | [1.0.0-3.0.2] NfcXcdDeviceHandleHeader (Replaced by [[HID_services|commands]] GetXcdHandleForNpadWithNfc/IsNfcActivated) | + | | [1.0.0-8.1.0] [[#NfcXcdDeviceHandleState|NfcXcdDeviceHandle]] (replaced by [[HID_services|GetXcdHandleForNpadWithNfc/IsNfcActivated]]) |
− | |-
| |
− | | 0x41C8
| |
− | | 0x20 * 2
| |
− | | [1.0.0-3.0.2] Array of [[#NfcXcdDeviceHandleState]] (See above)
| |
| |- | | |- |
| | 0x41A8 | | | 0x41A8 |
| | 0x4 | | | 0x4 |
− | | [9.0.0+] [[HID_services#AppletFooterUiAttribute|AppletFooterUiAttribute]] | + | | [9.0.0+] [[#AppletFooterUiAttribute|AppletFooterUiAttributes]] |
| |- | | |- |
| | 0x41AC | | | 0x41AC |
| | 0x1 | | | 0x1 |
− | | [9.0.0+] [[HID_services#AppletFooterUiType|AppletFooterUiType]] | + | | [9.0.0+] [[#AppletFooterUiType|AppletFooterUiType]] |
| + | |- |
| + | | 0x41AD |
| + | | 0x7B |
| + | | [9.0.0+] Reserved |
| |- | | |- |
| | 0x4208 | | | 0x4208 |
− | | 0x8 | + | | 0x40 |
− | | Mutex | + | | [1.0.0-8.1.0] Mutex |
| |- | | |- |
− | | 0x4228 | + | | 0x4228 ([1.0.0-8.1.0] 0x4248) |
− | | 0x20 | + | | 0x1B8 |
− | | NpadGcTriggerHeader | + | | [[#NpadGcTriggerLifo|GcTriggerLifo]] |
| |- | | |- |
− | | 0x4248 | + | | 0x43E0 ([1.0.0-8.1.0] 0x4400) |
− | | 0x18 * 17 | + | | 0x4 |
− | | Array of NpadGcTriggerState | + | | LarkTypeLAndMain |
| |- | | |- |
− | | 0x43E0 | + | | 0x43E4 ([1.0.0-8.1.0] 0x4404) |
| | 0x4 | | | 0x4 |
− | | | + | | LarkTypeR |
| |- | | |- |
− | | 0x43E4 | + | | 0x43E8 ([1.0.0-8.1.0] 0x4408) |
| | 0x4 | | | 0x4 |
− | | | + | | LuciaType |
| |- | | |- |
− | | 0x43E8 | + | | 0x43EC ([1.0.0-8.1.0] 0x440C) |
| | 0x4 | | | 0x4 |
| | | | | |
| |} | | |} |
| | | |
− | ==== NpadStateHeader ==== | + | ==== 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 |
− | | 0x4 | + | | 0x8 |
− | | [[HID_services#NpadStyleTag|NpadStyleSet]] | + | | RingLifoVptr |
− | |-
| |
− | | 0x4
| |
− | | 0x4
| |
− | | [[HID_services#NpadJoyAssignmentMode|NpadJoyAssignmentMode]]
| |
| |- | | |- |
| | 0x8 | | | 0x8 |
− | | 0x4 | + | | 0x8 |
− | | bit1 color set does not exist | + | | BufferCount |
− | |-
| |
− | | 0xC
| |
− | | 0x4
| |
− | | RGBA Body Color (single Joy-Con or Pro Controller)
| |
| |- | | |- |
| | 0x10 | | | 0x10 |
− | | 0x4 | + | | 0x8 |
− | | RGBA Button Color (single Joy-Con or Pro Controller) | + | | Tail |
− | |-
| |
− | | 0x14
| |
− | | 0x4
| |
− | | bit1 color set does not exist
| |
| |- | | |- |
| | 0x18 | | | 0x18 |
− | | 0x4 | + | | 0x8 |
− | | RGBA Body Color (right Joy-Con) | + | | Count |
− | |-
| |
− | | 0x1C
| |
− | | 0x4
| |
− | | RGBA Button Color (right Joy-Con)
| |
| |- | | |- |
| | 0x20 | | | 0x20 |
− | | 0x4 | + | | 0x30 * 17 |
− | | RGBA Body Color (left Joy-Con) | + | | Array of [[#NpadFullKeyStateAtomicStorage]] |
− | |-
| |
− | | 0x24
| |
− | | 0x4
| |
− | | RGBA Button Color (left Joy-Con)
| |
| |} | | |} |
| | | |
− | ==== NpadHandheldHeader ==== | + | ===== 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 |
− | | Timestamp in ticks | + | | SamplingNumber |
| |- | | |- |
| | 0x8 | | | 0x8 |
− | | 0x8 | + | | 0x28 |
− | | Number of entries (always 17) | + | | [[#NpadFullKeyState]] |
− | |-
| |
− | | 0x10
| |
− | | 0x8
| |
− | | Latest Entry Index
| |
− | |-
| |
− | | 0x18
| |
− | | 0x8
| |
− | | Maximum Entry Index (always 16)
| |
| |} | | |} |
| | | |
− | ==== NpadHandheldState ==== | + | ====== NpadFullKeyState ====== |
| + | This is "nn::hid::NpadFullKeyState". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,496: |
Line 1,460: |
| | 0x0 | | | 0x0 |
| | 0x8 | | | 0x8 |
− | | Timestamp in samples (global) | + | | SamplingNumber |
| |- | | |- |
| | 0x8 | | | 0x8 |
| | 0x8 | | | 0x8 |
− | | Timestamp in samples | + | | [[#NpadButtonSet|Buttons]] |
| |- | | |- |
| | 0x10 | | | 0x10 |
| | 0x8 | | | 0x8 |
− | | [[#NpadButton]] | + | | [[#AnalogStickState|AnalogStickL]] |
| |- | | |- |
| | 0x18 | | | 0x18 |
− | | 0x4 | + | | 0x8 |
− | | Left Joystick X | + | | [[#AnalogStickState|AnalogStickR]] |
− | |-
| |
− | | 0x1C
| |
− | | 0x4
| |
− | | Left Joystick Y | |
| |- | | |- |
| | 0x20 | | | 0x20 |
| | 0x4 | | | 0x4 |
− | | Right Joystick X | + | | [[#NpadAttributesSet|Attributes]] |
| |- | | |- |
| | 0x24 | | | 0x24 |
| | 0x4 | | | 0x4 |
− | | Right Joystick Y | + | | Reserved |
− | |-
| |
− | | 0x28
| |
− | | 0x4
| |
− | | Controller State (bit0 connected, bit1 wired)
| |
− | |-
| |
− | | 0x2C
| |
− | | 0x4
| |
− | | Padding
| |
| |} | | |} |
| | | |
− | ===== NpadButton ===== | + | ==== NpadHandheldLifo ==== |
− | This is the u64 bitmask for "nn::hid::NpadButton". | + | This is "nn::hid::detail::NpadHandheldLifo". This is a RingLifo object. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Bit | + | ! Offset |
− | ! Button | + | ! Size |
| + | ! Description |
| |- | | |- |
− | | 0 | + | | 0x0 |
− | | A | + | | 0x8 |
| + | | RingLifoVptr |
| |- | | |- |
− | | 1 | + | | 0x8 |
− | | B | + | | 0x8 |
| + | | BufferCount |
| |- | | |- |
− | | 2 | + | | 0x10 |
− | | X | + | | 0x8 |
| + | | Tail |
| |- | | |- |
− | | 3 | + | | 0x18 |
− | | Y | + | | 0x8 |
| + | | Count |
| |- | | |- |
− | | 4 | + | | 0x20 |
− | | Left Stick Pressed
| + | | 0x30 * 17 |
− | |-
| + | | Array of [[#NpadHandheldStateAtomicStorage]] |
− | | 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 ===== | + | ===== 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 |
− | | Timestamp in ticks | + | | SamplingNumber |
| |- | | |- |
| | 0x8 | | | 0x8 |
− | | 0x8 | + | | 0x28 |
− | | Number of entries (always 17) | + | | [[#NpadHandheldState]] |
− | |-
| |
− | | 0x10
| |
− | | 0x8
| |
− | | Latest Entry Index
| |
− | |-
| |
− | | 0x18
| |
− | | 0x8
| |
− | | Maximum Entry Index (up to 16)
| |
| |} | | |} |
| | | |
− | ===== NpadSixAxisSensorHandheldState ===== | + | ====== NpadHandheldState ====== |
| + | This is "nn::hid::NpadHandheldState". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,666: |
Line 1,542: |
| | 0x0 | | | 0x0 |
| | 0x8 | | | 0x8 |
− | | Timestamp in samples (global) | + | | SamplingNumber |
| |- | | |- |
| | 0x8 | | | 0x8 |
| | 0x8 | | | 0x8 |
− | | Unknown | + | | [[#NpadButtonSet|Buttons]] |
| |- | | |- |
| | 0x10 | | | 0x10 |
| | 0x8 | | | 0x8 |
− | | Timestamp in samples | + | | [[#AnalogStickState|AnalogStickL]] |
| + | |- |
| + | | 0x18 |
| + | | 0x8 |
| + | | [[#AnalogStickState|AnalogStickR]] |
| |- | | |- |
− | | 0x1C | + | | 0x20 |
− | | 0x4 * 3 | + | | 0x4 |
− | | Accelerometer data as 3 floats | + | | [[#NpadAttributesSet|Attributes]] |
| |- | | |- |
| | 0x24 | | | 0x24 |
− | | 0x4 * 3 | + | | 0x4 |
− | | Gyroscope data as 3 floats | + | | Reserved |
− | |-
| |
− | | 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.
| + | ==== NpadJoyDualLifo ==== |
| + | This is "nn::hid::detail::NpadJoyDualLifo". This is a RingLifo object. |
| | | |
− | ==== NpadSystemProperties ====
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Bit | + | ! Offset |
| + | ! Size |
| ! Description | | ! Description |
| |- | | |- |
− | | 0 | + | | 0x0 |
− | | PowerInfo0 isCharging | + | | 0x8 |
| + | | RingLifoVptr |
| |- | | |- |
− | | 1 | + | | 0x8 |
− | | PowerInfo1 isCharging | + | | 0x8 |
| + | | BufferCount |
| |- | | |- |
− | | 2 | + | | 0x10 |
− | | PowerInfo2 isCharging | + | | 0x8 |
| + | | Tail |
| |- | | |- |
− | | 3 | + | | 0x18 |
− | | PowerInfo0 powerConnected | + | | 0x8 |
| + | | Count |
| |- | | |- |
− | | 4 | + | | 0x20 |
− | | PowerInfo1 powerConnected | + | | 0x30 * 17 |
− | |-
| + | | Array of [[#NpadJoyDualStateAtomicStorage]] |
− | | 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 ==== | + | ===== NpadJoyDualStateAtomicStorage ===== |
| + | This is "nn::hid::detail::NpadJoyDualStateAtomicStorage". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Bit | + | ! Offset |
| + | ! Size |
| ! Description | | ! Description |
| |- | | |- |
− | | 0 | + | | 0x0 |
− | | UnintendedHomeButtonInputProtectionEnabled (if cleared) | + | | 0x8 |
− | |} | + | | SamplingNumber |
| + | |- |
| + | | 0x8 |
| + | | 0x28 |
| + | | [[#NpadJoyDualState]] |
| + | |} |
| + | |
| + | ====== NpadJoyDualState ====== |
| + | This is "nn::hid::NpadJoyDualState". |
| | | |
− | ==== NfcXcdDeviceHandleState ====
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,770: |
Line 1,624: |
| | 0x0 | | | 0x0 |
| | 0x8 | | | 0x8 |
− | | Timestamp in samples (global) | + | | SamplingNumber |
| |- | | |- |
| | 0x8 | | | 0x8 |
| | 0x8 | | | 0x8 |
− | | DeviceHandle | + | | [[#NpadButtonSet|Buttons]] |
| |- | | |- |
| | 0x10 | | | 0x10 |
− | | 0x1 | + | | 0x8 |
− | | Flag | + | | [[#AnalogStickState|AnalogStickL]] |
| |- | | |- |
− | | 0x11 | + | | 0x18 |
− | | 0x1 | + | | 0x8 |
− | | Flag | + | | [[#AnalogStickState|AnalogStickR]] |
| |- | | |- |
− | | 0x12 | + | | 0x20 |
− | | 0x6 | + | | 0x4 |
− | | Padding | + | | [[#NpadAttributesSet|Attributes]] |
| |- | | |- |
− | | 0x18 | + | | 0x24 |
− | | 0x8 | + | | 0x4 |
− | | Timestamp in samples | + | | Reserved |
| |} | | |} |
| | | |
− | ==== NpadGcTriggerState ==== | + | ==== 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 |
− | | Timestamp in samples (global) | + | | RingLifoVptr |
| |- | | |- |
| | 0x8 | | | 0x8 |
| | 0x8 | | | 0x8 |
− | | Timestamp in samples | + | | BufferCount |
| |- | | |- |
| | 0x10 | | | 0x10 |
− | | 0x4 | + | | 0x8 |
− | | L analog trigger. Valid range: 0x0-0x7FFF. | + | | Tail |
| + | |- |
| + | | 0x18 |
| + | | 0x8 |
| + | | Count |
| |- | | |- |
− | | 0x14 | + | | 0x20 |
− | | 0x4 | + | | 0x30 * 17 |
− | | R analog trigger. Valid range: 0x0-0x7FFF. | + | | Array of [[#NpadJoyLeftStateAtomicStorage]] |
| |} | | |} |
| | | |
− | == GestureSharedMemoryFormat == | + | ===== NpadJoyLeftStateAtomicStorage ===== |
− | This is "nn::hid::detail::GestureSharedMemoryFormat". | + | This is "nn::hid::detail::NpadJoyLeftStateAtomicStorage". |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 1,827: |
Line 1,687: |
| |- | | |- |
| | 0x0 | | | 0x0 |
− | | 0x20 | + | | 0x8 |
− | | [[#GestureHeader]] | + | | SamplingNumber |
| |- | | |- |
− | | 0x20 | + | | 0x8 |
− | | 0x68 * 17 | + | | 0x28 |
− | | Array of [[#GestureState]] | + | | [[#NpadJoyLeftState]] |
| |} | | |} |
| | | |
− | === GestureHeader === | + | ====== NpadJoyLeftState ====== |
| + | This is "nn::hid::NpadJoyLeftState". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 1,844: |
Line 1,706: |
| | 0x0 | | | 0x0 |
| | 0x8 | | | 0x8 |
− | | Timestamp in ticks | + | | SamplingNumber |
| |- | | |- |
| | 0x8 | | | 0x8 |
| | 0x8 | | | 0x8 |
− | | Number of Entries (always 17) | + | | [[#NpadButtonSet|Buttons]] |
| |- | | |- |
| | 0x10 | | | 0x10 |
| | 0x8 | | | 0x8 |
− | | Latest Entry Index | + | | [[#AnalogStickState|AnalogStickL]] |
| |- | | |- |
| | 0x18 | | | 0x18 |
− | | 0x8 | + | | 0x8 |
− | | Maximum Entry Index (always 16) | + | | [[#AnalogStickState|AnalogStickR]] |
− | |} | + | |- |
− | | + | | 0x20 |
− | === GestureState === | + | | 0x4 |
− | {| class="wikitable" border="1" | + | | [[#NpadAttributesSet|Attributes]] |
− | |- | + | |- |
− | ! Offset | + | | 0x24 |
− | ! Size | + | | 0x4 |
− | ! Description | + | | Reserved |
− | |- | + | |} |
− | | 0x0 | + | |
− | | 0x8 | + | ==== NpadJoyRightLifo ==== |
− | | Timestamp in samples (global) | + | 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 | + | |- |
− | | Timestamp in samples | + | | 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 |
− | |-
| |
− | | 0x1C
| |
− | | 0x4
| |
− | | Padding
| |
| |} | | |} |