IRRST Shared Memory
The total size of this shared-mem is 0x98-bytes.
|0x0||0x8||svcGetSystemTick tick-count output, for when IR module updates entry index0 in the below array.|
|0x8||0x8||Before the above tick-count field is updated, that value is copied into this field. Therefore, this contains the tick-count for the previous time that entry index0 in the below array was updated by IR module.|
|0x10||0x4||Index in the following array which was last updated by IR module.|
|0x18||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.
|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 X value (center is exactly 0, ranges from -0x9C to 0x9C)|
|0xE||0x2||C-stick Y value (center is exactly 0, ranges from -0x9C to 0x9C)|
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).