IR Services: Difference between revisions

Mailwl (talk | contribs)
m clarify some service codes
Made (talk | contribs)
Add reference to new GetErrorStatus page
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[[Category:Services]]
__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]]
| InitializeIrnop(cmd[5]=[[IRU:SetBitRate|bitrate]] value, cmd[7]=0, cmd[8]=handle, the rest unknown)
| [[IRUSER:InitializeIrnop|InitializeIrnop]]
|-
|-
| 0x00020000
| 0x00020000
Line 111: Line 113:
| RequireConnection (u8 input)
| RequireConnection (u8 input)
|-
|-
| 0x00070C20
| 0x000702C0
| [[2.0.0-2]]
| [[2.0.0-2]]
| AutoConnection
| AutoConnection
Line 181: Line 183:
| 0x00180182
| 0x00180182
| [[2.2.0-X]]
| [[2.2.0-X]]
| InitializeIrnopShared (u32, u32, u32, u32, u32, cmd[6] = u8 [[IRU:SetBitRate|bitrate]] value, 0, handle)
| [[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(note that the main service for New3DS HID is ir:rst).
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]]