Changes

add info on ir:rst service 0x7
Line 81: Line 81:     
= IR Service "ir:USER" =
 
= IR Service "ir:USER" =
See [[ir:USER]]
+
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Available since system version
 +
!  Description
 +
|-
 +
| 0x00010182
 +
| [[2.0.0-2]]
 +
| [[IRUSER:InitializeIrnop|InitializeIrnop]]
 +
|-
 +
| 0x00020000
 +
| [[2.0.0-2]]
 +
| FinalizeIrnop
 +
|-
 +
| 0x00030000
 +
| [[2.0.0-2]]
 +
| ClearReceiveBuffer
 +
|-
 +
| 0x00040000
 +
| [[2.0.0-2]]
 +
| ClearSendBuffer
 +
|-
 +
| 0x000500C0
 +
| [[2.0.0-2]]
 +
| WaitConnection
 +
|-
 +
| 0x00060040
 +
| [[2.0.0-2]]
 +
| RequireConnection (u8 input)
 +
|-
 +
| 0x000702C0
 +
| [[2.0.0-2]]
 +
| AutoConnection
 +
|-
 +
| 0x00080000
 +
| [[2.0.0-2]]
 +
| AnyConnection
 +
|-
 +
| 0x00090000
 +
| [[2.0.0-2]]
 +
| Disconnect
 +
|-
 +
| 0x000A0000
 +
| [[2.0.0-2]]
 +
| GetReceiveEvent (writes event handle to cmdreply[3])
 +
|-
 +
| 0x000B0000
 +
| [[2.0.0-2]]
 +
| GetSendEvent (writes event handle to cmdreply[3])
 +
|-
 +
| 0x000C0000
 +
| [[2.0.0-2]]
 +
| GetConnectionStatusEvent (writes event handle to cmdreply[3])
 +
|-
 +
| 0x000D0042
 +
| [[2.0.0-2]]
 +
| SendIrnop (u32 size, ((Size<<14) <nowiki>|</nowiki> 2), inbufptr)
 +
|-
 +
| 0x000E0042
 +
| [[2.0.0-2]]
 +
| SendIrnopLarge (u32 size, ((Size<<8) <nowiki>|</nowiki> 10), inbufptr)
 +
|-
 +
| 0x000F0040
 +
| [[2.0.0-2]]
 +
| ReceiveIrnop
 +
|-
 +
| 0x00100042
 +
| [[2.0.0-2]]
 +
| ReceiveIrnopLarge
 +
|-
 +
| 0x0011....
 +
| [[2.0.0-2]]
 +
| GetLatestReceiveErrorResult
 +
|-
 +
| 0x0012....
 +
| [[2.0.0-2]]
 +
| GetLatestSendErrorResult
 +
|-
 +
| 0x0013....
 +
| [[2.0.0-2]]
 +
| GetConnectionStatus
 +
|-
 +
| 0x0014....
 +
| [[2.0.0-2]]
 +
| GetTryingToConnectStatus
 +
|-
 +
| 0x0015....
 +
| [[2.0.0-2]]
 +
| GetReceiveSizeFreeAndUsed
 +
|-
 +
| 0x0016....
 +
| [[2.0.0-2]]
 +
| GetSendSizeFreeAndUsed
 +
|-
 +
| 0x0017....
 +
| [[2.2.0-X]]
 +
| GetConnectionRole
 +
|-
 +
| 0x00180182
 +
| [[2.2.0-X]]
 +
| [[IRUSER:InitializeIrnopShared|InitializeIrnopShared]]
 +
|-
 +
| 0x00190040
 +
| [[2.2.0-X]]
 +
| ReleaseReceivedData (32bit_value input)
 +
|-
 +
| 0x001A0040
 +
| [[2.2.0-X]]
 +
| SetOwnMachineId (u8 input)
 +
|}
 +
 
 +
This service was added with [[2.0.0-2]].
 +
 
 +
When sending data, SendIrnop is used when the size is <=0xFC, otherwise SendIrnopLarge is used.
    
= IR Service "ir:rst" =
 
= IR Service "ir:rst" =
Line 116: Line 229:  
| 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 134: Line 247:  
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.