[Ryujinx.HLE] Address dotnet-format issues (#5380)

* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Restore a few unused methods and variables

* Silence dotnet format IDE0060 warnings

* Silence dotnet format IDE0052 warnings

* Address or silence dotnet format IDE1006 warnings

* Address dotnet format CA1816 warnings

* Address or silence dotnet format CA2208 warnings

* Address or silence dotnet format CA1806 and a few CA1854 warnings

* Address dotnet format CA2211 warnings

* Address dotnet format CA1822 warnings

* Address or silence dotnet format CA1069 warnings

* Make dotnet format succeed in style mode

* Address or silence dotnet format CA2211 warnings

* Address review comments

* Address dotnet format CA2208 warnings properly

* Make ProcessResult readonly

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

A few of them have been manually reverted and the corresponding warning was silenced

* Add previously silenced warnings back

I have no clue how these disappeared

* Revert formatting changes for while and for-loops

* Format if-blocks correctly

* Run dotnet format style after rebase

* Run dotnet format whitespace after rebase

* Run dotnet format style after rebase

* Run dotnet format analyzers after rebase

* Run dotnet format after rebase and remove unused usings

- analyzers
- style
- whitespace

* Disable 'prefer switch expression' rule

* Add comments to disabled warnings

* Fix a few disabled warnings

* Fix naming rule violation, Convert shader properties to auto-property and convert values to const

* Simplify properties and array initialization, Use const when possible, Remove trailing commas

* Start working on disabled warnings

* Fix and silence a few dotnet-format warnings again

* Run dotnet format after rebase

* Use using declaration instead of block syntax

* Address IDE0251 warnings

* Address a few disabled IDE0060 warnings

* Silence IDE0060 in .editorconfig

* Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas"

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* First dotnet format pass

* Fix naming rule violations

* Fix typo

* Add trailing commas, use targeted new and use array initializer

* Fix build issues

* Fix remaining build issues

* Remove SuppressMessage for CA1069 where possible

* Address dotnet format issues

* Address formatting issues

Co-authored-by: Ac_K <acoustik666@gmail.com>

* Add GetHashCode implementation for RenderingSurfaceInfo

* Explicitly silence CA1822 for every affected method in Syscall

* Address formatting issues in Demangler.cs

* Address review feedback

Co-authored-by: Ac_K <acoustik666@gmail.com>

* Revert marking service methods as static

* Next dotnet format pass

* Address review feedback

---------

Co-authored-by: Ac_K <acoustik666@gmail.com>
This commit is contained in:
TSRBerry
2023-07-16 19:31:14 +02:00
committed by GitHub
parent fec8291c17
commit 326749498b
1015 changed files with 8173 additions and 7615 deletions

View File

@@ -7,4 +7,4 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
internal partial class AmiiboJsonSerializerContext : JsonSerializerContext
{
}
}
}

View File

@@ -16,4 +16,4 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
return ResultCode.Success;
}
}
}
}

View File

@@ -16,4 +16,4 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
return ResultCode.Success;
}
}
}
}

View File

@@ -16,4 +16,4 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
return ResultCode.Success;
}
}
}
}

View File

