Changes

Jump to navigation Jump to search
2,609 bytes added ,  07:55, 5 August 2017
→‎NFC management service "nfc:m": Added information about 0x402 coommand in nfc:m.
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.
A total of 6 sessions Only 1 session can be open simultaneously for all of these services combined. Commands for each service are handled by the main-thread.
=NFC services=
| void
| s32 result, u32 unknownA[16]
| Output seems to be a struct. unknownA[2]'s value is the AppID of the Amiibo.
|-
| 0x04030000
==NFC development service "nfc:dev"==
This service {| 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(or at least some of the command(s)).
Unlike the New3DS NFC-module, at least some of these commands are stubbed in the Old3DS NFC-module(only returns an error).
==NFC service "nfc:p"==
{| class="wikitable" border="1"
|-
! Command header
! Available since system-version
! Description
|-
| 0x00010000
|
| Initialize
|-
| 0x00020000
|
| Shutdown
|-
| 0x00030080
|
| (unk0, unk1) ?
|-
| 0x00040000
|
| ?
|-
| 0x000500C2
|
| [[NFCP:SendTagCommand|SendTagCommand]]
|-
| 0x00060000
|
| GetTagInfo
|-
| 0x00070000
|
| GetTagState maybe? Writes an output value to cmdreply[2].
|-
| 0x00080000
|
| Writes a handle to cmdreply[3].
|-
| 0x00090000
|
| Writes a handle to cmdreply[3].
|-
| 0x000A0000
|
| 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].
|}
 
This service is used by the mint library-applet, starting with [[9.3.0-21]]. This service was added to the mint service-access-control list with [[9.0.0-20]].
The mint process is the only known eShop-related process using this service([[eShop]]-application and NIM-module don't use it). Presumably used Used for NFC card payments in JPN [[eShop]](the v16384 mint title is ''identical'' for USA/JPN besides programIDs in the NCCH header/exheader). JPN eShop game "Megami Meguri" uses these same JPN NFC cards. The only accessible NFC service is nfcu.
==NFC service "nfc:r"==
! Available since system-version
! Description
|-
| 0x00130102
|
| [[NFCS:SendTagCommand|SendTagCommand]]
|-
| 0x00230000
| 0x000B0000
|
| GetTagInRangeEvent(???)
| void
| s32 result, u32 unknownAcopy handle descriptor, u32 unknownBHandle event| amiibo applet ignores value unknownA'descriptor'. It doesn't even read it from the command buffer.
|-
| 0x000C0000
|
| GetTagOutOfRangeEvent(???)
| void
| s32 result, u32 unknownAcopy handle descriptor, u32 unknownBHandle event| amiibo applet also ignores value unknownA 'descriptor' for this command.
|-
| 0x000D0000
| u8 outval at cmdreply[2].
| ?
|-
| 0x001F0080
| [[10.0.0-27|10.0.0-X]]
| [[NFC:StartOtherTagScanning|StartOtherTagScanning]]
|
|
| Used by JPN eShop app "Megami Meguri".
|-
| 0x00200102
| [[10.0.0-27|10.0.0-X]]
| [[NFC:SendTagCommand|SendTagCommand]]
|
|
|
|-
| 0x00210000
| [[10.0.0-27|10.0.0-X]]
| ?
|
|
| 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
| [[10.0.0-27|10.0.0-X]]
| ?
|
|
| This can only be used when [[NFC:Initialize|initialized]] with type3, and when the [[NFC:GetTagState|TagState]] is 3.
|}
1

edit

Navigation menu