diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 1fd8a6c2cf..2749213037 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -2066,9 +2066,9 @@ namespace BizHawk.Client.EmuHawk private void GBCoreSettingsMenuItem_Click(object sender, EventArgs e) { - if (Global.Emulator is Gameboy) + if (Global.Emulator is Gameboy gb) { - GBPrefs.DoGBPrefsDialog(this); + GBPrefs.DoGBPrefsDialog(this, gb); } else // SameBoy { @@ -2340,7 +2340,10 @@ namespace BizHawk.Client.EmuHawk private void DgbSettingsMenuItem_Click(object sender, EventArgs e) { - DGBPrefs.DoDGBPrefsDialog(this); + if (Emulator is GambatteLink gambatte) + { + DGBPrefs.DoDGBPrefsDialog(this, gambatte); + } } private void DgbHawkSettingsMenuItem_Click(object sender, EventArgs e) diff --git a/BizHawk.Client.EmuHawk/config/GB/DGBPrefs.cs b/BizHawk.Client.EmuHawk/config/GB/DGBPrefs.cs index 3279dd3e17..7c025b9962 100644 --- a/BizHawk.Client.EmuHawk/config/GB/DGBPrefs.cs +++ b/BizHawk.Client.EmuHawk/config/GB/DGBPrefs.cs @@ -29,9 +29,8 @@ namespace BizHawk.Client.EmuHawk private bool SyncSettingsChanged => gbPrefControl1.SyncSettingsChanged || gbPrefControl2.SyncSettingsChanged; - public static void DoDGBPrefsDialog(IWin32Window owner) + public static void DoDGBPrefsDialog(MainForm mainForm, GambatteLink gambatte) { - var gambatte = (GambatteLink)Global.Emulator; var s = gambatte.GetSettings(); var ss = gambatte.GetSyncSettings(); @@ -42,13 +41,13 @@ namespace BizHawk.Client.EmuHawk dlg.gbPrefControl1.ColorGameBoy = emu.IsCGBMode(false); dlg.gbPrefControl2.ColorGameBoy = emu.IsCGBMode(true); - if (dlg.ShowDialog(owner) == DialogResult.OK) + if (dlg.ShowDialog(mainForm) == DialogResult.OK) { dlg.GetSettings(out s, out ss); gambatte.PutSettings(s); if (dlg.SyncSettingsChanged) { - GlobalWin.MainForm.PutCoreSyncSettings(ss); + mainForm.PutCoreSyncSettings(ss); } } } diff --git a/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs b/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs index 3f619900c6..9020e4501e 100644 --- a/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs +++ b/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs @@ -1,7 +1,5 @@ using System.Windows.Forms; - using BizHawk.Emulation.Cores.Nintendo.Gameboy; -using BizHawk.Client.Common; namespace BizHawk.Client.EmuHawk { @@ -12,22 +10,21 @@ namespace BizHawk.Client.EmuHawk InitializeComponent(); } - public static void DoGBPrefsDialog(IWin32Window owner) + public static void DoGBPrefsDialog(MainForm mainForm, Gameboy gb) { - var gb = (Gameboy)Global.Emulator; var s = gb.GetSettings(); var ss = gb.GetSyncSettings(); using var dlg = new GBPrefs(); dlg.gbPrefControl1.PutSettings(s, ss); dlg.gbPrefControl1.ColorGameBoy = gb.IsCGBMode(); - if (dlg.ShowDialog(owner) == DialogResult.OK) + if (dlg.ShowDialog(mainForm) == DialogResult.OK) { dlg.gbPrefControl1.GetSettings(out s, out ss); gb.PutSettings(s); if (dlg.gbPrefControl1.SyncSettingsChanged) { - GlobalWin.MainForm.PutCoreSyncSettings(ss); + mainForm.PutCoreSyncSettings(ss); } } }