@@ -18,8 +18,10 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
class INfp : IpcService
{
private ulong _appletResourceUserId;
private ulong _mcuVersionData;
#pragma warning disable IDE0052 // Remove unread private member
private ulong _appletResourceUserId;
private ulong _mcuVersionData;
#pragma warning restore IDE0052
private byte[] _mcuData;
private State _state = State.NonInitialized;
@@ -28,7 +30,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
private CancellationTokenSource _cancelTokenSource;
private NfpPermissionLevel _permissionLevel;
private readonly NfpPermissionLevel _permissionLevel;
public INfp(NfpPermissionLevel permissionLevel)
{
@@ -40,10 +42,10 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
public ResultCode Initialize(ServiceCtx context)
{
_appletResourceUserId = context.RequestData.ReadUInt64();
_mcuVersionData = context.RequestData.ReadUInt64();
_mcuVersionData = context.RequestData.ReadUInt64();
ulong inputPosition = context.Request.SendBuff[0].Position;
ulong inputSize = context.Request.SendBuff[0].Size;
ulong inputSize = context.Request.SendBuff[0].Size;
_mcuData = new byte[inputSize];
@@ -53,11 +55,11 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
// TODO: Handle this in a controller class directly.
// Every functions which use the Handle call nn::hid::system::GetXcdHandleForNpadWithNfc().
NfpDevice devicePlayer1 = new NfpDevice
NfpDevice devicePlayer1 = new()
{
NpadIdType = NpadIdType.Player1,
Handle = HidUtils.GetIndexFromNpadIdType(NpadIdType.Player1),
State = NfpDeviceState.Initialized
Handle = HidUtils.GetIndexFromNpadIdType(NpadIdType.Player1),
State = NfpDeviceState.Initialized,
};
context.Device.System.NfpDevices.Add(devicePlayer1);
@@ -75,10 +77,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
if (_state == State.Initialized)
{
if (_cancelTokenSource != null)
{
_cancelTokenSource.Cancel();
}
_cancelTokenSource?.Cancel();
// NOTE: All events are destroyed here.
context.Device.System.NfpDevices.Clear();
@@ -99,7 +98,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
}
ulong outputPosition = context.Request.RecvListBuff[0].Position;
ulong outputSize = context.Request.RecvListBuff[0].Size;
ulong outputSize = context.Request.RecvListBuff[0].Size;
if (context.Device.System.NfpDevices.Count == 0)
{
@@ -187,10 +186,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
return resultCode;
}
if (_cancelTokenSource != null)
{
_cancelTokenSource.Cancel();
}
_cancelTokenSource?.Cancel();
uint deviceHandle = (uint)context.RequestData.ReadUInt64();
@@ -218,9 +214,9 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
return resultCode;
}
uint deviceHandle = (uint)context.RequestData.ReadUInt64();
DeviceType deviceType = (DeviceType)context.RequestData.ReadUInt32();
MountTarget mountTarget = (MountTarget)context.RequestData.ReadUInt32();
uint deviceHandle = (uint)context.RequestData.ReadUInt64();
DeviceType deviceType = (DeviceType)context.RequestData.ReadUInt32();
MountTarget mountTarget = (MountTarget)context.RequestData.ReadUInt32();
if (deviceType != 0)
{
@@ -382,7 +378,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
}
ulong outputPosition = context.Request.ReceiveBuff[0].Position;
ulong outputSize = context.Request.ReceiveBuff[0].Size;
ulong outputSize = context.Request.ReceiveBuff[0].Size;
MemoryHelper.FillWithZeros(context.Memory, outputPosition, (int)outputSize);
@@ -450,7 +446,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
}
ulong inputPosition = context.Request.SendBuff[0].Position;
ulong inputSize = context.Request.SendBuff[0].Size;
ulong inputSize = context.Request.SendBuff[0].Size;
byte[] applicationArea = new byte[inputSize];
@@ -489,7 +485,9 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
// Flush(bytes<8, 4>)
public ResultCode Flush(ServiceCtx context)
{
#pragma warning disable IDE0059 // Remove unnecessary value assignment
uint deviceHandle = (uint)context.RequestData.ReadUInt64();
#pragma warning restore IDE0059
if (context.Device.System.NfpDevices.Count == 0)
{
@@ -529,7 +527,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
uint applicationAreaId = context.RequestData.ReadUInt32();
ulong inputPosition = context.Request.SendBuff[0].Position;
ulong inputSize = context.Request.SendBuff[0].Size;
ulong inputSize = context.Request.SendBuff[0].Size;
byte[] applicationArea = new byte[inputSize];
@@ -612,23 +610,23 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
if (context.Device.System.NfpDevices[i].State == NfpDeviceState.TagMounted || context.Device.System.NfpDevices[i].State == NfpDeviceState.TagFound)
{
byte[] Uuid = VirtualAmiibo.GenerateUuid(context.Device.System.NfpDevices[i].AmiiboId, context.Device.System.NfpDevices[i].UseRandomUuid);
byte[] uuid = VirtualAmiibo.GenerateUuid(context.Device.System.NfpDevices[i].AmiiboId, context.Device.System.NfpDevices[i].UseRandomUuid);
if (Uuid.Length > AmiiboConstants.UuidMaxLength)
if (uuid.Length > AmiiboConstants.UuidMaxLength)
{
throw new ArgumentOutOfRangeException();
throw new InvalidOperationException($"{nameof(uuid)} is too long: {uuid.Length}");
}
TagInfo tagInfo = new TagInfo
TagInfo tagInfo = new()
{
UuidLength = (byte)Uuid.Length,
Reserved1 = new Array21<byte>(),
Protocol = uint.MaxValue, // All Protocol
TagType = uint.MaxValue, // All Type
Reserved2 = new Array6<byte>()
UuidLength = (byte)uuid.Length,
Reserved1 = new Array21<byte>(),
Protocol = uint.MaxValue, // All Protocol
TagType = uint.MaxValue, // All Type
Reserved2 = new Array6<byte>(),
};
Uuid.CopyTo(tagInfo.Uuid.AsSpan());
uuid.CopyTo(tagInfo.Uuid.AsSpan());
context.Memory.Write(outputPosition, tagInfo);
@@ -811,17 +809,16 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
if (context.Device.System.NfpDevices[i].State == NfpDeviceState.TagMounted)
{
ModelInfo modelInfo = new ModelInfo
ModelInfo modelInfo = new()
{
Reserved = new Array57<byte>()
Reserved = new Array57<byte>(),
CharacterId = BinaryPrimitives.ReverseEndianness(ushort.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(0, 4), NumberStyles.HexNumber)),
CharacterVariant = byte.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(4, 2), NumberStyles.HexNumber),
Series = byte.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(12, 2), NumberStyles.HexNumber),
ModelNumber = ushort.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(8, 4), NumberStyles.HexNumber),
Type = byte.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(6, 2), NumberStyles.HexNumber),
};
modelInfo.CharacterId = BinaryPrimitives.ReverseEndianness(ushort.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(0, 4), NumberStyles.HexNumber));
modelInfo.CharacterVariant = byte.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(4, 2), NumberStyles.HexNumber);
modelInfo.Series = byte.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(12, 2), NumberStyles.HexNumber);
modelInfo.ModelNumber = ushort.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(8, 4), NumberStyles.HexNumber);
modelInfo.Type = byte.Parse(context.Device.System.NfpDevices[i].AmiiboId.AsSpan(6, 2), NumberStyles.HexNumber);
context.Memory.Write(outputPosition, modelInfo);
resultCode = ResultCode.Success;
@@ -912,7 +909,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
if (context.Device.System.NfpDevices[i].State > NfpDeviceState.Finalized)
{
throw new ArgumentOutOfRangeException();
throw new InvalidOperationException($"{nameof(context.Device.System.NfpDevices)} contains an invalid state for device {i}: {context.Device.System.NfpDevices[i].State}");
}
context.ResponseData.Write((uint)context.Device.System.NfpDevices[i].State);

