Difference between revisions of "IRRST Shared Memory"
Jump to navigation
Jump to search
Line 11: | Line 11: | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
− | | | + | | 0x4 |
− | | | + | | A counter that ranges from 0 to 7, presumably to indicate which entry was last updated |
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
| 0x4 | | 0x4 | ||
− | | | + | | 0x4 |
+ | | Unused ? (value 0x0) | ||
|- | |- | ||
− | | | + | | 0x8 |
| 0x80 | | 0x80 | ||
− | | Array of 8 entries, where each entry(see below) is 0x10-bytes. | + | | Array of 8 entries, where each entry (see below) is 0x10-bytes. |
|} | |} | ||
Line 42: | Line 38: | ||
| 0x4 | | 0x4 | ||
| 0x4 | | 0x4 | ||
− | | | + | | PAD state for buttons which were pressed(bitmasks which changed from value 0 to value 1) since the last HID update. |
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x4 | | 0x4 | ||
− | | | + | | PAD state for buttons which were released(bitmasks which changed from value 1 to value 0) since the last HID update. |
|- | |- | ||
| 0xC | | 0xC | ||
| 0x2 | | 0x2 | ||
− | | | + | | C-stick Y value (center is exactly 0, ranges from -0x9C to 0x9C) |
|- | |- | ||
| 0xE | | 0xE | ||
| 0x2 | | 0x2 | ||
− | | | + | | C-stick X value (center is exactly 0, ranges from -0x9C to 0x9C) |
|} | |} | ||
+ | |||
+ | ==PAD State== | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Bit | ||
+ | ! Description | ||
+ | |- | ||
+ | | 14 | ||
+ | | ZL | ||
+ | |- | ||
+ | | 15 | ||
+ | | ZR | ||
+ | |- | ||
+ | | 24 | ||
+ | | C-stick right | ||
+ | |- | ||
+ | | 25 | ||
+ | | C-stick left | ||
+ | |- | ||
+ | | 26 | ||
+ | | C-stick up | ||
+ | |- | ||
+ | | 27 | ||
+ | | C-stick down | ||
+ | |} | ||
+ | |||
+ | The ir:rst PAD entries are the same format as HID ones and meant to be ORd with them (they are complementary, there is no overlap in used bits). |
Revision as of 01:25, 26 October 2014
This is the shared-memory for "ir:rst". The additional New 3DS HID data is stored here. The structure of this is similar to the HID_Shared_Memory sections.
The total size of this shared-mem is 0x98-bytes.
Offset 0x0
Relative offset | Size | Description |
---|---|---|
0x0 | 0x4 | A counter that ranges from 0 to 7, presumably to indicate which entry was last updated |
0x4 | 0x4 | Unused ? (value 0x0) |
0x8 | 0x80 | Array of 8 entries, where each entry (see below) is 0x10-bytes. |
IR module first updates index0, then index1, and so on. When updating the array when the index is already 7, the index is reset to 0.
Entry format
Relative offset | Size | Description |
---|---|---|
0x0 | 0x4 | PAD state |
0x4 | 0x4 | PAD state for buttons which were pressed(bitmasks which changed from value 0 to value 1) since the last HID update. |
0x8 | 0x4 | PAD state for buttons which were released(bitmasks which changed from value 1 to value 0) since the last HID update. |
0xC | 0x2 | C-stick Y value (center is exactly 0, ranges from -0x9C to 0x9C) |
0xE | 0x2 | C-stick X value (center is exactly 0, ranges from -0x9C to 0x9C) |
PAD State
Bit | Description |
---|---|
14 | ZL |
15 | ZR |
24 | C-stick right |
25 | C-stick left |
26 | C-stick up |
27 | C-stick down |
The ir:rst PAD entries are the same format as HID ones and meant to be ORd with them (they are complementary, there is no overlap in used bits).