diff --git a/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs b/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs
index e4a41ee3ed..137bc6d63b 100644
--- a/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/IMainFormForConfig.cs
@@ -1,3 +1,5 @@
+using System;
+
using BizHawk.Client.Common;
using BizHawk.Emulation.Common;
@@ -8,8 +10,12 @@ namespace BizHawk.Client.EmuHawk
/// only referenced from
IEmulator Emulator { get; }
- void PutCoreSettings(object o);
+ /// loaded emulator is not instance of
+ SettingsAdapter GetSettingsAdapterForLoadedCore()
+ where T : IEmulator;
- void PutCoreSyncSettings(object o);
+ void PutCoreSettings(object o, SettingsAdapter settable);
+
+ void PutCoreSyncSettings(object o, SettingsAdapter settable);
}
}
diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Debug.cs b/src/BizHawk.Client.EmuHawk/MainForm.Debug.cs
index 3c9c158a1a..839d87f6df 100644
--- a/src/BizHawk.Client.EmuHawk/MainForm.Debug.cs
+++ b/src/BizHawk.Client.EmuHawk/MainForm.Debug.cs
@@ -152,7 +152,8 @@ namespace BizHawk.Client.EmuHawk
var ss = ((N64) Emulator!).GetSyncSettings();
var glidenSS = ss.GLideN64Plugin;
foreach (var pi in props) pi.SetValue(obj: glidenSS, value: RandomElem(propDict[pi], rng));
- ((MainForm) MainForm).PutCoreSyncSettings(ss);
+ var mf = (MainForm) MainForm;
+ mf.PutCoreSyncSettings(ss, mf.GetSettingsAdapterForLoadedCore());
}
SzButtonEx btnLightFuzz = new() { Size = new(200, 23), Text = "--> randomise some props" };
btnLightFuzz.Click += (_, _) => Fuzz(limit: true);
diff --git a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs
index f66c665cea..7ba6562d69 100644
--- a/src/BizHawk.Client.EmuHawk/MainForm.Events.cs
+++ b/src/BizHawk.Client.EmuHawk/MainForm.Events.cs
@@ -1732,7 +1732,7 @@ namespace BizHawk.Client.EmuHawk
{
var ss = coleco.GetSyncSettings();
ss.SkipBiosIntro ^= true;
- PutCoreSyncSettings(ss);
+ PutCoreSyncSettings(ss, GetSettingsAdapterForLoadedCore());
}
}
@@ -1742,7 +1742,7 @@ namespace BizHawk.Client.EmuHawk
{
var ss = coleco.GetSyncSettings();
ss.UseSGM ^= true;
- PutCoreSyncSettings(ss);
+ PutCoreSyncSettings(ss, GetSettingsAdapterForLoadedCore());
}
}
diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs
index 38b409f33a..0c7ae6e64e 100644
--- a/src/BizHawk.Client.EmuHawk/MainForm.cs
+++ b/src/BizHawk.Client.EmuHawk/MainForm.cs
@@ -2411,9 +2411,8 @@ namespace BizHawk.Client.EmuHawk
///
/// send core settings to emu, setting reboot flag if needed
///
- public void PutCoreSettings(object o)
+ public void PutCoreSettings(object o, SettingsAdapter settable)
{
- var settable = new SettingsAdapter(Emulator);
if (!settable.HasSettings)
return;
var dirty = settable.PutSettings(o);
@@ -2427,9 +2426,8 @@ namespace BizHawk.Client.EmuHawk
///
/// send core sync settings to emu, setting reboot flag if needed
///
- public void PutCoreSyncSettings(object o)
+ public void PutCoreSyncSettings(object o, SettingsAdapter settable)
{
- var settable = new SettingsAdapter(Emulator);
if (MovieSession.Movie.IsActive())
{
AddOnScreenMessage("Attempt to change sync-relevant settings while recording BLOCKED.");
@@ -2444,6 +2442,16 @@ namespace BizHawk.Client.EmuHawk
}
}
+ public SettingsAdapter GetSettingsAdapterForLoadedCore()
+ where T : IEmulator
+ {
+ if (Emulator is not T) throw new InvalidOperationException();
+ return GetSettingsAdapterForLoadedCoreUntyped();
+ }
+
+ public SettingsAdapter GetSettingsAdapterForLoadedCoreUntyped()
+ => new(Emulator);
+
private void SaveConfig(string path = "")
{
if (Config.SaveWindowPosition)
diff --git a/src/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs b/src/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs
index 84a6a75bf5..846fb2be2b 100644
--- a/src/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/A7800/A7800ControllerSettings.cs
@@ -42,7 +42,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.Port1 = Port1ComboBox.SelectedItem.ToString();
_syncSettings.Port2 = Port2ComboBox.SelectedItem.ToString();
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/A7800/A7800FilterSettings.cs b/src/BizHawk.Client.EmuHawk/config/A7800/A7800FilterSettings.cs
index 73e344322c..ef4b606b98 100644
--- a/src/BizHawk.Client.EmuHawk/config/A7800/A7800FilterSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/A7800/A7800FilterSettings.cs
@@ -39,7 +39,7 @@ namespace BizHawk.Client.EmuHawk
if (changed)
{
_syncSettings.Filter = Port1ComboBox.SelectedItem.ToString();
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCAudioSettings.cs b/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCAudioSettings.cs
index 910cc66da6..68ed052947 100644
--- a/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCAudioSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCAudioSettings.cs
@@ -51,7 +51,7 @@ namespace BizHawk.Client.EmuHawk
_settings.TapeVolume = tapeVolumetrackBar.Value;
_settings.AYVolume = ayVolumetrackBar.Value;
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCCoreEmulationSettings.cs b/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCCoreEmulationSettings.cs
index ab9db646e2..efe9ba34bc 100644
--- a/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCCoreEmulationSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCCoreEmulationSettings.cs
@@ -59,7 +59,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.DeterministicEmulation = determEmucheckBox1.Checked;
_syncSettings.AutoStartStopTape = autoLoadcheckBox1.Checked;
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCNonSyncSettings.cs b/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCNonSyncSettings.cs
index c948c9e4ff..bbc8855b41 100644
--- a/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCNonSyncSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/AmstradCPC/AmstradCPCNonSyncSettings.cs
@@ -40,7 +40,7 @@ namespace BizHawk.Client.EmuHawk
{
_settings.OSDMessageVerbosity = (AmstradCPC.OSDVerbosity)Enum.Parse(typeof(AmstradCPC.OSDVerbosity), osdMessageVerbositycomboBox1.SelectedItem.ToString());
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/ColecoVision/ColecoControllerSettings.cs b/src/BizHawk.Client.EmuHawk/config/ColecoVision/ColecoControllerSettings.cs
index 3e6824f872..b349701890 100644
--- a/src/BizHawk.Client.EmuHawk/config/ColecoVision/ColecoControllerSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/ColecoVision/ColecoControllerSettings.cs
@@ -42,7 +42,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.Port1 = Port1ComboBox.SelectedItem.ToString();
_syncSettings.Port2 = Port2ComboBox.SelectedItem.ToString();
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs b/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs
index 47287e85d0..40b195c975 100644
--- a/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GB/GBLPrefs.cs
@@ -68,7 +68,7 @@ namespace BizHawk.Client.EmuHawk
gambatte.PutSettings(s);
if (dlg.SyncSettingsChanged)
{
- mainForm.PutCoreSyncSettings(ss);
+ mainForm.PutCoreSyncSettings(ss, mainForm.GetSettingsAdapterForLoadedCore());
}
}
return result;
diff --git a/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs b/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs
index 5d67d442f3..64c83c7649 100644
--- a/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GB/GBPrefs.cs
@@ -32,7 +32,7 @@ namespace BizHawk.Client.EmuHawk
gb.PutSettings(s);
if (dlg.gbPrefControl1.SyncSettingsChanged)
{
- mainForm.PutCoreSyncSettings(ss);
+ mainForm.PutCoreSyncSettings(ss, mainForm.GetSettingsAdapterForLoadedCore());
}
}
return result;
diff --git a/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs b/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs
index 626cccdf97..1e1978ddbb 100644
--- a/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GB/SameBoyColorChooserForm.cs
@@ -316,7 +316,7 @@ namespace BizHawk.Client.EmuHawk
_settings.SetCustomPalette(colors);
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs b/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs
index a38c37f690..12fe5cc3fa 100644
--- a/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/GenericCoreConfig.cs
@@ -8,6 +8,8 @@ namespace BizHawk.Client.EmuHawk
{
public partial class GenericCoreConfig : Form
{
+ private readonly SettingsAdapter _settable;
+
private readonly IMainFormForConfig _mainForm;
private object _s;
private object _ss;
@@ -23,17 +25,11 @@ namespace BizHawk.Client.EmuHawk
InitializeComponent();
_mainForm = mainForm;
- var settable = new SettingsAdapter(_mainForm.Emulator);
+ _settable = ((MainForm) _mainForm).GetSettingsAdapterForLoadedCoreUntyped(); //HACK
- if (settable.HasSettings && !ignoreSettings)
- {
- _s = settable.GetSettings();
- }
+ if (_settable.HasSettings && !ignoreSettings) _s = _settable.GetSettings();
- if (settable.HasSyncSettings && !ignoreSyncSettings)
- {
- _ss = settable.GetSyncSettings();
- }
+ if (_settable.HasSyncSettings && !ignoreSyncSettings) _ss = _settable.GetSyncSettings();
if (_s != null)
{
@@ -65,12 +61,12 @@ namespace BizHawk.Client.EmuHawk
{
if (_s != null && _settingsChanged)
{
- _mainForm.PutCoreSettings(_s);
+ _mainForm.PutCoreSettings(_s, _settable);
}
if (_ss != null && _syncSettingsChanged)
{
- _mainForm.PutCoreSyncSettings(_ss);
+ _mainForm.PutCoreSyncSettings(_ss, _settable);
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/INTV/IntvControllerSettings.cs b/src/BizHawk.Client.EmuHawk/config/INTV/IntvControllerSettings.cs
index f1099ff0fe..c27b8cccc1 100644
--- a/src/BizHawk.Client.EmuHawk/config/INTV/IntvControllerSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/INTV/IntvControllerSettings.cs
@@ -42,7 +42,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.Port1 = Port1ComboBox.SelectedItem.ToString();
_syncSettings.Port2 = Port2ComboBox.SelectedItem.ToString();
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/N64/N64ControllersSetup.cs b/src/BizHawk.Client.EmuHawk/config/N64/N64ControllersSetup.cs
index 331ddd1ac6..d08996ce1c 100644
--- a/src/BizHawk.Client.EmuHawk/config/N64/N64ControllersSetup.cs
+++ b/src/BizHawk.Client.EmuHawk/config/N64/N64ControllersSetup.cs
@@ -52,7 +52,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.Controllers[c.ControllerNumber - 1].PakType = c.PakType;
});
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs b/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs
index 8dfbbe3784..e35a02931b 100644
--- a/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/N64/N64VideoPluginconfig.cs
@@ -123,8 +123,9 @@ namespace BizHawk.Client.EmuHawk
if (_emulator is N64)
{
- _mainForm.PutCoreSettings(_s);
- _mainForm.PutCoreSyncSettings(_ss);
+ var settable = _mainForm.GetSettingsAdapterForLoadedCore();
+ _mainForm.PutCoreSettings(_s, settable);
+ _mainForm.PutCoreSyncSettings(_ss, settable);
}
else
{
diff --git a/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs b/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs
index 023cc78e82..86a1cd148f 100644
--- a/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/NES/NESGraphicsConfig.cs
@@ -149,7 +149,7 @@ namespace BizHawk.Client.EmuHawk
_settings.BackgroundColor &= 0x00FFFFFF;
}
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
Close();
}
diff --git a/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs b/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs
index 3131d933a3..9cfb8ebde9 100644
--- a/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs
+++ b/src/BizHawk.Client.EmuHawk/config/NES/NESSyncSettingsForm.cs
@@ -92,7 +92,7 @@ namespace BizHawk.Client.EmuHawk
DialogResult = DialogResult.OK;
if (changed)
{
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
}
diff --git a/src/BizHawk.Client.EmuHawk/config/NES/NESVSSettings.cs b/src/BizHawk.Client.EmuHawk/config/NES/NESVSSettings.cs
index a4a260d0a3..714561b0b9 100644
--- a/src/BizHawk.Client.EmuHawk/config/NES/NESVSSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/NES/NESVSSettings.cs
@@ -42,7 +42,7 @@ namespace BizHawk.Client.EmuHawk
_settings.VSDipswitches.Dip_Switch_7 = Dipswitch7CheckBox.Checked;
_settings.VSDipswitches.Dip_Switch_8 = Dipswitch8CheckBox.Checked;
- _mainForm.PutCoreSyncSettings(_settings);
+ _mainForm.PutCoreSyncSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
Close();
}
diff --git a/src/BizHawk.Client.EmuHawk/config/NES/NesControllerSettings.cs b/src/BizHawk.Client.EmuHawk/config/NES/NesControllerSettings.cs
index bfc5a2bcc6..77b41cb7b1 100644
--- a/src/BizHawk.Client.EmuHawk/config/NES/NesControllerSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/NES/NesControllerSettings.cs
@@ -53,7 +53,7 @@ namespace BizHawk.Client.EmuHawk
if (changed)
{
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/NES/QuickNesConfig.cs b/src/BizHawk.Client.EmuHawk/config/NES/QuickNesConfig.cs
index 964833f8fb..2d20801b9c 100644
--- a/src/BizHawk.Client.EmuHawk/config/NES/QuickNesConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/NES/QuickNesConfig.cs
@@ -106,7 +106,7 @@ namespace BizHawk.Client.EmuHawk
private void ButtonOk_Click(object sender, EventArgs e)
{
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
}
diff --git a/src/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs b/src/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs
index f46bc9ba3c..54855b2981 100644
--- a/src/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/PSX/PSXControllerConfig.cs
@@ -141,7 +141,7 @@ namespace BizHawk.Client.EmuHawk
private void BtnOk_Click(object sender, EventArgs e)
{
_syncSettings.FIOConfig = UserConfigFromGui();
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs b/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs
index 4cf48078ca..64052730f5 100644
--- a/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs
+++ b/src/BizHawk.Client.EmuHawk/config/PSX/PSXOptions.cs
@@ -125,8 +125,9 @@ namespace BizHawk.Client.EmuHawk
SyncSettingsFromGui(_settings, _syncSettings);
_settings.Validate();
- _mainForm.PutCoreSettings(_settings);
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ var settable = _mainForm.GetSettingsAdapterForLoadedCore();
+ _mainForm.PutCoreSettings(_settings, settable);
+ _mainForm.PutCoreSyncSettings(_syncSettings, settable);
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/ProfileConfig.cs b/src/BizHawk.Client.EmuHawk/config/ProfileConfig.cs
index 786cb5d810..e6db36aec8 100644
--- a/src/BizHawk.Client.EmuHawk/config/ProfileConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/ProfileConfig.cs
@@ -257,7 +257,7 @@ namespace BizHawk.Client.EmuHawk
{
if (_emulator is TEmulator)
{
- _mainForm.PutCoreSyncSettings(o);
+ _mainForm.PutCoreSyncSettings(o, _mainForm.GetSettingsAdapterForLoadedCore());
}
else
{
diff --git a/src/BizHawk.Client.EmuHawk/config/SNES/BSNESControllerConfig.cs b/src/BizHawk.Client.EmuHawk/config/SNES/BSNESControllerConfig.cs
index 8175ff19f0..3b9adacf5d 100644
--- a/src/BizHawk.Client.EmuHawk/config/SNES/BSNESControllerConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/SNES/BSNESControllerConfig.cs
@@ -41,7 +41,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.RightPort = (BsnesApi.BSNES_INPUT_DEVICE) Port2ComboBox.SelectedIndex;
_syncSettings.LimitAnalogChangeSensitivity = LimitAnalogChangeCheckBox.Checked;
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs b/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs
index e6d8bcae72..d724426c71 100644
--- a/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs
+++ b/src/BizHawk.Client.EmuHawk/config/SNES/BSNESOptions.cs
@@ -65,8 +65,9 @@ namespace BizHawk.Client.EmuHawk
s.ShowBG4_0 = dlg.ShowBg4_0;
s.ShowBG4_1 = dlg.ShowBg4_1;
- mainForm.PutCoreSettings(s);
- mainForm.PutCoreSyncSettings(ss);
+ var settable = mainForm.GetSettingsAdapterForLoadedCore();
+ mainForm.PutCoreSettings(s, settable);
+ mainForm.PutCoreSyncSettings(ss, settable);
}
return result;
}
diff --git a/src/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs b/src/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs
index f0ca2c16a2..742d927516 100644
--- a/src/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/SNES/SNESControllerConfig.cs
@@ -44,7 +44,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.RightPort = (LibsnesControllerDeck.ControllerType)Enum.Parse(typeof(LibsnesControllerDeck.ControllerType), Port2ComboBox.SelectedItem.ToString());
_syncSettings.LimitAnalogChangeSensitivity = LimitAnalogChangeCheckBox.Checked;
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
diff --git a/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs b/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs
index 14548dd535..bf3a650cdf 100644
--- a/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs
+++ b/src/BizHawk.Client.EmuHawk/config/SNES/SNESOptions.cs
@@ -48,8 +48,9 @@ namespace BizHawk.Client.EmuHawk
s.ShowBG3_0 = s.ShowBG3_1 = dlg.ShowBg3;
s.ShowBG4_0 = s.ShowBG4_1 = dlg.ShowBg4;
- mainForm.PutCoreSettings(s);
- mainForm.PutCoreSyncSettings(ss);
+ var settable = mainForm.GetSettingsAdapterForLoadedCore();
+ mainForm.PutCoreSettings(s, settable);
+ mainForm.PutCoreSyncSettings(ss, settable);
}
return result;
}
diff --git a/src/BizHawk.Client.EmuHawk/config/TI83/TI83PaletteConfig.cs b/src/BizHawk.Client.EmuHawk/config/TI83/TI83PaletteConfig.cs
index ffa7858257..7729bff451 100644
--- a/src/BizHawk.Client.EmuHawk/config/TI83/TI83PaletteConfig.cs
+++ b/src/BizHawk.Client.EmuHawk/config/TI83/TI83PaletteConfig.cs
@@ -32,7 +32,7 @@ namespace BizHawk.Client.EmuHawk
_settings.BGColor = (uint)BackgroundPanel.BackColor.ToArgb();
_settings.ForeColor = (uint)ForeGroundPanel.BackColor.ToArgb();
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumAudioSettings.cs b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumAudioSettings.cs
index e628fe907b..a8a73f6a61 100644
--- a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumAudioSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumAudioSettings.cs
@@ -55,7 +55,7 @@ namespace BizHawk.Client.EmuHawk
_settings.EarVolume = earVolumetrackBar.Value;
_settings.AYVolume = ayVolumetrackBar.Value;
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumCoreEmulationSettings.cs b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumCoreEmulationSettings.cs
index c4dd5e284f..e248ed89b4 100644
--- a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumCoreEmulationSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumCoreEmulationSettings.cs
@@ -61,7 +61,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.DeterministicEmulation = determEmucheckBox1.Checked;
_syncSettings.AutoLoadTape = autoLoadcheckBox1.Checked;
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
}
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs
index 69fb1df88b..3359ba8533 100644
--- a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumJoystickSettings.cs
@@ -103,7 +103,7 @@ namespace BizHawk.Client.EmuHawk
_syncSettings.JoystickType2 = (JoystickType)Enum.Parse(typeof(JoystickType), Port2ComboBox.SelectedItem.ToString());
_syncSettings.JoystickType3 = (JoystickType)Enum.Parse(typeof(JoystickType), Port3ComboBox.SelectedItem.ToString());
- _mainForm.PutCoreSyncSettings(_syncSettings);
+ _mainForm.PutCoreSyncSettings(_syncSettings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();
diff --git a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumNonSyncSettings.cs b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumNonSyncSettings.cs
index 709d960db0..e2d9810cd4 100644
--- a/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumNonSyncSettings.cs
+++ b/src/BizHawk.Client.EmuHawk/config/ZXSpectrum/ZXSpectrumNonSyncSettings.cs
@@ -58,7 +58,7 @@ namespace BizHawk.Client.EmuHawk
_settings.BackgroundColor = _bgColor;
_settings.UseCoreBorderForBackground = checkBoxShowCoreBrdColor.Checked;
- _mainForm.PutCoreSettings(_settings);
+ _mainForm.PutCoreSettings(_settings, _mainForm.GetSettingsAdapterForLoadedCore());
DialogResult = DialogResult.OK;
Close();