View File

@@ -2,7 +2,7 @@
{
static class AmiiboConstants
{
public const int UuidMaxLength = 10;
public const int UuidMaxLength = 10;
public const int ApplicationAreaSize = 0xD8;
}
}
}

View File

@@ -6,12 +6,12 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager
[StructLayout(LayoutKind.Sequential, Size = 0x40)]
struct CommonInfo
{
public ushort LastWriteYear;
public byte LastWriteMonth;
public byte LastWriteDay;
public ushort WriteCounter;
public ushort Version;
public uint ApplicationAreaSize;
public ushort LastWriteYear;
public byte LastWriteMonth;
public byte LastWriteDay;
public ushort WriteCounter;
public ushort Version;
public uint ApplicationAreaSize;
public Array52<byte> Reserved;
}
}
}

View File

@@ -4,4 +4,4 @@
{
Amiibo
}
}
}

View File

@@ -6,11 +6,11 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager
[StructLayout(LayoutKind.Sequential, Size = 0x40)]
struct ModelInfo
{
public ushort CharacterId;
public byte CharacterVariant;
public byte Series;
public ushort ModelNumber;
public byte Type;
public ushort CharacterId;
public byte CharacterVariant;
public byte Series;
public ushort ModelNumber;
public byte Type;
public Array57<byte> Reserved;
}
}
}

View File

@@ -4,6 +4,6 @@
{
Rom = 1,
Ram = 2,
All = 3
All = 3,
}
}
}

View File

@@ -8,16 +8,16 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager
public KEvent ActivateEvent;
public KEvent DeactivateEvent;
public void SignalActivate() => ActivateEvent.ReadableEvent.Signal();
public void SignalActivate() => ActivateEvent.ReadableEvent.Signal();
public void SignalDeactivate() => DeactivateEvent.ReadableEvent.Signal();
public NfpDeviceState State = NfpDeviceState.Unavailable;
public PlayerIndex Handle;
public NpadIdType NpadIdType;
public NpadIdType NpadIdType;
public string AmiiboId;
public bool UseRandomUuid;
}
}
}

View File

@@ -2,12 +2,12 @@
{
enum NfpDeviceState
{
Initialized = 0,
Initialized = 0,
SearchingForTag = 1,
TagFound = 2,
TagRemoved = 3,
TagMounted = 4,
Unavailable = 5,
Finalized = 6
TagFound = 2,
TagRemoved = 3,
TagMounted = 4,
Unavailable = 5,
Finalized = 6,
}
}
}

