NFC services: Difference between revisions

XorTroll (talk | contribs)
Document some nfp stuff
XorTroll (talk | contribs)
Document some nfp IDebug commands and types
Line 480: Line 480:
| 106 || [[#ExistsApplicationArea]]
| 106 || [[#ExistsApplicationArea]]
|-
|-
| 200 || GetAll
| 200 || [[#GetAll]]
|-
|-
| 201 || SetAll
| 201 || [[#SetAll]]
|-
|-
| 202 || FlushDebug
| 202 || [[#FlushDebug]]
|-
|-
| 203 || BreakTag
| 203 || [[#BreakTag]]
|-
|-
| 204 || ReadBackupData
| 204 || [[#ReadBackupData]]
|-
|-
| 205 || WriteBackupData
| 205 || [[#WriteBackupData]]
|-
|-
| 206 || [[#WriteNtf]]
| 206 || [[#WriteNtf]]
Line 524: Line 524:
| 314 || [3.0.0-3.0.2]
| 314 || [3.0.0-3.0.2]
|}
|}
==== GetAll ====
Takes an input [[#DeviceHandle]], a type-0x1A output buffer containing [[#NfpData]], no output.
==== SetAll ====
Takes an input [[#DeviceHandle]], a type-0x19 input buffer containing [[#NfpData]], no output.
==== FlushDebug ====
Takes an input [[#DeviceHandle]], no output.
==== BreakTag ====
Takes an input [[#DeviceHandle]], an input u32 [[#BreakType]], no output.
==== ReadBackupData ====
Takes an input [[#DeviceHandle]], a type-0x6 output buffer, and an output u32 (read_size).
==== WriteBackupData ====
Takes an input [[#DeviceHandle]], a type-0x5 input buffer, no output.
The buffer size must be less or equal than 0x1FBD20.


==== WriteNtf ====
==== WriteNtf ====
Takes an input [[#DeviceHandle]], an u32, a type-0x5 input buffer, no output.
Takes an input [[#DeviceHandle]], an input u32 [[#WriteType]], a type-0x5 input buffer, no output.


The input buffer size must match 0x2A0.
The input buffer size must match 0x2A0. This handles Amiibo crypto, etc.
 
This handles Amiibo crypto etc.


== Common ==
== Common ==
Line 538: Line 556:


=== Initialize* ===
=== Initialize* ===
Takes a PID, an [[AM_services|AppletResourceUserId]], an u64, a type-0x5 input buffer containing an array of [[#RequiredMcuVersionData]], no output.
Takes a PID, an [[AM_services|AppletResourceUserId]], an u64 placeholder for the PID, a type-0x5 input buffer containing an array of [[#RequiredMcuVersionData]], no output.
 
sdknso passes value 0 for the u64.


Internally this is mostly the same for each service, this differs depending on the service/cmd however.
Internally this is mostly the same for each service, this differs depending on the service/cmd however.
Line 563: Line 579:


=== Mount ===
=== Mount ===
Takes an input [[#DeviceHandle]], an input [[#ModelType]] and an input [[#MountTarget]], no output.
Takes an input [[#DeviceHandle]], an input u32 [[#ModelType]] and an input u32 [[#MountTarget]], no output.


=== Unmount ===
=== Unmount ===
Line 878: Line 894:
|-
|-
| 0x72 || 0x8E || Reserved
| 0x72 || 0x8E || Reserved
|}
= NfpData =
This is "nn::nfp::NfpData". This is a 0x298-byte struct.
= BreakType =
This is "nn::nfp::BreakType".
{| class="wikitable" border="1"
|-
! Value || Description
|-
| 0 || ?
|-
| 1 || ?
|-
| 2 || ?
|}
Value 0 is internally used in some places, aside for [[#BreakTag]] commands called externally.
= WriteType =
This is "nn::nfp::WriteType".
{| class="wikitable" border="1"
|-
! Value || Description
|-
| 0 || ?
|-
| 1 || ?
|}
|}