summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nfp
diff options
context:
space:
mode:
authorNarr the Reg <juangerman-13@hotmail.com>2023-03-15 08:39:11 +0100
committerNarr the Reg <juangerman-13@hotmail.com>2023-03-16 00:01:05 +0100
commit5031f5b8b07dcabf727cf5530f2e00c396de7ea0 (patch)
treebd52aef22b9f4675b75676ef4f1bf50419c997ce /src/core/hle/service/nfp
parentservice: nfp: Actually write correct crc (diff)
downloadyuzu-5031f5b8b07dcabf727cf5530f2e00c396de7ea0.tar
yuzu-5031f5b8b07dcabf727cf5530f2e00c396de7ea0.tar.gz
yuzu-5031f5b8b07dcabf727cf5530f2e00c396de7ea0.tar.bz2
yuzu-5031f5b8b07dcabf727cf5530f2e00c396de7ea0.tar.lz
yuzu-5031f5b8b07dcabf727cf5530f2e00c396de7ea0.tar.xz
yuzu-5031f5b8b07dcabf727cf5530f2e00c396de7ea0.tar.zst
yuzu-5031f5b8b07dcabf727cf5530f2e00c396de7ea0.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/nfp/amiibo_crypto.cpp2
-rw-r--r--src/core/hle/service/nfp/nfp_device.cpp10
-rw-r--r--src/core/hle/service/nfp/nfp_types.h6
3 files changed, 13 insertions, 5 deletions
diff --git a/src/core/hle/service/nfp/amiibo_crypto.cpp b/src/core/hle/service/nfp/amiibo_crypto.cpp
index 66773d26c..bba862fb2 100644
--- a/src/core/hle/service/nfp/amiibo_crypto.cpp
+++ b/src/core/hle/service/nfp/amiibo_crypto.cpp
@@ -88,6 +88,7 @@ NTAG215File NfcDataToEncodedData(const EncryptedNTAG215File& nfc_data) {
encoded_data.application_area_id = nfc_data.user_memory.application_area_id;
encoded_data.application_id_byte = nfc_data.user_memory.application_id_byte;
encoded_data.unknown = nfc_data.user_memory.unknown;
+ encoded_data.mii_extension = nfc_data.user_memory.mii_extension;
encoded_data.unknown2 = nfc_data.user_memory.unknown2;
encoded_data.register_info_crc = nfc_data.user_memory.register_info_crc;
encoded_data.application_area = nfc_data.user_memory.application_area;
@@ -122,6 +123,7 @@ EncryptedNTAG215File EncodedDataToNfcData(const NTAG215File& encoded_data) {
nfc_data.user_memory.application_area_id = encoded_data.application_area_id;
nfc_data.user_memory.application_id_byte = encoded_data.application_id_byte;
nfc_data.user_memory.unknown = encoded_data.unknown;
+ nfc_data.user_memory.mii_extension = encoded_data.mii_extension;
nfc_data.user_memory.unknown2 = encoded_data.unknown2;
nfc_data.user_memory.register_info_crc = encoded_data.register_info_crc;
nfc_data.user_memory.application_area = encoded_data.application_area;
diff --git a/src/core/hle/service/nfp/nfp_device.cpp b/src/core/hle/service/nfp/nfp_device.cpp
index 53bc56814..c5d8ceeff 100644
--- a/src/core/hle/service/nfp/nfp_device.cpp
+++ b/src/core/hle/service/nfp/nfp_device.cpp
@@ -471,6 +471,7 @@ Result NfpDevice::SetRegisterInfoPrivate(const AmiiboName& amiibo_name) {
}
Service::Mii::MiiManager manager;
+ const auto mii = manager.BuildDefault(0);
auto& settings = tag_data.settings;
if (tag_data.settings.settings.amiibo_initialized == 0) {
@@ -479,9 +480,10 @@ Result NfpDevice::SetRegisterInfoPrivate(const AmiiboName& amiibo_name) {
}
SetAmiiboName(settings, amiibo_name);
- tag_data.owner_mii = manager.ConvertCharInfoToV3(manager.BuildDefault(0));
+ tag_data.owner_mii = manager.BuildFromStoreData(mii);
+ tag_data.mii_extension = manager.SetFromStoreData(mii);
tag_data.unknown = 0;
- tag_data.unknown2[6] = 0;
+ tag_data.unknown2 = {};
settings.country_code_id = 0;
settings.settings.font_region.Assign(0);
settings.settings.amiibo_initialized.Assign(1);
@@ -840,7 +842,8 @@ void NfpDevice::UpdateRegisterInfoCrc() {
Mii::Ver3StoreData mii;
u8 application_id_byte;
u8 unknown;
- std::array<u32, 0x7> unknown2;
+ Mii::NfpStoreDataExtension mii_extension;
+ std::array<u32, 0x5> unknown2;
};
static_assert(sizeof(CrcData) == 0x7e, "CrcData is an invalid size");
#pragma pack(pop)
@@ -849,6 +852,7 @@ void NfpDevice::UpdateRegisterInfoCrc() {
.mii = tag_data.owner_mii,
.application_id_byte = tag_data.application_id_byte,
.unknown = tag_data.unknown,
+ .mii_extension = tag_data.mii_extension,
.unknown2 = tag_data.unknown2,
};
diff --git a/src/core/hle/service/nfp/nfp_types.h b/src/core/hle/service/nfp/nfp_types.h
index 5f4a5d7f9..b3599a513 100644
--- a/src/core/hle/service/nfp/nfp_types.h
+++ b/src/core/hle/service/nfp/nfp_types.h
@@ -259,7 +259,8 @@ struct EncryptedAmiiboFile {
u32_be application_area_id; // Encrypted Game id
u8 application_id_byte;
u8 unknown;
- std::array<u32, 0x7> unknown2;
+ Service::Mii::NfpStoreDataExtension mii_extension;
+ std::array<u32, 0x5> unknown2;
u32_be register_info_crc;
ApplicationArea application_area; // Encrypted Game data
};
@@ -280,7 +281,8 @@ struct NTAG215File {
u32_be application_area_id;
u8 application_id_byte;
u8 unknown;
- std::array<u32, 0x7> unknown2;
+ Service::Mii::NfpStoreDataExtension mii_extension;
+ std::array<u32, 0x5> unknown2;
u32_be register_info_crc;
ApplicationArea application_area; // Encrypted Game data
HashData hmac_tag; // Hash