Changes

4,324 bytes added ,  18:59, 16 January 2020
no edit summary
Line 12: Line 12:  
| 0x0
 
| 0x0
 
| 0x400
 
| 0x400
| DebugPad
+
| [[#DebugPad]]
 
|-
 
|-
 
| 0x400
 
| 0x400
Line 28: Line 28:  
| 0x3C00
 
| 0x3C00
 
| 0x1000 (0x400 * 0x04)
 
| 0x1000 (0x400 * 0x04)
| BasicXpad
+
| [[#BasicXpad]]
 
|-
 
|-
 
| 0x4C00
 
| 0x4C00
Line 63: Line 63:  
|}
 
|}
   −
== TouchScreen ==
+
== DebugPad ==
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 71: Line 71:  
|-
 
|-
 
| 0x0
 
| 0x0
| 0x28
+
| 0x20
| [[#TouchScreenHeader]]
+
| [[#DebugPadHeader]]
 
|-
 
|-
| 0x28
+
| 0x20
| 0x298 * 17
+
| 0x28 * 17
| Array of [[#TouchScreenState]]
+
| Array of [[#DebugPadState]]
 
|}
 
|}
   −
=== TouchScreenHeader ===
+
=== DebugPadHeader ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 88: Line 88:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in ticks?
+
| Timestamp in ticks
 
|-
 
|-
 
| 0x8
 
| 0x8
 
| 0x8
 
| 0x8
| Number of Entries, always 17
+
| Number of Entries (always 17)
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 100: Line 100:  
| 0x18
 
| 0x18
 
| 0x8
 
| 0x8
| Maximum Entry Index, always 16
+
| Maximum Entry Index (always 16)
 +
|}
 +
 
 +
=== DebugPadState ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 +
| 0x20
 +
|
 +
|}
 +
 
 +
== TouchScreen ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x20
 +
| [[#TouchScreenHeader]]
 
|-
 
|-
 
| 0x20
 
| 0x20
| 0x8
+
| 0x298 * 17
| Timestamp in samples
+
| Array of [[#TouchScreenState]]
 
|}
 
|}
   −
=== TouchScreenState ===
+
=== TouchScreenHeader ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 115: Line 143:  
|-
 
|-
 
| 0x0
 
| 0x0
 +
| 0x8
 +
| Timestamp in ticks
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Number of Entries (always 17)
 +
|-
 
| 0x10
 
| 0x10
| [[#TouchScreenStateHeader]]
+
| 0x8
 +
| Latest Entry Index
 
|-
 
|-
| 0x10
+
| 0x18
| 0x28 * 16
+
| 0x8
| [[#TouchScreenStateData]]
+
| Maximum Entry Index (always 16)
 
|}
 
|}
   −
==== TouchScreenStateHeader ====
+
=== TouchScreenState ===
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 131: Line 167:  
|-
 
|-
 
| 0x0
 
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 
| 0x8
 
| 0x8
 
| Timestamp in samples
 
| Timestamp in samples
 
|-
 
|-
| 0x8
+
| 0x10
 
| 0x8
 
| 0x8
 
| Touch count
 
| Touch count
 +
|-
 +
| 0x18
 +
| 0x28 * 16
 +
| [[#TouchScreenStateData]]
 
|}
 
|}
   Line 208: Line 252:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in ticks?
+
| Timestamp in ticks
 
|-
 
|-
 
| 0x8
 
| 0x8
 
| 0x8
 
| 0x8
| Number of Entries, always 17
+
| Number of Entries (always 17)
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 220: Line 264:  
| 0x18
 
| 0x18
 
| 0x8
 
| 0x8
| Maximum Entry Index, always 16
+
| Maximum Entry Index (always 16)
 
|}
 
|}
   Line 232: Line 276:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in samples
+
| Timestamp in samples (global)
 
|-
 
|-
 
| 0x8
 
| 0x8
 
| 0x8
 
| 0x8
| Timestamp in samples again?
+
| Timestamp in samples
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 292: Line 336:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in ticks?
+
| Timestamp in ticks
 
|-
 
|-
 
| 0x8
 
| 0x8
 
| 0x8
 
| 0x8
| Number of Entries, always 17
+
| Number of Entries (always 17)
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 304: Line 348:  
| 0x18
 
| 0x18
 
| 0x8
 
| 0x8
| Maximum Entry Index, always 16
+
| Maximum Entry Index (always 16)
 
|}
 
|}
   Line 316: Line 360:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in samples
+
| Timestamp in samples (global)
 
|-
 
|-
 
| 0x8
 
| 0x8
 
| 0x8
 
| 0x8
| Timestamp in samples again?
+
| Timestamp in samples
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 329: Line 373:  
| 0x20
 
| 0x20
 
| Keys Down, each key gets one bit based on the HID keyboard scan code (F1 is 0x3A, bit 0x3A is set)
 
| Keys Down, each key gets one bit based on the HID keyboard scan code (F1 is 0x3A, bit 0x3A is set)
 +
|}
 +
 +
== BasicXpad ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x20
 +
| [[#BasicXpadHeader]]
 +
|-
 +
| 0x20
 +
| 0x28 * 17
 +
| Array of [[#BasicXpadState]]
 +
|}
 +
 +
=== BasicXpadHeader ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in ticks
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Number of Entries (always 17)
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Latest Entry Index
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Maximum Entry Index (always 16)
 +
|}
 +
 +
=== BasicXpadState ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 +
| 0x20
 +
|
 +
|}
 +
 +
== HomeButton ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x20
 +
| [[#HomeButtonHeader]]
 +
|-
 +
| 0x20
 +
| 0x18 * 17
 +
| Array of [[#HomeButtonState]]
 +
|}
 +
 +
=== HomeButtonHeader ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in ticks
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Number of Entries (always 17)
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Latest Entry Index
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Maximum Entry Index (always 16)
 +
|}
 +
 +
=== HomeButtonState ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 +
| 0x10
 +
|
 +
|}
 +
 +
== SleepButton ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x20
 +
| [[#SleepButtonHeader]]
 +
|-
 +
| 0x20
 +
| 0x18 * 17
 +
| Array of [[#SleepButtonState]]
 +
|}
 +
 +
=== SleepButtonHeader ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in ticks
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Number of Entries (always 17)
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Latest Entry Index
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Maximum Entry Index (always 16)
 +
|}
 +
 +
=== SleepButtonState ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 +
| 0x10
 +
|
 +
|}
 +
 +
== CaptureButton ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x20
 +
| [[#CaptureButtonHeader]]
 +
|-
 +
| 0x20
 +
| 0x18 * 17
 +
| Array of [[#CaptureButtonState]]
 +
|}
 +
 +
=== CaptureButtonHeader ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in ticks
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Number of Entries (always 17)
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Latest Entry Index
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Maximum Entry Index (always 16)
 +
|}
 +
 +
=== CaptureButtonState ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 +
| 0x10
 +
|
 +
|}
 +
 +
== InputDetector ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x20
 +
| [[#InputDetectorHeader]]
 +
|-
 +
| 0x20
 +
| 0x18 * 2
 +
| Array of [[#InputDetectorState]]
 +
|}
 +
 +
=== InputDetectorHeader ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in ticks
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Number of Entries (always 17)
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Latest Entry Index
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Maximum Entry Index (always 16)
 +
|}
 +
 +
=== InputDetectorState ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 +
| 0x10
 +
|
 
|}
 
|}
   Line 336: Line 660:  
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
!   Offset
+
! Offset
!   Size in bytes
+
! Size in bytes
!   Description
+
! Description
 
|-
 
|-
 
| 0x30
 
| 0x30
Line 612: Line 936:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in samples
+
| Timestamp in samples (global)
 
|-
 
|-
 
| 0x8
 
| 0x8
 
| 0x8
 
| 0x8
| Timestamp in samples again
+
| Timestamp in samples
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 739: Line 1,063:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in ticks?
+
| Timestamp in ticks
 
|-
 
|-
 
| 0x8
 
| 0x8
 
| 0x8
 
| 0x8
| Number of entries, always 17
+
| Number of entries (always 17)
 
|-
 
|-
 
| 0x10
 
| 0x10
Line 751: Line 1,075:  
| 0x18
 
| 0x18
 
| 0x8
 
| 0x8
| Maximum Entry Index, up to 16
+
| Maximum Entry Index (up to 16)
 
|}
 
|}
   Line 763: Line 1,087:  
| 0x0
 
| 0x0
 
| 0x8
 
| 0x8
| Timestamp in samples
+
| Timestamp in samples (global)
 
|-
 
|-
 
| 0x8
 
| 0x8
Line 771: Line 1,095:  
| 0x10
 
| 0x10
 
| 0x8
 
| 0x8
| Timestamp in samples again
+
| Timestamp in samples
 
|-
 
|-
 
| 0x1C
 
| 0x1C
Line 856: Line 1,180:  
| 0
 
| 0
 
| UnintendedHomeButtonInputProtectionEnabled (if cleared)
 
| UnintendedHomeButtonInputProtectionEnabled (if cleared)
 +
|}
 +
 +
== Gesture ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x20
 +
| [[#GestureHeader]]
 +
|-
 +
| 0x20
 +
| 0x68 * 17
 +
| Array of [[#GestureState]]
 +
|}
 +
 +
=== GestureHeader ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in ticks
 +
|-
 +
| 0x8
 +
| 0x8
 +
| Number of Entries (always 17)
 +
|-
 +
| 0x10
 +
| 0x8
 +
| Latest Entry Index
 +
|-
 +
| 0x18
 +
| 0x8
 +
| Maximum Entry Index (always 16)
 +
|}
 +
 +
=== GestureState ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
| Timestamp in samples (global)
 +
|-
 +
| 0x8
 +
| 0x60
 +
|
 +
|}
 +
 +
== ConsoleSixAxisSensor ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x8
 +
|
 +
|-
 +
| 0x8
 +
| 0x1
 +
|
 +
|-
 +
| 0x9
 +
| 0x3
 +
| Padding
 +
|-
 +
| 0xC
 +
| 0x4
 +
|
 +
|-
 +
| 0x10
 +
| 0xC
 +
|
 +
|-
 +
| 0x1C
 +
| 0x4
 +
| Padding
 
|}
 
|}