HID Shared Memory
This page describes the format of the HID shared memory.
Offset 0x0
| Relative offset | Description |
|---|---|
| 0x1C | PAD state. Bit set = button pressed, bit clear = button not pressed. |
| 0x28 | Same as 0x1C? |
| 0x34 | This stores circle-pad info: the low s16 is the X coordinate, the high s16 is the Y coordinate. |
| 0x38 | Same as 0x1C? |
| 0x44 | Same as 0x34? |
| 0x48 | Same as 0x1C? |
| 0x54 | Same as 0x34? |
| 0x58 | Same as 0x1C? |
| 0x64 | Same as 0x34? |
| 0x68 | Same as 0x1C? |
| 0x74 | Same as 0x34? |
| 0x78 | Same as 0x1C? |
| 0x84 | Same as 0x34? |
| 0x88 | Same as 0x1C? |
| 0x94 | Same as 0x34? |
| 0x98 | Same as 0x1C? |
Offset 0xC0
This 0x48-byte region stores entries for touch-screen position info. Each entry is 0x8-bytes, there's a total of 9 entries. Normally the last 8 entries contain the same data. When the touch-screen is not being touched, this region is all-zero.
The last 8 entries contain the pixel coordinates, while the first entry seems to contain the raw coordinate data prior to being converted to pixel coordinates.
Entry format
| Relative offset | Size | Description |
|---|---|---|
| 0x0 | 0x2 | X coordinate. |
| 0x2 | 0x2 | Y coordinate. |
| 0x4 | 0x4 | This is 0x0 when this entry doesn't contain any actual data, value 0x1 indicates that this entry contains actual data. |