diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.ISettable.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.ISettable.cs index 921fac2947..dcdffd47cc 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.ISettable.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64.ISettable.cs @@ -8,7 +8,7 @@ public partial class N64 : ISettable { public N64Settings GetSettings() { - return _settings.Clone(); + return _settings with { }; } public N64SyncSettings GetSyncSettings() @@ -18,8 +18,9 @@ public N64SyncSettings GetSyncSettings() public PutSettingsDirtyBits PutSettings(N64Settings o) { + bool changed = o != _settings; _settings = o; - return PutSettingsDirtyBits.RebootCore; + return changed ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None; } public PutSettingsDirtyBits PutSyncSettings(N64SyncSettings o) diff --git a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64Settings.cs b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64Settings.cs index 1d24e02535..fde2e8aa41 100644 --- a/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64Settings.cs +++ b/src/BizHawk.Emulation.Cores/Consoles/Nintendo/N64/N64Settings.cs @@ -1,21 +1,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64 { - public class N64Settings + public record N64Settings { public int VideoSizeX = 320; public int VideoSizeY = 240; public bool UseMupenStyleLag { get; set; } - - public N64Settings Clone() - { - return new N64Settings - { - VideoSizeX = VideoSizeX, - VideoSizeY = VideoSizeY, - - UseMupenStyleLag = UseMupenStyleLag - }; - } } }