From 462e0cdd80d5642152ca9de47a5f7df1752a69ad Mon Sep 17 00:00:00 2001 From: Jacobwasbeast Date: Sat, 9 Nov 2024 19:49:05 -0600 Subject: [PATCH 1/3] Added NickName to VirtualAmiiboFile There is currently no way to change it besides changing the nickname variable inside system/amiibo --- .../HOS/Services/Nfc/Nfp/NfpManager/INfp.cs | 3 +-- .../Nfc/Nfp/NfpManager/Types/VirtualAmiiboFile.cs | 1 + .../HOS/Services/Nfc/Nfp/VirtualAmiibo.cs | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs index 20f67a4ef..f168df1ed 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs @@ -688,8 +688,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp { RegisterInfo registerInfo = VirtualAmiibo.GetRegisterInfo( context.Device.System.TickSource, - context.Device.System.NfpDevices[i].AmiiboId, - context.Device.System.AccountManager.LastOpenedUser.Name); + context.Device.System.NfpDevices[i].AmiiboId); context.Memory.Write(outputPosition, registerInfo); diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/Types/VirtualAmiiboFile.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/Types/VirtualAmiiboFile.cs index 65d380979..e1db98e5f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/Types/VirtualAmiiboFile.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/Types/VirtualAmiiboFile.cs @@ -8,6 +8,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager public uint FileVersion { get; set; } public byte[] TagUuid { get; set; } public string AmiiboId { get; set; } + public string NickName { get; set; } public DateTime FirstWriteDate { get; set; } public DateTime LastWriteDate { get; set; } public ushort WriteCounter { get; set; } diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs index ba4a81e0e..471716f46 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs @@ -64,10 +64,14 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp }; } - public static RegisterInfo GetRegisterInfo(ITickSource tickSource, string amiiboId, string nickname) + public static RegisterInfo GetRegisterInfo(ITickSource tickSource, string amiiboId) { VirtualAmiiboFile amiiboFile = LoadAmiiboFile(amiiboId); - + string nickname = "Ryujinx"; + if (amiiboFile.NickName != null) + { + nickname = amiiboFile.NickName; + } UtilityImpl utilityImpl = new(tickSource); CharInfo charInfo = new(); @@ -85,7 +89,9 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp Reserved1 = new Array64(), Reserved2 = new Array58(), }; - "Ryujinx"u8.CopyTo(registerInfo.Nickname.AsSpan()); + //"Ryujinx"u8.CopyTo(registerInfo.Nickname.AsSpan()); + byte[] nicknameBytes = System.Text.Encoding.UTF8.GetBytes(nickname); + nicknameBytes.CopyTo(registerInfo.Nickname.AsSpan()); return registerInfo; } -- 2.47.1 From d3c06000666305127d2404761a41e58269dcb7a1 Mon Sep 17 00:00:00 2001 From: Jacobwasbeast Date: Sat, 9 Nov 2024 20:01:08 -0600 Subject: [PATCH 2/3] Oops accidently overwrote the amiibo owner name --- src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs | 3 ++- src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs index f168df1ed..20f67a4ef 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/NfpManager/INfp.cs @@ -688,7 +688,8 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp { RegisterInfo registerInfo = VirtualAmiibo.GetRegisterInfo( context.Device.System.TickSource, - context.Device.System.NfpDevices[i].AmiiboId); + context.Device.System.NfpDevices[i].AmiiboId, + context.Device.System.AccountManager.LastOpenedUser.Name); context.Memory.Write(outputPosition, registerInfo); diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs index 471716f46..bbe2ca81f 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs @@ -64,7 +64,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp }; } - public static RegisterInfo GetRegisterInfo(ITickSource tickSource, string amiiboId) + public static RegisterInfo GetRegisterInfo(ITickSource tickSource, string amiiboId, string userName) { VirtualAmiiboFile amiiboFile = LoadAmiiboFile(amiiboId); string nickname = "Ryujinx"; @@ -77,7 +77,8 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp charInfo.SetFromStoreData(StoreData.BuildDefault(utilityImpl, 0)); - charInfo.Nickname = Nickname.FromString(nickname); + // This is the player's name + charInfo.Nickname = Nickname.FromString(userName); RegisterInfo registerInfo = new() { @@ -89,7 +90,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp Reserved1 = new Array64(), Reserved2 = new Array58(), }; - //"Ryujinx"u8.CopyTo(registerInfo.Nickname.AsSpan()); + // This is the amiibo's name byte[] nicknameBytes = System.Text.Encoding.UTF8.GetBytes(nickname); nicknameBytes.CopyTo(registerInfo.Nickname.AsSpan()); -- 2.47.1 From 721f304da52a9622ba2a3dd0b6ba042051ecd077 Mon Sep 17 00:00:00 2001 From: Jacobwasbeast Date: Sat, 9 Nov 2024 20:25:35 -0600 Subject: [PATCH 3/3] Simplify nickname assignment --- src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs index bbe2ca81f..7ce749d1a 100644 --- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs +++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs @@ -67,11 +67,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp public static RegisterInfo GetRegisterInfo(ITickSource tickSource, string amiiboId, string userName) { VirtualAmiiboFile amiiboFile = LoadAmiiboFile(amiiboId); - string nickname = "Ryujinx"; - if (amiiboFile.NickName != null) - { - nickname = amiiboFile.NickName; - } + string nickname = amiiboFile.NickName ?? "Ryujinx"; UtilityImpl utilityImpl = new(tickSource); CharInfo charInfo = new(); -- 2.47.1