NFC Services: Difference between revisions
No edit summary |
Steveice10 (talk | contribs) m These have pages now |
||
(22 intermediate revisions by 3 users not shown) | |||
Line 26: | Line 26: | ||
| u32 unknownA, u32 unknownB, u32 unknownC, u32 (sizeof(*buffer) << 14 <nowiki>|</nowiki> 0x402), void * buffer | | u32 unknownA, u32 unknownB, u32 unknownC, u32 (sizeof(*buffer) << 14 <nowiki>|</nowiki> 0x402), void * buffer | ||
| s32 result | | s32 result | ||
| | | Used when resetting an amiibo from amiibo Settings. | ||
|- | |- | ||
| 0x04020000 | | 0x04020000 | ||
| [[9.3.0-21|9.3.0-X]] | | [[9.3.0-21|9.3.0-X]] | ||
| | | [[NFCM:GetAdminInfo|GetAdminInfo]] | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| 0x04030000 | | 0x04030000 | ||
| [[9.3.0-21|9.3.0-X]] | | [[9.3.0-21|9.3.0-X]] | ||
| | | [[NFCM:GetEmptyRegisterInfo|GetEmptyRegisterInfo]] | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| 0x04040A40 | | 0x04040A40 | ||
| [[9.3.0-21|9.3.0-X]] | | [[9.3.0-21|9.3.0-X]] | ||
| [[NFCM: | | [[NFCM:SetRegisterInfo|SetRegisterInfo]] | ||
| | | | ||
| | | | ||
| | |||
|- | |||
| 0x04050000 | |||
| [[9.3.0-21|9.3.0-X]] | |||
| [[NFCM:DeleteRegisterInfo|DeleteRegisterInfo]] | |||
| | |||
| | |||
| | | | ||
|- | |- | ||
| 0x04060000 | | 0x04060000 | ||
| [[9.3.0-21|9.3.0-X]] | | [[9.3.0-21|9.3.0-X]] | ||
| | | [[NFCM:DeleteApplicationArea|DeleteApplicationArea]] | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
| 0x04070000 | | 0x04070000 | ||
| [[9.3.0-21|9.3.0-X]] | | [[9.3.0-21|9.3.0-X]] | ||
| | | [[NFCM:ExistsApplicationArea|ExistsApplicationArea]] | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
Line 102: | Line 109: | ||
==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 150: | ||
| | | | ||
| ? | | ? | ||
|- | |||
| 0x000500C2 | |||
| | |||
| [[NFCP:SendTagCommand|SendTagCommand]] | |||
|- | |||
| 0x00060000 | |||
| | |||
| GetTagInfo | |||
|- | |- | ||
| 0x00070000 | | 0x00070000 | ||
Line 134: | Line 164: | ||
|- | |- | ||
| 0x00080000 | | 0x00080000 | ||
| | |||
| Writes a handle to cmdreply[3]. | |||
|- | |||
| 0x00090000 | |||
| | | | ||
| Writes a handle to cmdreply[3]. | | Writes a handle to cmdreply[3]. | ||
Line 140: | Line 174: | ||
| | | | ||
| 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 226: | ||
! Available since system-version | ! Available since system-version | ||
! Description | ! Description | ||
|- | |||
| 0x00130102 | |||
| | |||
| [[NFCS:SendTagCommand|SendTagCommand]] | |||
|- | |- | ||
| 0x00230000 | | 0x00230000 | ||
Line 334: | Line 408: | ||
| 0x00170000 | | 0x00170000 | ||
| | | | ||
| [[NFC: | | [[NFC:GetRegisterInfo|GetRegisterInfo]] | ||
| | | | ||
| | | | ||
Line 341: | Line 415: | ||
| 0x00180000 | | 0x00180000 | ||
| | | | ||
| [[NFC: | | [[NFC:GetCommonInfo|GetCommonInfo]] | ||
| | | | ||
| | | | ||
Line 362: | Line 436: | ||
| 0x001B0000 | | 0x001B0000 | ||
| | | | ||
| | | [[NFC:GetModelInfo|GetModelInfo]] | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
Line 549: | Line 623: | ||
| 0xc8a17600 | | 0xc8a17600 | ||
| The current NFC tag [[NFC:GetTagState|state]], or other NFC state, is invalid with the NFC command which was used. | | The current NFC tag [[NFC:GetTagState|state]], or other NFC state, is invalid with the NFC command which was used. | ||
|} | |||
=Data Types= | |||
==AdminInfo== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x00 | |||
| 0x08 | |||
| Program ID (From the Wii U, 3DS or Switch title who created the application area) | |||
|- | |||
| 0x08 | |||
| 0x04 | |||
| [[Amiibo#Games_using_Amiibo_AppData|App ID]] | |||
|- | |||
| 0x0C | |||
| 0x02 | |||
| CRC32 Change Counter | |||
|- | |||
| 0x0E | |||
| 0x01 | |||
| Flags (bit0 = amiibo initialized, bit1 = has application area, bit2/bit3 unknown) | |||
|- | |||
| 0x0F | |||
| 0x01 | |||
| Unknown, hardcoded to 0x2 | |||
|- | |||
| 0x10 | |||
| 0x1 | |||
| 0xFF if there is no application area, related to the console of the application area game otherwise (0/2 = 3DS, 1 = Wii U, 3 = Switch) | |||
|- | |||
| 0x11 | |||
| 0x07 | |||
| Padding | |||
|- | |||
| 0x18 | |||
| 0x28 | |||
| Reserved | |||
|} | |||
==RegisterInfo== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x00 | |||
| 0x60 | |||
| [[Mii_Maker#Mii_QR_Code_format|Exported Mii Data]] (minus the AES-CCM used in the linked format) | |||
|- | |||
| 0x60 | |||
| 0x16 | |||
| Amiibo Name (NUL-Terminated) | |||
|- | |||
| 0x76 | |||
| 0x01 | |||
| Flags (bit0 = amiibo initialized, bit1 = has application area) | |||
|- | |||
| 0x77 | |||
| 0x01 | |||
| Font Region | |||
|- | |||
| 0x78 | |||
| 0x04 | |||
| Creation [[#Date|Date]] | |||
|- | |||
| 0x7C | |||
| 0x2C | |||
| Reserved | |||
|} | |||
This data originates from the [[Amiibo]] settings data stored under the encrypted NFC data. | |||
==CommonInfo== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x00 | |||
| 0x04 | |||
| Last Write [[#Date|Date]] | |||
|- | |||
| 0x04 | |||
| 0x02 | |||
| Write Counter | |||
|- | |||
| 0x06 | |||
| 0x02 | |||
| Character ID | |||
|- | |||
| 0x08 | |||
| 0x01 | |||
| Character Variant | |||
|- | |||
| 0x09 | |||
| 0x01 | |||
| Amiibo Series | |||
|- | |||
| 0x0A | |||
| 0x02 | |||
| Model Number | |||
|- | |||
| 0x0C | |||
| 0x01 | |||
| Amiibo Type | |||
|- | |||
| 0x0D | |||
| 0x01 | |||
| Version | |||
|- | |||
| 0x0E | |||
| 0x02 | |||
| Application Area Size (hardcoded to 0xD8) | |||
|- | |||
| 0x10 | |||
| 0x30 | |||
| Reserved | |||
|} | |||
This data originates from the [[Amiibo]] NFC data. | |||
==ModelInfo== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x00 | |||
| 0x02 | |||
| Character ID | |||
|- | |||
| 0x02 | |||
| 0x01 | |||
| Character Variant | |||
|- | |||
| 0x03 | |||
| 0x01 | |||
| Amiibo Series | |||
|- | |||
| 0x04 | |||
| 0x02 | |||
| Model Number | |||
|- | |||
| 0x06 | |||
| 0x01 | |||
| Amiibo Type | |||
|- | |||
| 0x07 | |||
| 0x01 | |||
| Version | |||
|- | |||
| 0x08 | |||
| 0x2E | |||
| Reserved | |||
|} | |||
This data originates from the [[Amiibo]] NFC data. | |||
==Date== | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x00 | |||
| 0x02 | |||
| Year | |||
|- | |||
| 0x02 | |||
| 0x01 | |||
| Month | |||
|- | |||
| 0x03 | |||
| 0x01 | |||
| Day | |||
|} | |} | ||