NFC Services: Difference between revisions
→NFC management service "nfc:m": Added information about 0x402 coommand in nfc:m. |
|||
(12 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
On New3DS NFC module uses the [[I2C_Registers|NFC]] hardware via the [[I2C_Services|i2c::NFC]] and [[GPIO_Services|gpio:NFC]] services. On Old3DS NFC module communicates with a NFC peripheral via IR with the IRUSER service. | On New3DS NFC module uses the [[I2C_Registers|NFC]] hardware via the [[I2C_Services|i2c::NFC]] and [[GPIO_Services|gpio:NFC]] services. On Old3DS NFC module communicates with a NFC peripheral via IR with the IRUSER service. | ||
Only 1 session can be open for all of these services combined. Commands for each service are handled by the main-thread. | |||
=NFC services= | =NFC services= | ||
Line 33: | Line 33: | ||
| void | | void | ||
| s32 result, u32 unknownA[16] | | s32 result, u32 unknownA[16] | ||
| Output seems to be a struct | | Output seems to be a struct. unknownA[2]'s value is the AppID of the Amiibo. | ||
|- | |- | ||
| 0x04030000 | | 0x04030000 | ||
Line 102: | Line 102: | ||
==NFC development service "nfc:dev"== | ==NFC development service "nfc:dev"== | ||
{| class="wikitable" border="1" | |||
|- | |||
! Command header | |||
! Available since system-version | |||
! Description | |||
|- | |||
| 0x00110100 | |||
| | |||
| [[NFCDEV:ReadRawPages|ReadRawPages]] | |||
|- | |||
| 0x001200C0 | |||
| | |||
| [[NFCDEV:WriteRawPage|WriteRawPage]] | |||
|} | |||
Some of these commands seems to be intended for use only on dev-units. | |||
Unlike the New3DS NFC-module, at least some of these commands are stubbed in the Old3DS NFC-module(only returns an error). | Unlike the New3DS NFC-module, at least some of these commands are stubbed in the Old3DS NFC-module(only returns an error). | ||
Line 128: | Line 143: | ||
| | | | ||
| ? | | ? | ||
|- | |||
| 0x000500C2 | |||
| | |||
| [[NFCP:SendTagCommand|SendTagCommand]] | |||
|- | |||
| 0x00060000 | |||
| | |||
| GetTagInfo | |||
|- | |- | ||
| 0x00070000 | | 0x00070000 | ||
Line 134: | Line 157: | ||
|- | |- | ||
| 0x00080000 | | 0x00080000 | ||
| | |||
| Writes a handle to cmdreply[3]. | |||
|- | |||
| 0x00090000 | |||
| | | | ||
| Writes a handle to cmdreply[3]. | | Writes a handle to cmdreply[3]. | ||
Line 140: | Line 167: | ||
| | | | ||
| Unknown. Writes an output value to cmdreply[2]. | | Unknown. Writes an output value to cmdreply[2]. | ||
|- | |||
| 0x000B0000 | |||
| | |||
| Unknown. Writes 0x60-bytes of output starting at cmdreply[2]. u16 +0 is the size of the data at +4, +2 is not initialized, u8 +3 is loaded from state, u32 +0x2C is loaded from state, and the data at +4 with the previously mentioned size is copied from state. | |||
|- | |||
| 0x000C0040 | |||
| | |||
| (u32 outputsize) Writes output to static_buf_id=0, outputsize 1 is used when it's >=1. | |||
|- | |||
| 0x000D0040 | |||
| | |||
| (u32 outputsize) Writes output to static_buf_id=0, outputsize 1 is used when it's >=1. | |||
|- | |||
| 0x000E0080 | |||
| | |||
| (u8 unk, u32 outputsize) Writes output to static_buf_id=0, outputsize 2 is used when it's >=2. | |||
|- | |||
| 0x000F0040 | |||
| | |||
| (u32 outputsize) Writes output to static_buf_id=0, outputsize 2 is used when it's >=2. | |||
|- | |||
| 0x00100000 | |||
| | |||
| Unknown. | |||
|- | |||
| 0x00110000 | |||
| | |||
| Unknown. | |||
|- | |||
| 0x00120000 | |||
| | |||
| Unknown. Writes an output u32 to cmdreply[2]. | |||
|- | |||
| 0x00130000 | |||
| | |||
| Unknown. Writes an output u32 to cmdreply[2]. | |||
|} | |} | ||
Line 156: | Line 219: | ||
! Available since system-version | ! Available since system-version | ||
! Description | ! Description | ||
|- | |||
| 0x00130102 | |||
| | |||
| [[NFCS:SendTagCommand|SendTagCommand]] | |||
|- | |- | ||
| 0x00230000 | | 0x00230000 | ||
Line 390: | Line 457: | ||
| 0x001F0080 | | 0x001F0080 | ||
| [[10.0.0-27|10.0.0-X]] | | [[10.0.0-27|10.0.0-X]] | ||
| | | [[NFC:StartOtherTagScanning|StartOtherTagScanning]] | ||
| | | | ||
| | | | ||
| Used by JPN eShop app "Megami Meguri". | | Used by JPN eShop app "Megami Meguri". | ||
Line 397: | Line 464: | ||
| 0x00200102 | | 0x00200102 | ||
| [[10.0.0-27|10.0.0-X]] | | [[10.0.0-27|10.0.0-X]] | ||
| [[NFC:SendTagCommand|SendTagCommand]] | |||
| [ | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| 0x00210000 | | 0x00210000 | ||
Line 407: | Line 474: | ||
| | | | ||
| | | | ||
| Used by JPN eShop app "Megami Meguri". | | Used by JPN eShop app "Megami Meguri". This can only be used when [[NFC:Initialize|initialized]] with type3, and when the [[NFC:GetTagState|TagState]] is 3. | ||
|- | |- | ||
| 0x00220000 | | 0x00220000 | ||
Line 414: | Line 481: | ||
| | | | ||
| | | | ||
| | | This can only be used when [[NFC:Initialize|initialized]] with type3, and when the [[NFC:GetTagState|TagState]] is 3. | ||
|} | |} | ||