View File

@@ -4,6 +4,6 @@
{
Debug,
User,
System
System,
}
}
}

View File

@@ -7,13 +7,13 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager
[StructLayout(LayoutKind.Sequential, Size = 0x100)]
struct RegisterInfo
{
public CharInfo MiiCharInfo;
public ushort FirstWriteYear;
public byte FirstWriteMonth;
public byte FirstWriteDay;
public CharInfo MiiCharInfo;
public ushort FirstWriteYear;
public byte FirstWriteMonth;
public byte FirstWriteDay;
public Array41<byte> Nickname;
public byte FontRegion;
public byte FontRegion;
public Array64<byte> Reserved1;
public Array58<byte> Reserved2;
}
}
}

View File

@@ -3,6 +3,6 @@
enum State
{
NonInitialized = 0,
Initialized = 1
Initialized = 1,
}
}
}

View File

@@ -7,10 +7,10 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager
struct TagInfo
{
public Array10<byte> Uuid;
public byte UuidLength;
public byte UuidLength;
public Array21<byte> Reserved1;
public uint Protocol;
public uint TagType;
public Array6<byte> Reserved2;
public uint Protocol;
public uint TagType;
public Array6<byte> Reserved2;
}
}

View File

@@ -5,18 +5,18 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager
{
struct VirtualAmiiboFile
{
public uint FileVersion { get; set; }
public byte[] TagUuid { get; set; }
public string AmiiboId { get; set; }
public uint FileVersion { get; set; }
public byte[] TagUuid { get; set; }
public string AmiiboId { get; set; }
public DateTime FirstWriteDate { get; set; }
public DateTime LastWriteDate { get; set; }
public ushort WriteCounter { get; set; }
public DateTime LastWriteDate { get; set; }
public ushort WriteCounter { get; set; }
public List<VirtualAmiiboApplicationArea> ApplicationAreas { get; set; }
}
struct VirtualAmiiboApplicationArea
{
public uint ApplicationAreaId { get; set; }
public byte[] ApplicationArea { get; set; }
public uint ApplicationAreaId { get; set; }
public byte[] ApplicationArea { get; set; }
}
}

View File

@@ -2,17 +2,17 @@
{
public enum ResultCode
{
ModuleId = 115,
ModuleId = 115,
ErrorCodeShift = 9,
Success = 0,
DeviceNotFound = (64 << ErrorCodeShift) | ModuleId,
WrongArgument = (65 << ErrorCodeShift) | ModuleId,
WrongDeviceState = (73 << ErrorCodeShift) | ModuleId,
NfcDisabled = (80 << ErrorCodeShift) | ModuleId,
TagNotFound = (97 << ErrorCodeShift) | ModuleId,
ApplicationAreaIsNull = (128 << ErrorCodeShift) | ModuleId,
ApplicationAreaAlreadyCreated = (168 << ErrorCodeShift) | ModuleId
DeviceNotFound = (64 << ErrorCodeShift) | ModuleId,
WrongArgument = (65 << ErrorCodeShift) | ModuleId,
WrongDeviceState = (73 << ErrorCodeShift) | ModuleId,
NfcDisabled = (80 << ErrorCodeShift) | ModuleId,
TagNotFound = (97 << ErrorCodeShift) | ModuleId,
ApplicationAreaIsNull = (128 << ErrorCodeShift) | ModuleId,
ApplicationAreaAlreadyCreated = (168 << ErrorCodeShift) | ModuleId,
}
}
}

View File

