From c68dd703dc81cbe8fdcd79e3f4aeaea993672003 Mon Sep 17 00:00:00 2001 From: Morilli <35152647+Morilli@users.noreply.github.com> Date: Fri, 18 Oct 2024 13:28:25 +0200 Subject: [PATCH] implement dirty checking for N64 settings --- .../Consoles/Nintendo/N64/N64.ISettable.cs | 5 +++-- .../Consoles/Nintendo/N64/N64Settings.cs | 13 +------------ 2 files changed, 4 insertions(+), 14 deletions(-) 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 921fac29474..dcdffd47cc2 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 1d24e025355..fde2e8aa412 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 - }; - } } }