Changes

Jump to navigation Jump to search
6,888 bytes added ,  18:35, 18 November 2020
no edit summary
HID shared memory is a 0x40000 byte read-only segment of memory shared between applications for input. The segment contains structures for most if not all input methods available to applications.
In sdknso this = SharedMemoryFormat =This is "nn::hid::detail::SharedMemoryFormat".
= Memory Map =
{| class="wikitable" border="1"
|-
| 0x0
| 0x400
| [[#DebugPadSharedMemoryFormat|DebugPad]]
|-
| 0x400
| 0x3000
| [[#TouchScreenSharedMemoryFormat|TouchScreen]]
|-
| 0x3400
| 0x400
| [[#MouseSharedMemoryFormat|Mouse]]
|-
| 0x3800
| 0x400
| [[#KeyboardSharedMemoryFormat|Keyboard]]
|-
| 0x3C00
| 0x1000 (0x400 * 0x04)| [1.0.0-9.2.0] [[#BasicXpadSharedMemoryFormat|BasicXpad]]
|-
| 0x3C00
|
| [10.0.0+] [[#DigitizerSharedMemoryFormat|Digitizer]]
|-
| 0x4C00
| 0x200
| [[#HomeButtonSharedMemoryFormat|HomeButton]]
|-
| 0x4E00
| 0x200
| [[#SleepButtonSharedMemoryFormat|SleepButton]]
|-
| 0x5000
| 0x200
| [[#CaptureButtonSharedMemoryFormat|CaptureButton]]
|-
| 0x5200
| 0x800 (0x80 * 0x10)
| [[#InputDetectorSharedMemoryFormat|InputDetector]]
|-
| 0x5A00
| 0x4000 (0x400 * 0x10)
| [1.0.0-4.1.0] [[#UniquePadSharedMemoryFormat|UniquePad]]
|-
| 0x9A00
| 0x32000 (0x5000 * 0x0A)
| [[#NpadSharedMemoryFormat|Npad]]
|-
| 0x3BA00
| 0x800
| [[#GestureSharedMemoryFormat|Gesture]]
|-
| 0x3C200
| 0x20
| [5.0.0+] [[#ConsoleSixAxisSensorSharedMemoryFormat|ConsoleSixAxisSensor]]
|}
== DebugPad DebugPadSharedMemoryFormat ==This is "nn::hid::detail::DebugPadSharedMemoryFormat". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x200x2C8| [[#DebugPadHeader]]|-| 0x20| 0x28 * 17| Array of [[#DebugPadStateDebugPadLifo]]
|}
=== DebugPadHeader DebugPadLifo ===This is "nn::hid::detail::DebugPadLifo". This is a RingLifo object. 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in ticksRingLifoVptr
|-
| 0x8
| 0x8
| Number of Entries (always 17)BufferCount
|-
| 0x10
| 0x8
| Latest Entry IndexTail
|-
| 0x18
| 0x8
| Maximum Entry Index (always 16)Count|-| 0x20| 0x28 * 17| Array of [[#DebugPadStateAtomicStorage]]
|}
=== DebugPadState =DebugPadStateAtomicStorage ====This is "nn::hid::detail::DebugPadStateAtomicStorage". 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samples (global)SamplingNumber
|-
| 0x8
| 0x20
| [[#DebugPadState]]
|}
== TouchScreen === DebugPadState =====This is "nn::hid::DebugPadState". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x200x8| [[#TouchScreenHeader]]SamplingNumber
|-
| 0x200x8| 0x298 * 170x4| Array of [[#TouchScreenStateDebugPadAttributeSet|Attributes]]|} === TouchScreenHeader ==={| class="wikitable" border="1"
|-
! Offset! Size! Description|-| 0x0| 0x8| Timestamp in ticks|-0xC| 0x80x4| 0x8[[#DebugPadButtonSet| Number of Entries (always 17)Buttons]]
|-
| 0x10
| 0x8
| Latest Entry Index[[#AnalogStickState|AnalogStickR]]
|-
| 0x18
| 0x8
| Maximum Entry Index (always 16)[[#AnalogStickState|AnalogStickL]]
|}
=== TouchScreenState =TouchScreenSharedMemoryFormat ==This is "nn::hid::detail::TouchScreenSharedMemoryFormat". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x2C38| [[#TouchScreenLifo]]|} === TouchScreenLifo ===This is "nn::hid::detail::TouchScreenLifo". This is a RingLifo object. {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| Timestamp in samples (global)RingLifoVptr
|-
| 0x8
| 0x8| Timestamp in samplesBufferCount
|-
| 0x10
| 0x8
| Touch countTail
|-
| 0x18
| 0x28 0x8| Count|-| 0x20| 0x298 * 1617| Array of [[#TouchScreenStateDataTouchScreenStateAtomicStorage]]
|}
==== TouchScreenStateData TouchScreenStateAtomicStorage ====This is "nn::hid::detail::TouchScreenStateAtomicStorage". 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samplesSamplingNumber
|-
| 0x8
| 0x40x290| Padding[[#TouchScreenState]]|} ===== TouchScreenState =====This is "nn::hid::detail::TouchScreenState". {| class="wikitable" border="1"
|-
| 0xC ! Offset| 0x4 ! Size| Touch Index ! Description
|-
| 0x100x0| 0x40x8| Touch XSamplingNumber
|-
| 0x140x8
| 0x4
| Touch YCount
|-
| 0x180xC
| 0x4
| Touch Diameter XReserved
|-
| 0x1C0x10| 0x40x28 * 16| Touch Diameter Y|-| 0x20| 0x4| Angle|-| 0x24| 0x4[[#TouchState| PaddingTouches]]
|}
== Mouse =={| class="wikitable" border=TouchState ======This is "1nn::hid::TouchState"|-! Offset! Size! Description|-| 0x0 | 0x20 | [[#MouseHeader]]|-| 0x20 | 0x30 * 17 | Array of [[#MouseState]]|}.
=== MouseHeader ===
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in ticksDeltaTime
|-
| 0x8
| 0x80x4| Number of Entries (always 17)[[#TouchAttributeSet|Attributes]]|-| 0xC | 0x4 | FingerId
|-
| 0x10
| 0x80x4| Latest Entry IndexX|-| 0x14| 0x4| Y
|-
| 0x18
| 0x80x4| Maximum Entry Index (always 16)|} === MouseState ==={| class="wikitable" border="1"DiameterX
|-
! Offset! Size! Description|-| 0x0| 0x8| Timestamp in samples (global)|-| 0x8| 0x8| Timestamp in samples|-| 0x10| 0x4| Mouse X|-| 0x14| 0x4| Mouse Y|-| 0x18| 0x4| Mouse X Change|-| 0x1C| 0x4| Mouse Y ChangeDiameterY
|-
| 0x20
| 0x4
| Scroll Change YRotationAngle
|-
| 0x24
| 0x4
| Scroll Change X|-| 0x28| 0x8| Mouse ButtonsReserved
|}
== Keyboard MouseSharedMemoryFormat ==This is "nn::hid::detail::MouseSharedMemoryFormat". 
{| class="wikitable" border="1"
|-
! Description
|-
| 0x0 | 0x20 0x350| [[#KeyboardHeader]]|-| 0x20 | 0x38 * 17 | Array of [[#KeyboardStateMouseLifo]]
|}
=== KeyboardHeader MouseLifo ===This is "nn::hid::detail::MouseLifo". This is a RingLifo object. 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in ticksRingLifoVptr
|-
| 0x8
| 0x8
| Number of Entries (always 17)BufferCount
|-
| 0x10
| 0x8
| Latest Entry IndexTail
|-
| 0x18
| 0x8
| Maximum Entry Index (always 16)Count|-| 0x20| 0x30 * 17 | Array of [[#MouseStateAtomicStorage]]
|}
=== KeyboardState =MouseStateAtomicStorage ====This is "nn::hid::detail::MouseStateAtomicStorage". 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samples (global)SamplingNumber
|-
| 0x8
| 0x80x28| Timestamp in samples|-| 0x10| 0x8| Modifier Mask|-| 0x18| 0x20| Keys Down, each key gets one bit based on the HID keyboard scan code (F1 is 0x3A, bit 0x3A is set)[[#MouseState]]
|}
== BasicXpad === MouseState =====This is "nn::hid::detail::MouseState". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x200x8| [[#BasicXpadHeader]]SamplingNumber
|-
| 0x8| 0x4| X|-| 0xC| 0x4| Y|-| 0x10| 0x4| DeltaX|-| 0x14| 0x4| DeltaY|-| 0x18| 0x4| WheelDeltaX|-| 0x1C| 0x4| WheelDeltaY|-| 0x20| 0x28 * 170x4| Array of [[#BasicXpadStateMouseButtonSet|Buttons]]|-| 0x24| 0x4| [[#MouseAttributeSet|Attributes]]
|}
==KeyboardSharedMemoryFormat = BasicXpadHeader =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"
|-
| 0x0
| 0x8
| Timestamp in ticksRingLifoVptr
|-
| 0x8
| 0x8
| Number of Entries (always 17)BufferCount
|-
| 0x10
| 0x8
| Latest Entry IndexTail
|-
| 0x18
| 0x8
| Maximum Entry Index (always 16)Count|-| 0x20| 0x38 * 17 | Array of [[#KeyboardStateAtomicStorage]]
|}
=== BasicXpadState =KeyboardStateAtomicStorage ====This is "nn::hid::detail::KeyboardStateAtomicStorage". 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samples (global)SamplingNumber
|-
| 0x8
| 0x200x30| [[#KeyboardState]]
|}
== HomeButton === KeyboardState =====This is "nn::hid::detail::KeyboardState". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x200x8| [[#HomeButtonHeader]]SamplingNumber
|-
| 0x8
| 0x8
| [[#KeyboardModifierSet|Modifiers]]
|-
| 0x10
| 0x20
| 0x18 * 17| Array of [[#HomeButtonStateKeyboardKeySet|Keys]]
|}
=== HomeButtonHeader =BasicXpadSharedMemoryFormat ==This is "nn::hid::detail::BasicXpadSharedMemoryFormat". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x80x400 * 4| Timestamp in ticksArray of [[#BasicXpadSharedMemoryEntry]]|} === BasicXpadSharedMemoryEntry ===This is "nn::hid::detail::BasicXpadSharedMemoryEntry". {| class="wikitable" border="1"
|-
| 0x8! Offset| 0x8! Size| Number of Entries (always 17)! Description
|-
| 0x100x0| 0x80x2C8| Latest Entry Index|-| 0x18| 0x8| Maximum Entry Index (always 16)[[#BasicXpadLifo]]
|}
=== HomeButtonState =BasicXpadLifo ====This is "nn::hid::detail::BasicXpadLifo". This is a RingLifo object. 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samples (global)RingLifoVptr
|-
| 0x8
| 0x8
| BufferCount
|-
| 0x10
| 0x8| Tail|-| 0x18| 0x8| Count|-| 0x20| 0x28 * 17 | Array of [[#BasicXpadStateAtomicStorage]]
|}
== SleepButton === BasicXpadStateAtomicStorage =====This is "nn::hid::detail::BasicXpadStateAtomicStorage". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x200x8| [[#SleepButtonHeader]]SamplingNumber
|-
| 0x8
| 0x20
| 0x18 * 17| Array of [[#SleepButtonStateBasicXpadState]]
|}
=== SleepButtonHeader ===BasicXpadState ======This is "nn::hid::detail::BasicXpadState". 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in ticksSamplingNumber
|-
| 0x8
| 0x80x4| Number of Entries (always 17)[[#BasicXpadAttributeSet|Attributes]]|-| 0xC| 0x4| [[#BasicXpadButtonSet|Buttons]]
|-
| 0x10
| 0x8
| Latest Entry Index[[#AnalogStickState|AnalogStickL]]
|-
| 0x18
| 0x8
| Maximum Entry Index (always 16)[[#AnalogStickState|AnalogStickR]]
|}
=== SleepButtonState =HomeButtonSharedMemoryFormat ==This is "nn::hid::detail::HomeButtonSharedMemoryFormat". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x8| Timestamp in samples (global)|-| 0x8| 0x100x1B8| [[#HomeButtonLifo]]
|}
== CaptureButton =HomeButtonLifo ={| class="wikitable" border=This is "1nn::hid::detail::HomeButtonLifo"|-! Offset! Size! Description|-| 0x0| 0x20| [[#CaptureButtonHeader]]|-| 0x20| 0x18 * 17| Array of [[#CaptureButtonState]]|}. This is a RingLifo object.
=== CaptureButtonHeader ===
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in ticksRingLifoVptr
|-
| 0x8
| 0x8
| Number of Entries (always 17)BufferCount
|-
| 0x10
| 0x8
| Latest Entry IndexTail
|-
| 0x18
| 0x8
| Maximum Entry Index (always 16)Count|-| 0x20| 0x18 * 17| Array of [[#HomeButtonStateAtomicStorage]]
|}
=== CaptureButtonState =HomeButtonStateAtomicStorage ====This is "nn::hid::detail::HomeButtonStateAtomicStorage". 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samples (global)SamplingNumber
|-
| 0x8
| 0x10
| [[#HomeButtonState]]
|}
== InputDetector === HomeButtonState =====This is "nn::hid::system::HomeButtonState". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x200x8| [[#InputDetectorHeader]]SamplingNumber
|-
| 0x200x8| 0x18 * 20x8| Array of [[#InputDetectorStateHomeButtonSet|Buttons]]
|}
=== InputDetectorHeader =SleepButtonSharedMemoryFormat ==This is "nn::hid::detail::SleepButtonSharedMemoryFormat". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x80x1B8| Timestamp in ticks|-| 0x8| 0x8| Number of Entries (always 17)|-| 0x10| 0x8| Latest Entry Index|-| 0x18| 0x8| Maximum Entry Index (always 16)[[#SleepButtonLifo]]
|}
=== InputDetectorState SleepButtonLifo ===This is "nn::hid::detail::SleepButtonLifo". This is a RingLifo object. 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samples (global)RingLifoVptr
|-
| 0x8
| 0x8
| BufferCount
|-
| 0x10
| 0x8| Tail|-| 0x18| 0x8| Count|-| 0x20| 0x18 * 17| Array of [[#SleepButtonStateAtomicStorage]]
|}
== UniquePad == SleepButtonStateAtomicStorage ====This section contains a series of 16 structures 0x400 bytes large. [5.0.0+] This section has been removed from SharedMemoryFormat. [[#UniquePad]] is now a specialization of [[#Npad]]"nn::hid::detail::SleepButtonStateAtomicStorage".
{| class="wikitable" border="1"
|-
| 0x0
| 0x800x8| [[#UniquePadConfig]]SamplingNumber
|-
| 0x800x8| 0x70 * 20x10| Array of [[#AnalogStickCalibrationSleepButtonState]]
|}
=== UniquePadConfig ==SleepButtonState =====This is "nn::hid::system::SleepButtonState". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x200x8| [[#UniquePadConfigHeader]]SamplingNumber
|-
| 0x200x8| 0x30 * 20x8| Array of [[#UniquePadConfigStateSleepButtonSet|Buttons]]
|}
==CaptureButtonSharedMemoryFormat == UniquePadConfigHeader 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"
|-
| 0x0
| 0x8
| Timestamp in ticksRingLifoVptr
|-
| 0x8
| 0x8
| Number of Entries (always 17)BufferCount
|-
| 0x10
| 0x8
| Latest Entry IndexTail
|-
| 0x18
| 0x8
| Maximum Entry Index (always 16)Count|-| 0x20| 0x18 * 17| Array of [[#CaptureButtonStateAtomicStorage]]
|}
==== UniquePadConfigState CaptureButtonStateAtomicStorage ====This is "nn::hid::detail::CaptureButtonStateAtomicStorage". 
{| class="wikitable" border="1"
|-
| 0x0
| 0x8
| Timestamp in samples (global)SamplingNumber
|-
| 0x8
| 0x8
|
|-
| 0x10
| 0x20| Controller Serial[[#CaptureButtonState]]
|}
=== AnalogStickCalibration ==CaptureButtonState =====This is "nn::hid::system::CaptureButtonState". 
{| class="wikitable" border="1"
|-
|-
| 0x0
| 0x8| SamplingNumber|-| 0x8| 0x8| [[#CaptureButtonSet|Buttons]]|} == InputDetectorSharedMemoryFormat ==This is "nn::hid::detail::InputDetectorSharedMemoryFormat". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x80 * 16| Array of [[#InputDetectorSharedMemoryEntry]]|} === InputDetectorSharedMemoryEntry ===This is "nn::hid::detail::InputDetectorSharedMemoryEntry". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x50| [[#InputDetectorLifo]]|} ==== InputDetectorLifo ====This is "nn::hid::detail::InputDetectorLifo". This is a RingLifo object. {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| RingLifoVptr|-| 0x8| 0x8| BufferCount|-| 0x10| 0x8| Tail|-| 0x18| 0x8| Count|-| 0x20| 0x18 * 2| Array of [[#InputDetectorStateAtomicStorage]]|} ===== InputDetectorStateAtomicStorage =====This is "nn::hid::detail::InputDetectorStateAtomicStorage". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| SamplingNumber|-| 0x8| 0x10| [[#InputDetectorState]]|} ====== InputDetectorState ======This is "nn::hid::detail::InputDetectorState". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| InputSourceState|-| 0x8| 0x8| SamplingNumber|} == UniquePadSharedMemoryFormat ==This is "nn::hid::detail::UniquePadSharedMemoryFormat". [5.0.0+] This section has been removed from [[#SharedMemoryFormat]]. [[#UniquePadSharedMemoryFormat]] is now a specialization of [[#NpadSharedMemoryFormat]]. {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x400 * 16| Array of [[#UniquePadSharedMemoryEntry]]|} === UniquePadSharedMemoryEntry ===This is "nn::hid::detail::UniquePadSharedMemoryEntry". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x1E0| [[#UniquePadLifo]]|} ==== UniquePadLifo ====This is "nn::hid::detail::UniquePadLifo". This is a RingLifo object. {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x80| [[#UniquePadConfigLifo]]|-| 0x80| 0x70 * 2| Array of [[#AnalogStickCalibrationStateImplLifo]]|-| 0x160| 0x40| [[#SixAxisSensorUserCalibrationStateLifo]]|-| 0x1A0| 0x8| UniquePadConfigMutex|} ===== UniquePadConfigLifo =====This is "nn::hid::detail::UniquePadConfigLifo". This is a RingLifo object. {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| RingLifoVptr|-| 0x8| 0x8| BufferCount|-| 0x10| 0x8| Tail|-| 0x18| 0x8| Count|-| 0x20| 0x30 * 2| Array of [[#UniquePadConfigAtomicStorage]]|} ====== UniquePadConfigAtomicStorage ======This is "nn::hid::detail::UniquePadConfigAtomicStorage". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| SamplingNumber|-| 0x8| 0x28| [[#UniquePadConfig]]|} ======= UniquePadConfig =======This is "nn::hid::detail::UniquePadConfig". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x4| [[#UniquePadType|Type]]|-| 0x4| 0x4| [[#UniquePadInterface|Interface]]|-| 0x8| 0x10| [[#AnalogStickCalibrationHeaderUniquePadSerialNumber|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 [[#AnalogStickCalibrationStateAnalogStickCalibrationStateImpl]]|} ==== AnalogStickCalibrationHeader ==AnalogStickCalibrationStateImplAtomicStorage ======This is "nn::hid::detail::AnalogStickCalibrationStateImplAtomicStorage". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| SamplingNumber|-| 0x8| 0x20| [[#AnalogStickCalibrationStateImpl]]|} ======= AnalogStickCalibrationStateImpl =======This is "nn::hid::detail::AnalogStickCalibrationStateImpl". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| [[#AnalogStickState|State]]|-| 0x8| 0x8| [[#AnalogStickCalibrationFlagsSet|Flags]]|-| 0x10| 0x8| Stage|-| 0x18| 0x8| SamplingNumber|} ===== SixAxisSensorUserCalibrationStateLifo =====This is "nn::hid::detail::SixAxisSensorUserCalibrationStateLifo". This is a RingLifo object. {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| RingLifoVptr|-| 0x8| 0x8| BufferCount|-| 0x10| 0x8| Tail|-| 0x18| 0x8| Count|-| 0x20| 0x20 * 2| Array of [[#SixAxisSensorUserCalibrationStateAtomicStorage]]|} ====== SixAxisSensorUserCalibrationStateAtomicStorage ======This is "nn::hid::detail::SixAxisSensorUserCalibrationStateAtomicStorage". {| class="wikitable" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| SamplingNumber|-| 0x8| 0x18| [[#SixAxisSensorUserCalibrationState]]|} ======= UniquePadConfig =======This is "nn::hid::detail::UniquePadConfig". {| class="wikitable" border="1"
|-
! Offset
| 0x0
| 0x8
| Timestamp in ticks[[#SixAxisSensorUserCalibrationFlagsSet|Flags]]
|-
| 0x8
| 0x8
| Number of Entries (always 17)Stage
|-
| 0x10
| 0x8
| Latest Entry Index|-| 0x18| 0x8| Maximum Entry Index (always 16)SamplingNumber
|}
==== AnalogStickCalibrationState ==NpadSharedMemoryFormat =={| class=This is "wikitablenn::hid::detail::NpadSharedMemoryFormat" border="1"|-! Offset! Size! Description|-| 0x0| 0x8| Timestamp in samples (global)|-| 0x8| 0x28| |}.
== Npad ==
This section contains a series of 10 0x5000 byte structures describing each available controller.
|}
== Gesture GestureSharedMemoryFormat ==This is "nn::hid::detail::GestureSharedMemoryFormat". 
{| class="wikitable" border="1"
|-
|}
== ConsoleSixAxisSensor ConsoleSixAxisSensorSharedMemoryFormat ==
{| class="wikitable" border="1"
|-

Navigation menu