IR Services: Difference between revisions
Add reference to new GetErrorStatus page |
|||
(7 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
__TOC__ | |||
{{Anchor|IRU}}{{Anchor|ir:u}} | |||
= IR Service "ir:u" = | = IR Service "ir:u" = | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 69: | Line 70: | ||
| 0x00100000 | | 0x00100000 | ||
| [[1.0.0-0]] | | [[1.0.0-0]] | ||
| GetErrorStatus | | [[IRU::GetErrorStatus|GetErrorStatus]] | ||
|- | |- | ||
| 0x00110040 | | 0x00110040 | ||
Line 80: | Line 81: | ||
|} | |} | ||
{{Anchor|IRUSER}}{{Anchor|ir:USER}} | |||
= IR Service "ir:USER" = | = IR Service "ir:USER" = | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 89: | Line 91: | ||
| 0x00010182 | | 0x00010182 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| | | [[IRUSER:InitializeIrnop|InitializeIrnop]] | ||
|- | |- | ||
| 0x00020000 | | 0x00020000 | ||
Line 103: | Line 105: | ||
| ClearSendBuffer | | ClearSendBuffer | ||
|- | |- | ||
| | | 0x000500C0 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| WaitConnection | | WaitConnection | ||
Line 111: | Line 113: | ||
| RequireConnection (u8 input) | | RequireConnection (u8 input) | ||
|- | |- | ||
| | | 0x000702C0 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| AutoConnection | | AutoConnection | ||
|- | |- | ||
| | | 0x00080000 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| AnyConnection | | AnyConnection | ||
Line 143: | Line 145: | ||
| SendIrnopLarge (u32 size, ((Size<<8) <nowiki>|</nowiki> 10), inbufptr) | | SendIrnopLarge (u32 size, ((Size<<8) <nowiki>|</nowiki> 10), inbufptr) | ||
|- | |- | ||
| | | 0x000F0040 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| ReceiveIrnop | | ReceiveIrnop | ||
|- | |- | ||
| | | 0x00100042 | ||
| [[2.0.0-2]] | | [[2.0.0-2]] | ||
| ReceiveIrnopLarge | | ReceiveIrnopLarge | ||
Line 181: | Line 183: | ||
| 0x00180182 | | 0x00180182 | ||
| [[2.2.0-X]] | | [[2.2.0-X]] | ||
| InitializeIrnopShared | | [[IRUSER:InitializeIrnopShared|InitializeIrnopShared]] | ||
|- | |- | ||
| 0x00190040 | | 0x00190040 | ||
Line 196: | Line 198: | ||
When sending data, SendIrnop is used when the size is <=0xFC, otherwise SendIrnopLarge is used. | When sending data, SendIrnop is used when the size is <=0xFC, otherwise SendIrnopLarge is used. | ||
{{Anchor|IRRST}}{{Anchor|ir:rst}} | |||
= IR Service "ir:rst" = | = IR Service "ir:rst" = | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 229: | Line 232: | ||
| 0x00070080 | | 0x00070080 | ||
| [[9.0.0-20]] | | [[9.0.0-20]] | ||
| (u8 unk0, u8 unk1) | | (u8 unk0, u8 unk1) This is used for calibrating the C-stick on the N3DS EXTHID. | ||
|- | |- | ||
| 0x00080000 | | 0x00080000 | ||
Line 247: | Line 250: | ||
IRU is for regular IR comms. IRUSER uses a custom IR protocol(above the physical layer). Both of these services use IrDA-SIR. The IR hardware seems to only support IrDA-SIR, other physical protocols such as the one for TV-remotes are not supported(going by the datasheet linked [[Hardware|here]] for a different IC at least). | IRU is for regular IR comms. IRUSER uses a custom IR protocol(above the physical layer). Both of these services use IrDA-SIR. The IR hardware seems to only support IrDA-SIR, other physical protocols such as the one for TV-remotes are not supported(going by the datasheet linked [[Hardware|here]] for a different IC at least). | ||
The protocol used with IRUSER involves encryption(?) implemented in software. IRUSER is used for the [[Circle Pad Pro]]. This same IRUSER service uses the New3DS HID hardware when running on New3DS | The protocol used with IRUSER involves encryption(?) implemented in software. IRUSER is used for the [[Circle Pad Pro]]. This same IRUSER service uses the New3DS HID hardware when running on New3DS. Note that the main service for New3DS HID is ir:rst, and these two service are mutually exclusive: when one is initialized and reading data from New3DS HID, the other cannot access it. | ||
[[Category:Services]] |