Line 1: |
Line 1: |
− | See [[HID_Shared_Memory|here]] for the HID shared-memory.
| |
− |
| |
| = hid = | | = hid = |
| This is "nn::hid::IHidServer". | | This is "nn::hid::IHidServer". |
Line 482: |
Line 480: |
| | | |
| === GetSharedMemoryHandle === | | === GetSharedMemoryHandle === |
− | No input. Returned a [[HID_Shared_Memory|sharedmem]] handle. | + | No input. Returns a [[#SharedMemoryFormat|sharedmem]] handle. |
| | | |
| == IActiveVibrationDeviceList == | | == IActiveVibrationDeviceList == |
Line 2,444: |
Line 2,442: |
| This is used by sdknso immediately after mapping [[#GetSharedMemoryHandle|sharedmem]] (before [[#Initialize]]) with hard-coded value 0x2. | | This is used by sdknso immediately after mapping [[#GetSharedMemoryHandle|sharedmem]] (before [[#Initialize]]) with hard-coded value 0x2. |
| | | |
− | = GyroscopeZeroDriftMode = | + | = SharedMemoryFormat = |
− | This is "nn::hid::GyroscopeZeroDriftMode". | + | This is "nn::hid::detail::SharedMemoryFormat". |
| + | |
| + | The 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. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
− | ! Value
| |
− | ! Description
| |
| |- | | |- |
− | | 0 || Loose | + | ! 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]] |
| |- | | |- |
− | | 1 || Standard | + | | 0x3BA00 |
| + | | 0x800 |
| + | | [[#GestureSharedMemoryFormat|Gesture]] |
| |- | | |- |
− | | 2 || Tight | + | | 0x3C200 |
| + | | 0x1C |
| + | | [5.0.0+] [[#ConsoleSixAxisSensorSharedMemoryFormat|ConsoleSixAxisSensor]] |
| |} | | |} |
| | | |
− | = NpadStyleTag = | + | == DebugPadSharedMemoryFormat == |
− | This is "nn::hid::NpadStyleTag". | + | This is "nn::hid::detail::DebugPadSharedMemoryFormat". |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
− | ! Bits
| |
− | ! Description
| |
− | ! Notes
| |
| |- | | |- |
− | | 0
| + | ! Offset |
− | | NpadFullKey
| + | ! Size |
− | | Pro Controller
| + | ! Description |
| |- | | |- |
− | | 1 | + | | 0x0 |
− | | NpadHandheld | + | | 0x2C8 |
− | | Joy-Con controller in handheld mode | + | | [[#DebugPadLifo]] |
| + | |} |
| + | |
| + | === DebugPadLifo === |
| + | This is "nn::hid::detail::DebugPadLifo". This is a RingLifo object. |
| + | |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 2
| + | ! Offset |
− | | NpadJoyDual
| + | ! Size |
− | | Joy-Con controller in dual mode
| + | ! Description |
| |- | | |- |
− | | 3 | + | | 0x0 |
− | | NpadJoyLeft | + | | 0x8 |
− | | Joy-Con left controller in single mode | + | | 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 |
| |- | | |- |
− | | 4 | + | | 0x20 |
− | | NpadJoyRight | + | | 0x298 * 17 |
− | | Joy-Con right controller in single mode | + | | Array of [[#TouchScreenStateAtomicStorage]] |
− | |- | + | |} |
− | | 5 | + | |
− | | NpadGc | + | ==== TouchScreenStateAtomicStorage ==== |
− | | GameCube controller | + | This is "nn::hid::detail::TouchScreenStateAtomicStorage". |
− | |- | + | |
− | | 6 | + | {| class="wikitable" border="1" |
− | | NpadPalma | + | |- |
− | | Poké Ball Plus controller | + | ! Offset |
− | |- | + | ! Size |
− | | 7 | + | ! Description |
− | | NpadLark | + | |- |
− | | NES/Famicom controller | + | | 0x0 |
− | |- | + | | 0x8 |
− | | 8 | + | | SamplingNumber |
− | | NpadHandheldLark | + | |- |
− | | NES/Famicom controller in handheld mode | + | | 0x8 |
− | |- | + | | 0x290 |
− | | 9 | + | | [[#TouchScreenState]] |
− | | NpadLucia | + | |} |
− | | SNES controller | + | |
− | |- | + | ===== TouchScreenState ===== |
− | | 10-28 | + | This is "nn::hid::detail::TouchScreenState". |
− | | Reserved | + | |
− | | | + | {| class="wikitable" border="1" |
− | |- | + | |- |
− | | 29 | + | ! Offset |
− | | NpadSystemExt | + | ! Size |
− | | Generic external controller | + | ! Description |
− | |- | + | |- |
− | | 30 | + | | 0x0 |
− | | NpadSystem | + | | 0x8 |
− | | Generic controller | + | | SamplingNumber |
− | |- | + | |- |
− | | 31 | + | | 0x8 |
− | | Reserved | + | | 0x4 |
− | | | + | | Count |
| + | |- |
| + | | 0xC |
| + | | 0x4 |
| + | | Reserved |
| + | |- |
| + | | 0x10 |
| + | | 0x28 * 16 |
| + | | [[#TouchState|Touches]] |
| + | |} |
| + | |
| + | == 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|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#NpadStyleSet|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 |
| + | | [[#NpadLarkType|LarkTypeLAndMain]] |
| + | |- |
| + | | 0x43E4 ([1.0.0-8.1.0] 0x4404) |
| + | | 0x4 |
| + | | [[#NpadLarkType|LarkTypeR]] |
| + | |- |
| + | | 0x43E8 ([1.0.0-8.1.0] 0x4408) |
| + | | 0x4 |
| + | | [[#NpadLuciaType|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 |
| + | | [[#DeviceHandle|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 |
| + | | 0x4 |
| + | | TriggerL |
| + | |- |
| + | | 0xC |
| + | | 0x4 |
| + | | TriggerR |
| + | |} |
| + | |
| + | == 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 |
| + | | [[#GestureType|Type]] |
| + | |- |
| + | | 0x14 |
| + | | 0x4 |
| + | | [[#GestureDirection|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 |
| + | |} |
| + | |
| + | = AnalogStickState = |
| + | This is "nn::hid::AnalogStickState". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | X |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | Y |
| + | |} |
| + | |
| + | = 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 |
| + | |} |
| + | |
| + | = InputSourceState = |
| + | This is "nn::hid::system::InputSourceState". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x8 |
| + | | Timestamp |
| + | |} |
| + | |
| + | = NpadControllerColor = |
| + | This is "nn::hid::NpadControllerColor". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | Main |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | Sub |
| + | |} |
| + | |
| + | = NpadFullKeyColorState = |
| + | This is "nn::hid::detail::NpadFullKeyColorState". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | [[#ColorAttribute|Attribute]] |
| + | |- |
| + | | 0x4 |
| + | | 0x8 |
| + | | [[#NpadControllerColor|FullKey]] |
| + | |} |
| + | |
| + | = NpadJoyColorState = |
| + | This is "nn::hid::detail::NpadJoyColorState". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | [[#ColorAttribute|Attribute]] |
| + | |- |
| + | | 0x4 |
| + | | 0x8 |
| + | | [[#NpadControllerColor|Left]] |
| + | |- |
| + | | 0xC |
| + | | 0x8 |
| + | | [[#NpadControllerColor|Right]] |
| + | |} |
| + | |
| + | = DirectionState = |
| + | This is "nn::hid::DirectionState". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | XX |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | XY |
| + | |- |
| + | | 0x8 |
| + | | 0x4 |
| + | | XZ |
| + | |- |
| + | | 0xC |
| + | | 0x4 |
| + | | YX |
| + | |- |
| + | | 0x10 |
| + | | 0x4 |
| + | | YY |
| + | |- |
| + | | 0x14 |
| + | | 0x4 |
| + | | YZ |
| + | |- |
| + | | 0x18 |
| + | | 0x4 |
| + | | ZX |
| + | |- |
| + | | 0x1C |
| + | | 0x4 |
| + | | ZY |
| + | |- |
| + | | 0x20 |
| + | | 0x4 |
| + | | ZZ |
| + | |} |
| + | |
| + | = GesturePoint = |
| + | This is "nn::hid::GesturePoint". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x0 |
| + | | 0x4 |
| + | | X |
| + | |- |
| + | | 0x4 |
| + | | 0x4 |
| + | | Y |
| + | |} |
| + | |
| + | = ColorAttribute = |
| + | This is "nn::hid::detail::ColorAttribute". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Ok |
| + | |- |
| + | | 1 || ReadError |
| + | |- |
| + | | 2 || NoController |
| + | |} |
| + | |
| + | = DebugPadAttributeSet = |
| + | This is "nn::hid::DebugPadAttributeSet". This is a BitFlagSet object for [[#DebugPadAttribute]]. |
| + | |
| + | = TouchAttributeSet = |
| + | This is "nn::hid::TouchAttributeSet". This is a BitFlagSet object for [[#TouchAttribute]]. |
| + | |
| + | = MouseAttributeSet = |
| + | This is "nn::hid::MouseAttributeSet". This is a BitFlagSet object for [[#MouseAttribute]]. |
| + | |
| + | = BasicXpadAttributeSet = |
| + | This is "nn::hid::BasicXpadAttributeSet". This is a BitFlagSet object for [[#BasicXpadAttribute]]. |
| + | |
| + | = NpadAttributesSet = |
| + | This is "nn::hid::NpadAttributesSet". This is a BitFlagSet object for [[#NpadAttribute]]. |
| + | |
| + | = SixAxisSensorAttributeSet = |
| + | This is "nn::hid::SixAxisSensorAttributeSet". This is a BitFlagSet object for [[#SixAxisSensorAttribute]]. |
| + | |
| + | = GestureAttributeSet = |
| + | This is "nn::hid::GestureAttributeSet". This is a BitFlagSet object for [[#GestureAttribute]]. |
| + | |
| + | = DebugPadButtonSet = |
| + | This is "nn::hid::DebugPadButtonSet". This is a BitFlagSet object for [[#DebugPadButton]]. |
| + | |
| + | = MouseButtonSet = |
| + | This is "nn::hid::MouseButtonSet". This is a BitFlagSet object for [[#MouseButton]]. |
| + | |
| + | = KeyboardModifierSet = |
| + | This is "nn::hid::KeyboardModifierSet". This is a BitFlagSet object for [[#KeyboardModifier]]. |
| + | |
| + | = KeyboardKeySet = |
| + | This is "nn::hid::KeyboardKeySet". This is a BitFlagSet object for [[#KeyboardKey]]. |
| + | |
| + | = BasicXpadButtonSet = |
| + | This is "nn::hid::BasicXpadButtonSet". This is a BitFlagSet object for [[#BasicXpadButton]]. |
| + | |
| + | = HomeButtonSet = |
| + | This is "nn::hid::system::HomeButtonSet". This is a BitFlagSet object for [[#HomeButton]]. |
| + | |
| + | = SleepButtonSet = |
| + | This is "nn::hid::system::SleepButtonSet". This is a BitFlagSet object for [[#SleepButton]]. |
| + | |
| + | = CaptureButtonSet = |
| + | This is "nn::hid::system::CaptureButtonSet". This is a BitFlagSet object for [[#CaptureButton]]. |
| + | |
| + | = NpadButtonSet = |
| + | This is "nn::hid::NpadButtonSet". This is a BitFlagSet object for [[#NpadButton]]. |
| + | |
| + | = AnalogStickCalibrationFlagsSet = |
| + | This is "nn::hid::detail::AnalogStickCalibrationFlagsSet". This is a BitFlagSet object for [[#AnalogStickCalibrationFlags]]. |
| + | |
| + | = SixAxisSensorUserCalibrationFlagsSet = |
| + | This is "nn::hid::detail::SixAxisSensorUserCalibrationFlagsSet". This is a BitFlagSet object for [[#SixAxisSensorUserCalibrationFlags]]. |
| + | |
| + | = NpadStyleSet = |
| + | This is "nn::hid::NpadStyleSet". This is a BitFlagSet object for [[#NpadStyleTag]]. |
| + | |
| + | = NpadStyleTag = |
| + | This is "nn::hid::NpadStyleTag". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Bits |
| + | ! Description |
| + | ! Notes |
| + | |- |
| + | | 0 |
| + | | NpadFullKey |
| + | | Pro Controller |
| + | |- |
| + | | 1 |
| + | | NpadHandheld |
| + | | Joy-Con controller in handheld mode |
| + | |- |
| + | | 2 |
| + | | NpadJoyDual |
| + | | Joy-Con controller in dual mode |
| + | |- |
| + | | 3 |
| + | | NpadJoyLeft |
| + | | Joy-Con left controller in single mode |
| + | |- |
| + | | 4 |
| + | | NpadJoyRight |
| + | | Joy-Con right controller in single mode |
| + | |- |
| + | | 5 |
| + | | NpadGc |
| + | | GameCube controller |
| + | |- |
| + | | 6 |
| + | | NpadPalma |
| + | | Poké Ball Plus controller |
| + | |- |
| + | | 7 |
| + | | NpadLark |
| + | | NES/Famicom controller |
| + | |- |
| + | | 8 |
| + | | NpadHandheldLark |
| + | | NES/Famicom controller in handheld mode |
| + | |- |
| + | | 9 |
| + | | NpadLucia |
| + | | SNES controller |
| + | |- |
| + | | 10-28 |
| + | | Reserved |
| + | | |
| + | |- |
| + | | 29 |
| + | | NpadSystemExt |
| + | | Generic external controller |
| + | |- |
| + | | 30 |
| + | | NpadSystem |
| + | | Generic controller |
| + | |- |
| + | | 31 |
| + | | Reserved |
| + | | |
| + | |} |
| + | |
| + | = NpadDeviceTypeSet = |
| + | This is "nn::hid::system::NpadDeviceType". This is a BitFlagSet object for [[#NpadDeviceType]]. |
| + | |
| + | = NpadSystemPropertiesSet = |
| + | This is "nn::hid::detail::NpadSystemPropertiesSet". This is a BitFlagSet object for [[#NpadSystemProperties]]. |
| + | |
| + | = NpadSystemButtonPropertiesSet = |
| + | This is "nn::hid::detail::NpadSystemButtonPropertiesSet". This is a BitFlagSet object for [[#NpadSystemButtonProperties]]. |
| + | |
| + | = AppletFooterUiAttributesSet = |
| + | This is "nn::hid::system::AppletFooterUiAttributesSet". This is a BitFlagSet object for [[#AppletFooterUiAttribute]]. |
| + | |
| + | = UniquePadType = |
| + | This is "nn::hid::system::UniquePadType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Embedded |
| + | |- |
| + | | 1 || FullKeyController |
| + | |- |
| + | | 2 || RightController |
| + | |- |
| + | | 3 || LeftController |
| + | |} |
| + | |
| + | = UniquePadInterface = |
| + | This is "nn::hid::system::UniquePadInterface". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Embedded |
| + | |- |
| + | | 1 || Rail |
| + | |- |
| + | | 2 || Bluetooth |
| + | |- |
| + | | 3 || Usb |
| + | |} |
| + | |
| + | = UniquePadSerialNumber = |
| + | This is "nn::hid::system::UniquePadSerialNumber". This is a 0x10 byte value. |
| + | |
| + | = AnalogStickManualCalibrationStage = |
| + | This is "nn::hid::system::AnalogStickManualCalibrationStage". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || ReleaseFromRight |
| + | |- |
| + | | 1 || ReleaseFromBottom |
| + | |- |
| + | | 2 || ReleaseFromLeft |
| + | |- |
| + | | 3 || ReleaseFromTop |
| + | |- |
| + | | 4 || Rotate |
| + | |- |
| + | | 5 || Update |
| + | |- |
| + | | 6 || Completed |
| + | |- |
| + | | 7 || Clear |
| + | |- |
| + | | 8 || ClearCompleted |
| + | |} |
| + | |
| + | = SixAxisSensorUserCalibrationStage = |
| + | This is "nn::hid::system::SixAxisSensorUserCalibrationStage". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Measuring |
| + | |- |
| + | | 1 || Update |
| + | |- |
| + | | 2 || Completed |
| + | |} |
| + | |
| + | = NpadJoyAssignmentMode = |
| + | This is "nn::hid::NpadJoyAssignmentMode". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Dual |
| + | |- |
| + | | 1 || Single |
| + | |} |
| + | |
| + | = AppletFooterUiType = |
| + | This is "nn::hid::system::AppletFooterUiType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || None |
| + | |- |
| + | | 1 || HandheldNone |
| + | |- |
| + | | 2 || HandheldJoyConLeftOnly |
| + | |- |
| + | | 3 || HandheldJoyConRightOnly |
| + | |- |
| + | | 4 || HandheldJoyConLeftJoyConRight |
| + | |- |
| + | | 5 || JoyDual |
| + | |- |
| + | | 6 || JoyDualLeftOnly |
| + | |- |
| + | | 7 || JoyDualRightOnly |
| + | |- |
| + | | 8 || JoyLeftHorizontal |
| + | |- |
| + | | 9 || JoyLeftVertical |
| + | |- |
| + | | 10 || JoyRightHorizontal |
| + | |- |
| + | | 11 || JoyRightVertical |
| + | |- |
| + | | 12 || SwitchProController |
| + | |- |
| + | | 13 || CompatibleProController |
| + | |- |
| + | | 14 || CompatibleJoyCon |
| + | |- |
| + | | 15 || LarkHvc1 |
| + | |- |
| + | | 16 || LarkHvc2 |
| + | |- |
| + | | 17 || LarkNesLeft |
| + | |- |
| + | | 18 || LarkNesRight |
| + | |- |
| + | | 19 || Lucia |
| + | |- |
| + | | 20 || Verification |
| + | |} |
| + | |
| + | = NpadLarkType = |
| + | This is "nn::hid::NpadLarkType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || H1 |
| + | |- |
| + | | 2 || H2 |
| + | |- |
| + | | 3 || NL |
| + | |- |
| + | | 4 || NR |
| + | |} |
| + | |
| + | = NpadLuciaType = |
| + | This is "nn::hid::NpadLuciaType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || J |
| + | |- |
| + | | 2 || E |
| + | |- |
| + | | 3 || U |
| + | |} |
| + | |
| + | = DeviceHandle = |
| + | This is "nn::xcd::DeviceHandle". This is a 8 byte value. |
| + | |
| + | = GestureDirection = |
| + | This is "nn::hid::GestureDirection". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || None |
| + | |- |
| + | | 1 || Left |
| + | |- |
| + | | 2 || Up |
| + | |- |
| + | | 3 || Right |
| + | |- |
| + | | 4 || Down |
| + | |} |
| + | |
| + | = GestureType = |
| + | This is "nn::hid::GestureType". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Idle |
| + | |- |
| + | | 1 || Complete |
| + | |- |
| + | | 2 || Cancel |
| + | |- |
| + | | 3 || Touch |
| + | |- |
| + | | 4 || Press |
| + | |- |
| + | | 5 || Tap |
| + | |- |
| + | | 6 || Pan |
| + | |- |
| + | | 7 || Swipe |
| + | |- |
| + | | 8 || Pinch |
| + | |- |
| + | | 9 || Rotate |
| + | |} |
| + | |
| + | = GyroscopeZeroDriftMode = |
| + | This is "nn::hid::GyroscopeZeroDriftMode". |
| + | |
| + | {| class="wikitable" border="1" |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || Loose |
| + | |- |
| + | | 1 || Standard |
| + | |- |
| + | | 2 || Tight |
| |} | | |} |
| | | |
| = NpadIdType = | | = NpadIdType = |
− | This is "nn::hid::NpadIdType". This is the controller index used in [[HID_Shared_Memory#Controllers|sharedmem]]. | + | This is "nn::hid::NpadIdType". This is the controller index used in [[#SharedMemoryFormat|sharedmem]]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 2,861: |
Line 5,798: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x1 || powerConnected for the main [[HID_Shared_Memory#Controllers|PowerInfo]]. | + | | 0x0 || 0x1 || powerConnected for the main PowerInfo. |
| |- | | |- |
| | 0x1 || 0x1 || ORRed with powerConnected to set the value of the first byte for the controller [[HID_Shared_Memory#Flags|flags]]. | | | 0x1 || 0x1 || ORRed with powerConnected to set the value of the first byte for the controller [[HID_Shared_Memory#Flags|flags]]. |
Line 2,867: |
Line 5,804: |
| | 0x2 || 0x6 || Unknown | | | 0x2 || 0x6 || Unknown |
| |- | | |- |
− | | 0x8 || 0x4 || batteryCharge for the main [[HID_Shared_Memory#Controllers|PowerInfo]]. | + | | 0x8 || 0x4 || batteryCharge for the main PowerInfo. |
| |- | | |- |
| | 0xC || 0x4 || [[HID_Shared_Memory#Button_State|Buttons]]. Bit18 = HOME and bit19 = Capture. | | | 0xC || 0x4 || [[HID_Shared_Memory#Button_State|Buttons]]. Bit18 = HOME and bit19 = Capture. |
| |- | | |- |
− | | 0x10 || 0x10(4*2*2) || Joystick data, see [[HID_Shared_Memory#Controller_State]]. | + | | 0x10 || 0x10(4*2*2) || Joystick data. |
| |- | | |- |
| | 0x20 || 0x1 || Unused for input. Set with output from [[#DumpHdlsStates]] (zero in some cases). | | | 0x20 || 0x1 || Unused for input. Set with output from [[#DumpHdlsStates]] (zero in some cases). |
Line 2,883: |
Line 5,820: |
| ! Offset || Size || Description | | ! Offset || Size || Description |
| |- | | |- |
− | | 0x0 || 0x4 || batteryCharge for the main [[HID_Shared_Memory#Controllers|PowerInfo]]. | + | | 0x0 || 0x4 || batteryCharge for the main PowerInfo. |
| |- | | |- |
| | 0x4 || 0x4 || Unknown | | | 0x4 || 0x4 || Unknown |
| |- | | |- |
− | | 0x8 || 0x8 || [[HID_Shared_Memory#Button_State|Buttons]], masked with 0xfffffffff00fffff. See above table regarding HOME/Capture buttons. | + | | 0x8 || 0x8 || Buttons, masked with 0xfffffffff00fffff. See above table regarding HOME/Capture buttons. |
| |- | | |- |
− | | 0x10 || 0x10(4*2*2) || Joystick data, see [[HID_Shared_Memory#Controller_State]]. | + | | 0x10 || 0x10(4*2*2) || Joystick data. |
| |- | | |- |
| | 0x20 || 0x1 || Unused for input. Set with output from [[#DumpHdlsStates]] (zero in some cases). | | | 0x20 || 0x1 || Unused for input. Set with output from [[#DumpHdlsStates]] (zero in some cases). |
Line 3,276: |
Line 6,213: |
| | 0x28 || 0x8 || [[#JoystickConfig]] | | | 0x28 || 0x8 || [[#JoystickConfig]] |
| |} | | |} |
− |
| |
| | | |
| = IrCameraHandle = | | = IrCameraHandle = |