Changes

add info on ir:rst service 0x7
Line 4: Line 4:  
|-
 
|-
 
!  Command Header
 
!  Command Header
 +
!  Available since system version
 
!  Description
 
!  Description
 
|-
 
|-
 
| 0x00010000
 
| 0x00010000
 +
| [[1.0.0-0]]
 
| [[IRU:Initialize|Initialize]]
 
| [[IRU:Initialize|Initialize]]
 
|-
 
|-
 
| 0x00020000
 
| 0x00020000
 +
| [[1.0.0-0]]
 
| [[IRU:Shutdown|Shutdown]]
 
| [[IRU:Shutdown|Shutdown]]
 
|-
 
|-
 
| 0x00030042
 
| 0x00030042
 +
| [[1.0.0-0]]
 
| [[IRU:StartSendTransfer|StartSendTransfer]]
 
| [[IRU:StartSendTransfer|StartSendTransfer]]
 
|-
 
|-
 
| 0x00040000
 
| 0x00040000
 +
| [[1.0.0-0]]
 
| [[IRU:WaitSendTransfer|WaitSendTransfer]]
 
| [[IRU:WaitSendTransfer|WaitSendTransfer]]
 
|-
 
|-
 
| 0x000500C2
 
| 0x000500C2
 +
| [[1.0.0-0]]
 
| [[IRU:StartRecvTransfer|StartRecvTransfer]]
 
| [[IRU:StartRecvTransfer|StartRecvTransfer]]
 
|-
 
|-
 
| 0x00060000
 
| 0x00060000
 +
| [[1.0.0-0]]
 
| [[IRU:WaitRecvTransfer|WaitRecvTransfer]]
 
| [[IRU:WaitRecvTransfer|WaitRecvTransfer]]
 
|-
 
|-
 
| 0x00070000
 
| 0x00070000
 +
| [[1.0.0-0]]
 
| [[IRU:GetRecvTransferCount|GetRecvTransferCount]]
 
| [[IRU:GetRecvTransferCount|GetRecvTransferCount]]
 
|-
 
|-
 
| 0x00080000
 
| 0x00080000
 +
| [[1.0.0-0]]
 
| [[IRU:GetSendState|GetSendState]]
 
| [[IRU:GetSendState|GetSendState]]
 
|-
 
|-
 
| 0x00090040
 
| 0x00090040
 +
| [[1.0.0-0]]
 
| [[IRU:SetBitRate|SetBitRate]]
 
| [[IRU:SetBitRate|SetBitRate]]
 
|-
 
|-
 
| 0x000A0000
 
| 0x000A0000
 +
| [[1.0.0-0]]
 
| [[IRU:GetBitRate|GetBitRate]]
 
| [[IRU:GetBitRate|GetBitRate]]
 
|-
 
|-
 
| 0x000B0040
 
| 0x000B0040
 +
| [[1.0.0-0]]
 
| [[IRU:SetIRLEDState|SetIRLEDState]]
 
| [[IRU:SetIRLEDState|SetIRLEDState]]
 
|-
 
|-
 
| 0x000C0000
 
| 0x000C0000
 +
| [[1.0.0-0]]
 
| [[IRU:GetIRLEDRecvState|GetIRLEDRecvState]]
 
| [[IRU:GetIRLEDRecvState|GetIRLEDRecvState]]
 
|-
 
|-
 
| 0x000D0000
 
| 0x000D0000
 +
| [[1.0.0-0]]
 
| [[IRU:GetSendFinishedEvent|GetSendFinishedEvent]]
 
| [[IRU:GetSendFinishedEvent|GetSendFinishedEvent]]
 
|-
 
|-
 
| 0x000E0000
 
| 0x000E0000
 +
| [[1.0.0-0]]
 
| [[IRU:GetRecvFinishedEvent|GetRecvFinishedEvent]]
 
| [[IRU:GetRecvFinishedEvent|GetRecvFinishedEvent]]
 
|-
 
|-
 
| 0x000F0000
 
| 0x000F0000
 +
| [[1.0.0-0]]
 
| [[IRU:GetTransferState|GetTransferState]]
 
| [[IRU:GetTransferState|GetTransferState]]
 
|-
 
|-
 
| 0x00100000
 
| 0x00100000
 +
| [[1.0.0-0]]
 
| GetErrorStatus
 
| GetErrorStatus
 
|-
 
|-
 
| 0x00110040
 
| 0x00110040
 +
| [[1.0.0-0]]
 
| [[IRU:SetSleepModeActive|SetSleepModeActive]]
 
| [[IRU:SetSleepModeActive|SetSleepModeActive]]
 
|-
 
|-
 
| 0x00120040
 
| 0x00120040
 +
| [[1.0.0-0]]
 
| [[IRU:SetSleepModeState|SetSleepModeState]]
 
| [[IRU:SetSleepModeState|SetSleepModeState]]
 
|}
 
|}
Line 70: Line 89:  
| 0x00010182
 
| 0x00010182
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
| InitializeIrnop
+
| [[IRUSER:InitializeIrnop|InitializeIrnop]]
 
|-
 
|-
 
| 0x00020000
 
| 0x00020000
Line 84: Line 103:  
| ClearSendBuffer
 
| ClearSendBuffer
 
|-
 
|-
| 0x0005....
+
| 0x000500C0
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
 
| WaitConnection
 
| WaitConnection
Line 92: Line 111:  
| RequireConnection (u8 input)
 
| RequireConnection (u8 input)
 
|-
 
|-
| 0x0007....
+
| 0x000702C0
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
 
| AutoConnection
 
| AutoConnection
 
|-
 
|-
| 0x0008....
+
| 0x00080000
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
 
| AnyConnection
 
| AnyConnection
Line 124: Line 143:  
| SendIrnopLarge (u32 size, ((Size<<8) <nowiki>|</nowiki> 10), inbufptr)
 
| SendIrnopLarge (u32 size, ((Size<<8) <nowiki>|</nowiki> 10), inbufptr)
 
|-
 
|-
| 0x000F....
+
| 0x000F0040
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
 
| ReceiveIrnop
 
| ReceiveIrnop
 
|-
 
|-
| 0x0010....
+
| 0x00100042
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
 
| ReceiveIrnopLarge
 
| ReceiveIrnopLarge
Line 162: Line 181:  
| 0x00180182
 
| 0x00180182
 
| [[2.2.0-X]]
 
| [[2.2.0-X]]
| InitializeIrnopShared (u32, u32, u32, u32, u32, u8, 0, handle)
+
| [[IRUSER:InitializeIrnopShared|InitializeIrnopShared]]
 
|-
 
|-
 
| 0x00190040
 
| 0x00190040
Line 210: 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 228: 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.