NFC services: Difference between revisions

XorTroll (talk | contribs)
Document some nfp IDebug commands and types
(4 intermediate revisions by 2 users not shown)
Line 695: Line 695:
= TestWaveType =
= TestWaveType =
This is u32 enum "nn::nfc::TestWaveType".
This is u32 enum "nn::nfc::TestWaveType".
= MifareKey =
This is a 0x10-byte struct.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x1 || MifareCommand
|-
| 0x1 || 0x1 || Unknown
|-
| 0x2 || 0x6 || Padding
|-
| 0x8 || 0x6 || Key data
|-
| 0xE || 0x2 || Padding
|}


= MifareReadBlockData =
= MifareReadBlockData =
This is "nn::nfc::MifareReadBlockData". This is a 0x18-byte struct.
This is "nn::nfc::MifareReadBlockData". This is a 0x18-byte struct.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x10 || Data
|-
| 0x10 || 0x1 || Block index
|-
| 0x11 || 0x7 || Padding
|}


= MifareReadBlockParameter =
= MifareReadBlockParameter =
This is "nn::nfc::MifareReadBlockParameter". This is a 0x18-byte struct.
This is "nn::nfc::MifareReadBlockParameter". This is a 0x18-byte struct.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x1 || Block index
|-
| 0x1 || 0x7 || Padding
|-
| 0x8 || 0x10 || [[#MifareKey]]
|}


= MifareWriteBlockParameter =
= MifareWriteBlockParameter =
This is "nn::nfc::MifareWriteBlockParameter". This is a 0x28-byte struct.
This is "nn::nfc::MifareWriteBlockParameter". This is a 0x28-byte struct.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x10 || Data
|-
| 0x10 || 0x1 || Block index
|-
| 0x11 || 0x7 || Padding
|-
| 0x18 || 0x10 || [[#MifareKey]]
|}


= State =
= State =
Line 805: Line 858:
| 0x58 || 0x4 || First write date (see [[#Date]])
| 0x58 || 0x4 || First write date (see [[#Date]])
|-
|-
| 0x5C || 0x29 || Amiibo name (NUL-terminated string)
| 0x5C || 0x29 || Amiibo name (NUL-terminated UTF-8 string)
|-
|-
| 0x85 || 0x1 || Unknown
| 0x85 || 0x1 || Font region
|-
|-
| 0x86 || 0x7A || Reserved
| 0x86 || 0x7A || Reserved
Line 898: Line 951:
= NfpData =
= NfpData =
This is "nn::nfp::NfpData". This is a 0x298-byte struct.
This is "nn::nfp::NfpData". This is a 0x298-byte struct.
{| class="wikitable" border="1"
|-
! Offset || Size || Description
|-
| 0x0 || 0x1 || Magic (Always 0xA5)
|-
| 0x1 || 0x1 || Reserved
|-
| 0x2 || 0x1 || Write counter
|-
| 0x3 || 0x1 || Reserved
|-
| 0x4 || 0x4 || Settings CRC32
|-
| 0x8 || 0x38 || Reserved
|-
| 0x40 || 0x40 || [[#CommonInfo]]
|-
| 0x80 || 0x5C || Mii char info V3 (see https://www.3dbrew.org/wiki/Mii#Mii_format)
|-
| 0xDC || 0x2 || Padding
|-
| 0xDE || 0x2 || Mii char info V3 CRC16
|-
| 0xE0 || 0x8 || Mii StoreDataExtension
|-
| 0xE8 || 0x4 || First write date (see [[#Date]])
|-
| 0xEC || 0xB * 2 || Amiibo name (NUL-terminated UTF-16 string)
|-
| 0x102 || 0x1 || Settings flags (bit4 = amiibo was initialized in console settings, bit5 = has application area)
|-
| 0x103 || 0x1 || Unknown, normally zero
|-
| 0x104 || 0x4 || Register Info CRC32
|-
| 0x108 || 0x4 * 5 || Unknown, normally zero
|-
| 0x11c || 0x64 || Reserved
|-
| 0x180 || 0x8 || Program ID (From the Wii U, 3DS or Switch title who created the application area)
|-
| 0x188 || 0x4 || [[#Access ID]]
|-
| 0x18c || 0x2 || Settings CRC32 change counter
|-
| 0x18e || 0x1 || Font region
|-
| 0x18f || 0x1 || Tag type, hardcoded to 0x2
|-
| 0x190 || 0x1 || Console type, (3DS = 0, Wiiu = 1, 3DSv2 = 2, switch = 3, not set = 0xFF)
|-
| 0x191 || 0x1 || (Original Program ID >> 0x24) & 0xF byte (Program ID has this byte swapped with console type)
|-
| 0x192 || 0x2E || Reserved
|-
| 0x1c0 || 0xd8 || Application area data
|}


= BreakType =
= BreakType =
Line 938: Line 1,050:
! Game || Access ID
! Game || Access ID
|-
|-
| Super Smash Bros. Ultimate || 0x34F80200
| Splatoon 2 || 0x10162B00
|-
|-
| Splatoon 2 || 0x10162B00
| Shovel Knight: Treasure Trove || 0x1016E100
|-
|-
| The Legend of Zelda: Breath of the Wild || 0x1019C800
| The Legend of Zelda: Breath of the Wild || 0x1019C800
|-
| Super Smash Bros. Ultimate || 0x34F80200
|-
| Splatoon 3 || 0x38600500
|-
|-
| The Legend of Zelda: Link's Awakening || 0x3B440400
| The Legend of Zelda: Link's Awakening || 0x3B440400