Difference between revisions of "NFC services"
Line 50: | Line 50: | ||
| 4 || StopDetection | | 4 || StopDetection | ||
|- | |- | ||
− | | 5 || Read | + | | 5 || [[#ReadMifare|Read]] |
|- | |- | ||
− | | 6 || Write | + | | 6 || [[#WriteMifare|Write]] |
|- | |- | ||
| 7 || GetTagInfo | | 7 || GetTagInfo | ||
Line 120: | Line 120: | ||
| 412 || [4.0.0+] AttachDeactivateEvent | | 412 || [4.0.0+] AttachDeactivateEvent | ||
|- | |- | ||
− | | 1000 || [4.0.0+] ReadMifare | + | | 1000 || [4.0.0+] [[#ReadMifare]] |
|- | |- | ||
− | | 1001 || [4.0.0+] WriteMifare | + | | 1001 || [4.0.0+] [[#WriteMifare]] |
|- | |- | ||
| 1300 || [4.0.0+] [[#SendCommandByPassThrough]] | | 1300 || [4.0.0+] [[#SendCommandByPassThrough]] | ||
Line 184: | Line 184: | ||
| 412 || [4.0.0+] AttachDeactivateEvent | | 412 || [4.0.0+] AttachDeactivateEvent | ||
|- | |- | ||
− | | 500 || [4.0.0+] SetNfcEnabled | + | | 500 || [4.0.0+] [[#SetNfcEnabled]] |
|- | |- | ||
− | | 510 || [7.0.0+] OutputTestWave | + | | 510 || [7.0.0+] [[#OutputTestWave]] |
|- | |- | ||
− | | 1000 || [4.0.0+] ReadMifare | + | | 1000 || [4.0.0+] [[#ReadMifare]] |
|- | |- | ||
− | | 1001 || [4.0.0+] WriteMifare | + | | 1001 || [4.0.0+] [[#WriteMifare]] |
|- | |- | ||
| 1300 || [4.0.0+] [[#SendCommandByPassThrough]] | | 1300 || [4.0.0+] [[#SendCommandByPassThrough]] | ||
Line 198: | Line 198: | ||
| 1302 || [4.0.0+] [[#ReleasePassThroughSession]] | | 1302 || [4.0.0+] [[#ReleasePassThroughSession]] | ||
|} | |} | ||
+ | |||
+ | == SetNfcEnabled == | ||
+ | Takes an input bool, no output. | ||
+ | |||
+ | == OutputTestWave == | ||
+ | Takes an input bool and a [[#TestWaveType]], no output. | ||
+ | |||
+ | == ReadMifare == | ||
+ | Takes an input [[#DeviceHandle]], a type-0x6 output buffer containing an array of [[#MifareReadBlockData]], a type-0x5 input buffer containing an array of [[#MifareReadBlockParameter]], no output. | ||
+ | |||
+ | sdknso passes the same user-specified array-count for both buffers. | ||
+ | |||
+ | == WriteMifare == | ||
+ | Takes an input [[#DeviceHandle]], a type-0x5 input buffer containing an array of [[#MifareWriteBlockParameter]], no output. | ||
== SendCommandByPassThrough == | == SendCommandByPassThrough == | ||
Line 476: | Line 490: | ||
= DeviceHandle = | = DeviceHandle = | ||
This is "nn::nfc::DeviceHandle". This is a 8-byte struct with 4-byte alignment. | This is "nn::nfc::DeviceHandle". This is a 8-byte struct with 4-byte alignment. | ||
+ | |||
+ | = TestWaveType = | ||
+ | This is u32 enum "nn::nfc::TestWaveType". | ||
+ | |||
+ | = MifareReadBlockData = | ||
+ | This is "nn::nfc::MifareReadBlockData". This is a 0x18-byte struct. | ||
+ | |||
+ | = MifareReadBlockParameter = | ||
+ | This is "nn::nfc::MifareReadBlockParameter". This is a 0x18-byte struct. | ||
+ | |||
+ | = MifareWriteBlockParameter = | ||
+ | This is "nn::nfc::MifareWriteBlockParameter". This is a 0x28-byte struct. | ||
= RomFS = | = RomFS = |
Revision as of 05:57, 27 November 2021
nfc:am
This is "nn::nfc::am::detail::IAmManager".
Cmd | Name |
---|---|
0 | CreateAmInterface |
IAm
This is "nn::nfc::am::detail::IAm".
Cmd | Name |
---|---|
0 | Initialize |
1 | Finalize |
2 | NotifyForegroundApplet |
nfc:mf:u
This is "nn::nfc::mifare::detail::IUserManager".
Cmd | Name |
---|---|
0 | CreateUserInterface |
IUser
This is "nn::nfc::mifare::detail::IUser".
Cmd | Name |
---|---|
0 | Initialize |
1 | Finalize |
2 | ListDevices |
3 | StartDetection |
4 | StopDetection |
5 | Read |
6 | Write |
7 | GetTagInfo |
8 | GetActivateEventHandle |
9 | GetDeactivateEventHandle |
10 | GetState |
11 | GetDeviceState |
12 | GetNpadId |
13 | [3.0.0+] GetAvailabilityChangeEventHandle |
nfc:user
This is "nn::nfc::detail::IUserManager".
Cmd | Name |
---|---|
0 | CreateUserInterface |
IUser
This is "nn::nfc::detail::IUser".
Cmd | Name |
---|---|
0 | InitializeOld |
1 | FinalizeOld |
2 | GetStateOld |
3 | IsNfcEnabledOld |
400 | [4.0.0+] Initialize |
401 | [4.0.0+] Finalize |
402 | [4.0.0+] GetState |
403 | [4.0.0+] IsNfcEnabled |
404 | [4.0.0+] ListDevices |
405 | [4.0.0+] GetDeviceState |
406 | [4.0.0+] GetNpadId |
407 | [4.0.0+] AttachAvailabilityChangeEvent |
408 | [4.0.0+] StartDetection |
409 | [4.0.0+] StopDetection |
410 | [4.0.0+] GetTagInfo |
411 | [4.0.0+] AttachActivateEvent |
412 | [4.0.0+] AttachDeactivateEvent |
1000 | [4.0.0+] #ReadMifare |
1001 | [4.0.0+] #WriteMifare |
1300 | [4.0.0+] #SendCommandByPassThrough |
1301 | [4.0.0+] #KeepPassThroughSession |
1302 | [4.0.0+] #ReleasePassThroughSession |
nfc:sys
This is "nn::nfc::detail::ISystemManager".
Cmd | Name |
---|---|
0 | CreateSystemInterface |
ISystem
This is "nn::nfc::detail::ISystem".
Cmd | Name |
---|---|
0 | Initialize |
1 | Finalize |
2 | GetStateOld |
3 | IsNfcEnabledOld |
100 | SetNfcEnabledOld |
400 | [4.0.0+] InitializeSystem |
401 | [4.0.0+] FinalizeSystem |
402 | [4.0.0+] GetState |
403 | [4.0.0+] IsNfcEnabled |
404 | [4.0.0+] ListDevices |
405 | [4.0.0+] GetDeviceState |
406 | [4.0.0+] GetNpadId |
407 | [4.0.0+] AttachAvailabilityChangeEvent |
408 | [4.0.0+] StartDetection |
409 | [4.0.0+] StopDetection |
410 | [4.0.0+] GetTagInfo |
411 | [4.0.0+] AttachActivateEvent |
412 | [4.0.0+] AttachDeactivateEvent |
500 | [4.0.0+] #SetNfcEnabled |
510 | [7.0.0+] #OutputTestWave |
1000 | [4.0.0+] #ReadMifare |
1001 | [4.0.0+] #WriteMifare |
1300 | [4.0.0+] #SendCommandByPassThrough |
1301 | [4.0.0+] #KeepPassThroughSession |
1302 | [4.0.0+] #ReleasePassThroughSession |
SetNfcEnabled
Takes an input bool, no output.
OutputTestWave
Takes an input bool and a #TestWaveType, no output.
ReadMifare
Takes an input #DeviceHandle, a type-0x6 output buffer containing an array of #MifareReadBlockData, a type-0x5 input buffer containing an array of #MifareReadBlockParameter, no output.
sdknso passes the same user-specified array-count for both buffers.
WriteMifare
Takes an input #DeviceHandle, a type-0x5 input buffer containing an array of #MifareWriteBlockParameter, no output.
SendCommandByPassThrough
Takes an input #DeviceHandle, a nn::TimeSpan, a type-0x6 output buffer, a type-0x5 input buffer, returns an output u32.
sdknso copies the output u32 into an u64.
KeepPassThroughSession
Takes an input #DeviceHandle, no output.
ReleasePassThroughSession
Takes an input #DeviceHandle, no output.
nfp:user
This is "nn::nfp::detail::IUserManager".
Cmd | Name |
---|---|
0 | CreateUserInterface |
IUser
This is "nn::nfp::detail::IUser".
Cmd | Name |
---|---|
0 | Initialize |
1 | Finalize |
2 | ListDevices |
3 | StartDetection |
4 | StopDetection |
5 | Mount |
6 | Unmount |
7 | OpenApplicationArea |
8 | GetApplicationArea |
9 | SetApplicationArea |
10 | Flush |
11 | Restore |
12 | CreateApplicationArea |
13 | GetTagInfo |
14 | GetRegisterInfo |
15 | GetCommonInfo |
16 | GetModelInfo |
17 | AttachActivateEvent |
18 | AttachDeactivateEvent |
19 | GetState |
20 | GetDeviceState |
21 | GetNpadId |
22 | GetApplicationAreaSize |
23 | [3.0.0+] AttachAvailabilityChangeEvent |
24 | [3.0.0+] RecreateApplicationArea |
nfp:dbg
This is "nn::nfp::detail::IDebugManager".
Cmd | Name |
---|---|
0 | CreateDebugInterface |
IDebug
This is "nn::nfp::detail::IDebug".
Cmd | Name |
---|---|
0 | InitializeDebug |
1 | FinalizeDebug |
2 | ListDevices |
3 | StartDetection |
4 | StopDetection |
5 | Mount |
6 | Unmount |
7 | OpenApplicationArea |
8 | GetApplicationArea |
9 | SetApplicationArea |
10 | Flush |
11 | Restore |
12 | CreateApplicationArea |
13 | GetTagInfo |
14 | GetRegisterInfo |
15 | GetCommonInfo |
16 | GetModelInfo |
17 | AttachActivateEvent |
18 | AttachDeactivateEvent |
19 | GetState |
20 | GetDeviceState |
21 | GetNpadId |
22 | GetApplicationArea2 |
23 | [3.0.0+] AttachAvailabilityChangeEvent |
24 | [3.0.0+] RecreateApplicationArea |
100 | Format |
101 | GetAdminInfo |
102 | GetRegisterInfo |
103 | SetRegisterInfo |
104 | DeleteRegisterInfo |
105 | DeleteApplicationArea |
106 | ExistsApplicationArea |
200 | GetAll |
201 | SetAll |
202 | FlushDebug |
203 | BreakTag |
204 | ReadBackupData |
205 | WriteBackupData |
206 | WriteNtf |
300 | [3.0.0-3.0.2] |
301 | [3.0.0-3.0.2] |
302 | [3.0.0-3.0.2] |
303 | [3.0.0-3.0.2] |
304 | [3.0.0-3.0.2] |
305 | [3.0.0-3.0.2] |
306 | [3.0.0-3.0.2] |
307 | [3.0.0-3.0.2] |
308 | [3.0.0-3.0.2] |
309 | [3.0.0-3.0.2] |
310 | [3.0.0-3.0.2] |
311 | [3.0.0-3.0.2] |
312 | [3.0.0-3.0.2] |
313 | [3.0.0-3.0.2] |
314 | [3.0.0-3.0.2] |
nfp:sys
This is "nn::nfp::detail::ISystemManager".
Cmd | Name |
---|---|
0 | CreateSystemInterface |
ISystem
This is "nn::nfp::detail::ISystem".
Cmd | Name |
---|---|
0 | InitializeSystem |
1 | FinalizeSystem |
2 | ListDevices |
3 | StartDetection |
4 | StopDetection |
5 | Mount |
6 | Unmount |
10 | Flush |
11 | Restore |
13 | GetTagInfo |
14 | GetRegisterInfo |
15 | GetCommonInfo |
16 | GetModelInfo |
17 | AttachActivateEvent |
18 | AttachDeactivateEvent |
19 | GetState |
20 | GetDeviceState |
21 | GetNpadId |
23 | [3.0.0+] AttachAvailabilityChangeEvent |
100 | Format |
101 | GetAdminInfo |
102 | GetRegisterInfo |
103 | SetRegisterInfo |
104 | DeleteRegisterInfo |
105 | DeleteApplicationArea |
106 | ExistsApplicationArea |
DeviceHandle
This is "nn::nfc::DeviceHandle". This is a 8-byte struct with 4-byte alignment.
TestWaveType
This is u32 enum "nn::nfc::TestWaveType".
MifareReadBlockData
This is "nn::nfc::MifareReadBlockData". This is a 0x18-byte struct.
MifareReadBlockParameter
This is "nn::nfc::MifareReadBlockParameter". This is a 0x18-byte struct.
MifareWriteBlockParameter
This is "nn::nfc::MifareWriteBlockParameter". This is a 0x28-byte struct.
RomFS
[9.0.0+] The nfc-sysmodule RomFS contains:
ST21NFCD_01_05_6811.bin
These are firmware files for the NFC IC inside Switch Lite units.
Application IDs
Application IDs (also referenced as "access_id" in official software) are game-unique u32s used to access the amiibo 0xd8-big application area.
Game | AppID |
---|---|
Super Smash Bros. Ultimate | 0x34f80200 |