@@ -8,7 +8,6 @@ using Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
@@ -16,7 +15,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
private static uint _openedApplicationAreaId;
private static readonly AmiiboJsonSerializerContext SerializerContext = AmiiboJsonSerializerContext.Default;
private static readonly AmiiboJsonSerializerContext _serializerContext = AmiiboJsonSerializerContext.Default;
public static byte[] GenerateUuid(string amiiboId, bool useRandomUuid)
{
@@ -43,7 +42,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
Random.Shared.NextBytes(uuid);
uuid[3] = (byte)(0x88 ^ uuid[0] ^ uuid[1] ^ uuid[2]);
uuid[3] = (byte)(0x88 ^ uuid[0] ^ uuid[1] ^ uuid[2]);
uuid[8] = (byte)(uuid[3] ^ uuid[4] ^ uuid[5] ^ uuid[6]);
return uuid;
@@ -55,13 +54,13 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
return new CommonInfo()
{
LastWriteYear = (ushort)amiiboFile.LastWriteDate.Year,
LastWriteMonth = (byte)amiiboFile.LastWriteDate.Month,
LastWriteDay = (byte)amiiboFile.LastWriteDate.Day,
WriteCounter = amiiboFile.WriteCounter,
Version = 1,
LastWriteYear = (ushort)amiiboFile.LastWriteDate.Year,
LastWriteMonth = (byte)amiiboFile.LastWriteDate.Month,
LastWriteDay = (byte)amiiboFile.LastWriteDate.Day,
WriteCounter = amiiboFile.WriteCounter,
Version = 1,
ApplicationAreaSize = AmiiboConstants.ApplicationAreaSize,
Reserved = new Array52<byte>()
Reserved = new Array52<byte>(),
};
}
@@ -69,22 +68,22 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
{
VirtualAmiiboFile amiiboFile = LoadAmiiboFile(amiiboId);
UtilityImpl utilityImpl = new UtilityImpl(tickSource);
CharInfo charInfo = new CharInfo();
UtilityImpl utilityImpl = new(tickSource);
CharInfo charInfo = new();
charInfo.SetFromStoreData(StoreData.BuildDefault(utilityImpl, 0));
charInfo.Nickname = Nickname.FromString(nickname);
RegisterInfo registerInfo = new RegisterInfo()
RegisterInfo registerInfo = new()
{
MiiCharInfo = charInfo,
FirstWriteYear = (ushort)amiiboFile.FirstWriteDate.Year,
MiiCharInfo = charInfo,
FirstWriteYear = (ushort)amiiboFile.FirstWriteDate.Year,
FirstWriteMonth = (byte)amiiboFile.FirstWriteDate.Month,
FirstWriteDay = (byte)amiiboFile.FirstWriteDate.Day,
FontRegion = 0,
Reserved1 = new Array64<byte>(),
Reserved2 = new Array58<byte>()
FirstWriteDay = (byte)amiiboFile.FirstWriteDate.Day,
FontRegion = 0,
Reserved1 = new Array64<byte>(),
Reserved2 = new Array58<byte>(),
};
"Ryujinx"u8.CopyTo(registerInfo.Nickname.AsSpan());
@@ -132,7 +131,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
virtualAmiiboFile.ApplicationAreas.Add(new VirtualAmiiboApplicationArea()
{
ApplicationAreaId = applicationAreaId,
ApplicationArea = applicationAreaData
ApplicationArea = applicationAreaData,
});
SaveAmiiboFile(virtualAmiiboFile);
@@ -153,7 +152,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
virtualAmiiboFile.ApplicationAreas[i] = new VirtualAmiiboApplicationArea()
{
ApplicationAreaId = _openedApplicationAreaId,
ApplicationArea = applicationAreaData
ApplicationArea = applicationAreaData,
};
break;
@@ -174,19 +173,19 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
if (File.Exists(filePath))
{
virtualAmiiboFile = JsonHelper.DeserializeFromFile(filePath, SerializerContext.VirtualAmiiboFile);
virtualAmiiboFile = JsonHelper.DeserializeFromFile(filePath, _serializerContext.VirtualAmiiboFile);
}
else
{
virtualAmiiboFile = new VirtualAmiiboFile()
{
FileVersion = 0,
TagUuid = Array.Empty<byte>(),
AmiiboId = amiiboId,
FirstWriteDate = DateTime.Now,
LastWriteDate = DateTime.Now,
WriteCounter = 0,
ApplicationAreas = new List<VirtualAmiiboApplicationArea>()
FileVersion = 0,
TagUuid = Array.Empty<byte>(),
AmiiboId = amiiboId,
FirstWriteDate = DateTime.Now,
LastWriteDate = DateTime.Now,
WriteCounter = 0,
ApplicationAreas = new List<VirtualAmiiboApplicationArea>(),
};
SaveAmiiboFile(virtualAmiiboFile);
@@ -198,7 +197,7 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
private static void SaveAmiiboFile(VirtualAmiiboFile virtualAmiiboFile)
{
string filePath = Path.Join(AppDataManager.BaseDirPath, "system", "amiibo", $"{virtualAmiiboFile.AmiiboId}.json");
JsonHelper.SerializeToFile(filePath, virtualAmiiboFile, SerializerContext.VirtualAmiiboFile);
JsonHelper.SerializeToFile(filePath, virtualAmiiboFile, _serializerContext.VirtualAmiiboFile);
}
}
}