This reverts commit c878c85dae.

This commit is contained in:
zeromus 2020-04-23 21:06:12 -04:00
parent c878c85dae
commit 1d1f2a18c6
48 changed files with 181 additions and 200 deletions

View File

@ -195,7 +195,7 @@ namespace BizHawk.Client.Common
_ => (object) null
};
public PutSettingsDirtyBits PutSettings(object settings) => Emulator switch
public bool PutSettings(object settings) => Emulator switch
{
GPGX gpgx => gpgx.PutSettings((GPGX.GPGXSettings) settings),
LibsnesCore snes => snes.PutSettings((LibsnesCore.SnesSettings) settings),
@ -204,7 +204,7 @@ namespace BizHawk.Client.Common
QuickNES quickNes => quickNes.PutSettings((QuickNES.QuickNESSettings) settings),
SMS sms => sms.PutSettings((SMS.SmsSettings) settings),
WonderSwan ws => ws.PutSettings((WonderSwan.Settings) settings),
_ => PutSettingsDirtyBits.None
_ => false
};
public void SetRenderPlanes(params bool[] args)

View File

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using BizHawk.Emulation.Common;
namespace BizHawk.Client.Common
{
@ -27,7 +26,7 @@ namespace BizHawk.Client.Common
string GetDisplayType();
string GetBoardName();
object GetSettings();
PutSettingsDirtyBits PutSettings(object settings);
bool PutSettings(object settings);
void SetRenderPlanes(params bool[] args);
}
}

View File

@ -2305,11 +2305,10 @@ namespace BizHawk.Client.EmuHawk
public void PutCoreSettings(object o)
{
var settable = new SettingsAdapter(Emulator);
if (!settable.HasSettings)
return;
var dirty = settable.PutSettings(o);
if(dirty.HasFlag(PutSettingsDirtyBits.RebootCore))
if (settable.HasSettings && settable.PutSettings(o))
{
FlagNeedsReboot();
}
}
// TODO: Get/Put settings/sync settings methods could become a service we instantiate and use and pass to other forms
@ -2323,13 +2322,9 @@ namespace BizHawk.Client.EmuHawk
{
AddOnScreenMessage("Attempt to change sync-relevant settings while recording BLOCKED.");
}
else
else if (settable.HasSyncSettings && settable.PutSyncSettings(o))
{
if (!settable.HasSyncSettings)
return;
var dirty = settable.PutSyncSettings(o);
if(dirty.HasFlag(PutSettingsDirtyBits.RebootCore))
FlagNeedsReboot();
FlagNeedsReboot();
}
}

View File

@ -41,7 +41,7 @@ namespace BizHawk.Emulation.Common
/// </summary>
/// <param name="o">an object of the same type as the return for GetSettings</param>
/// <returns>true if a core reboot will be required to make the changes effective</returns>
PutSettingsDirtyBits PutSettings(TSettings o);
bool PutSettings(TSettings o);
/// <summary>
/// changes the movie-sync relevant settings. THIS SHOULD NEVER BE CALLED WHILE RECORDING
@ -49,19 +49,7 @@ namespace BizHawk.Emulation.Common
/// </summary>
/// <param name="o">an object of the same type as the return for GetSyncSettings</param>
/// <returns>true if a core reboot will be required to make the changes effective</returns>
PutSettingsDirtyBits PutSyncSettings(TSync o);
}
//note: this is a bit of a frail API. If a frontend wants a new flag, cores won't know to yea or nay it
//this could be solved by adding a KnownSettingsDirtyBits on the settings interface
//or, in a pinch, the same thing could be done with THESE flags, so that the interface doesn't
//change but newly-aware cores can simply manifest that they know about more bits, in the same variable they return the bits in
[Flags]
public enum PutSettingsDirtyBits
{
None = 0,
RebootCore = 1,
ScreenLayoutChanged = 2,
bool PutSyncSettings(TSync o);
}
/// <summary>
@ -138,7 +126,7 @@ namespace BizHawk.Emulation.Common
}
/// <exception cref="InvalidOperationException">does not have non-sync settings</exception>
public PutSettingsDirtyBits PutSettings(object o)
public bool PutSettings(object o)
{
if (!HasSettings)
{
@ -146,11 +134,11 @@ namespace BizHawk.Emulation.Common
}
_tmp1[0] = o;
return (PutSettingsDirtyBits)_puts.Invoke(_emu, _tmp1);
return (bool)_puts.Invoke(_emu, _tmp1);
}
/// <exception cref="InvalidOperationException">does not have sync settings</exception>
public PutSettingsDirtyBits PutSyncSettings(object o)
public bool PutSyncSettings(object o)
{
if (!HasSyncSettings)
{
@ -158,7 +146,7 @@ namespace BizHawk.Emulation.Common
}
_tmp1[0] = o;
return (PutSettingsDirtyBits)_putss.Invoke(_emu, _tmp1);
return (bool)_putss.Invoke(_emu, _tmp1);
}
}
}

View File

@ -257,18 +257,18 @@ namespace BizHawk.Emulation.Cores.Arcades.MAME
#region ISettable
public object GetSettings() => null;
public PutSettingsDirtyBits PutSettings(object o) => PutSettingsDirtyBits.None;
public bool PutSettings(object o) => false;
public SyncSettings GetSyncSettings()
{
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public class SyncSettings

View File

@ -11,10 +11,10 @@ namespace BizHawk.Emulation.Cores.Calculators
return _settings.Clone();
}
public PutSettingsDirtyBits PutSettings(TI83Settings o)
public bool PutSettings(TI83Settings o)
{
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public object GetSyncSettings()
@ -22,9 +22,9 @@ namespace BizHawk.Emulation.Cores.Calculators
return null;
}
public PutSettingsDirtyBits PutSyncSettings(object o)
public bool PutSyncSettings(object o)
{
return PutSettingsDirtyBits.None;
return false;
}
public class TI83Settings

View File

@ -25,7 +25,7 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC
return SyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(AmstradCPCSettings o)
public bool PutSettings(AmstradCPCSettings o)
{
// restore user settings to devices
@ -42,14 +42,14 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC
Settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(AmstradCPCSyncSettings o)
public bool PutSyncSettings(AmstradCPCSyncSettings o)
{
bool ret = AmstradCPCSyncSettings.NeedsReboot(SyncSettings, o);
SyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public class AmstradCPCSettings

View File

@ -20,16 +20,16 @@ namespace BizHawk.Emulation.Cores.Computers.AppleII
public object GetSyncSettings() => null;
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
_settings = o;
_machine.Video.IsMonochrome = _settings.Monochrome;
SetCallbacks();
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(object o) => PutSettingsDirtyBits.None;
public bool PutSyncSettings(object o) => false;
}
}

View File

@ -16,16 +16,16 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
return SyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(C64Settings o)
public bool PutSettings(C64Settings o)
{
Settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(C64SyncSettings o)
public bool PutSyncSettings(C64SyncSettings o)
{
SyncSettings = o;
return PutSettingsDirtyBits.None;
return false;
}
internal C64Settings Settings { get; private set; }

View File

@ -16,18 +16,18 @@ namespace BizHawk.Emulation.Cores.Computers.MSX
return SyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(MSXSettings o)
public bool PutSettings(MSXSettings o)
{
bool ret = MSXSettings.RebootNeeded(Settings, o);
Settings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public PutSettingsDirtyBits PutSyncSettings(MSXSyncSettings o)
public bool PutSyncSettings(MSXSyncSettings o)
{
bool ret = MSXSyncSettings.RebootNeeded(SyncSettings, o);
SyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
internal MSXSettings Settings { get; private set; }

View File

@ -20,7 +20,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
public ZXSpectrumSyncSettings GetSyncSettings() => SyncSettings.Clone();
public PutSettingsDirtyBits PutSettings(ZXSpectrumSettings o)
public bool PutSettings(ZXSpectrumSettings o)
{
// restore user settings to devices
if (_machine?.AYDevice != null)
@ -39,14 +39,14 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
Settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(ZXSpectrumSyncSettings o)
public bool PutSyncSettings(ZXSpectrumSyncSettings o)
{
bool ret = ZXSpectrumSyncSettings.NeedsReboot(SyncSettings, o);
SyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public class ZXSpectrumSettings

View File

@ -21,7 +21,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
return SyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(A2600Settings o)
public bool PutSettings(A2600Settings o)
{
if (Settings == null || Settings.SECAMColors != o.SECAMColors)
{
@ -29,14 +29,14 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
}
Settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(A2600SyncSettings o)
public bool PutSyncSettings(A2600SyncSettings o)
{
bool ret = A2600SyncSettings.NeedsReboot(SyncSettings, o);
SyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
internal A2600Settings Settings { get; private set; }

View File

@ -18,17 +18,17 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(A7800Settings o)
public bool PutSettings(A7800Settings o)
{
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(A7800SyncSettings o)
public bool PutSyncSettings(A7800SyncSettings o)
{
bool ret = A7800SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private A7800Settings _settings = new A7800Settings();

View File

@ -18,18 +18,18 @@ namespace BizHawk.Emulation.Cores.ColecoVision
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(ColecoSettings o)
public bool PutSettings(ColecoSettings o)
{
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(ColecoSyncSettings o)
public bool PutSyncSettings(ColecoSyncSettings o)
{
bool ret = o.SkipBiosIntro != _syncSettings.SkipBiosIntro;
ret |= ColecoSyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public class ColecoSettings

View File

@ -19,17 +19,17 @@ namespace BizHawk.Emulation.Cores.Consoles.ChannelF
return SyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(ChannelFSettings o)
public bool PutSettings(ChannelFSettings o)
{
Settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(ChannelFSyncSettings o)
public bool PutSyncSettings(ChannelFSyncSettings o)
{
bool ret = ChannelFSyncSettings.NeedsReboot(SyncSettings, o);
SyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public class ChannelFSettings

View File

@ -19,17 +19,17 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(VectrexSettings o)
public bool PutSettings(VectrexSettings o)
{
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(VectrexSyncSettings o)
public bool PutSyncSettings(VectrexSyncSettings o)
{
bool ret = VectrexSyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private VectrexSettings _settings = new VectrexSettings();

View File

@ -18,17 +18,17 @@ namespace BizHawk.Emulation.Cores.Intellivision
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(IntvSettings o)
public bool PutSettings(IntvSettings o)
{
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(IntvSyncSettings o)
public bool PutSyncSettings(IntvSyncSettings o)
{
bool ret = IntvSyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private IntvSettings _settings = new IntvSettings();

View File

@ -16,17 +16,17 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(O2Settings o)
public bool PutSettings(O2Settings o)
{
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(O2SyncSettings o)
public bool PutSyncSettings(O2SyncSettings o)
{
bool ret = O2SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public O2Settings _settings = new O2Settings();

View File

@ -330,19 +330,19 @@ namespace BizHawk.Emulation.Cores.Consoles.NEC.PCFX
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
var ret = Settings.NeedsReboot(_settings, o);
_settings = o;
SetLayerSettings();
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private void SetNativeSettingsBeforeInit()

View File

@ -15,7 +15,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
return _settings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
LibmGBA.Layers mask = 0;
if (o.DisplayBG0) mask |= LibmGBA.Layers.BG0;
@ -51,7 +51,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
LibmGBA.BizSetPalette(Core, palette);
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
private Settings _settings;
@ -139,11 +139,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private SyncSettings _syncSettings;

View File

@ -18,16 +18,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(object o)
public bool PutSettings(object o)
{
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private SyncSettings _syncSettings;

View File

@ -20,17 +20,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(GBSettings o)
public bool PutSettings(GBSettings o)
{
_settings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(GBSyncSettings o)
public bool PutSyncSettings(GBSyncSettings o)
{
bool ret = GBSyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private GBSettings _settings = new GBSettings();

View File

@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink
public GBLinkSyncSettings GetSyncSettings() => linkSyncSettings.Clone();
public PutSettingsDirtyBits PutSettings(GBLinkSettings o)
public bool PutSettings(GBLinkSettings o)
{
linkSettings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(GBLinkSyncSettings o)
public bool PutSyncSettings(GBLinkSyncSettings o)
{
bool ret = GBLinkSyncSettings.NeedsReboot(linkSyncSettings, o);
linkSyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private GBLinkSettings linkSettings = new GBLinkSettings();

View File

@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink3x
public GBLink3xSyncSettings GetSyncSettings() => Link3xSyncSettings.Clone();
public PutSettingsDirtyBits PutSettings(GBLink3xSettings o)
public bool PutSettings(GBLink3xSettings o)
{
Link3xSettings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(GBLink3xSyncSettings o)
public bool PutSyncSettings(GBLink3xSyncSettings o)
{
bool ret = GBLink3xSyncSettings.NeedsReboot(Link3xSyncSettings, o);
Link3xSyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private GBLink3xSettings Link3xSettings = new GBLink3xSettings();

View File

@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x
public GBLink4xSyncSettings GetSyncSettings() => Link4xSyncSettings.Clone();
public PutSettingsDirtyBits PutSettings(GBLink4xSettings o)
public bool PutSettings(GBLink4xSettings o)
{
Link4xSettings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(GBLink4xSyncSettings o)
public bool PutSyncSettings(GBLink4xSyncSettings o)
{
bool ret = GBLink4xSyncSettings.NeedsReboot(Link4xSyncSettings, o);
Link4xSyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private GBLink4xSettings Link4xSettings = new GBLink4xSettings();

View File

@ -14,7 +14,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
return _settings.Clone();
}
public PutSettingsDirtyBits PutSettings(GambatteSettings o)
public bool PutSettings(GambatteSettings o)
{
_settings = o;
if (IsCGBMode())
@ -26,7 +26,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
ChangeDMGColors(_settings.GBPalette);
}
return PutSettingsDirtyBits.None;
return false;
}
public GambatteSyncSettings GetSyncSettings()
@ -34,11 +34,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSyncSettings(GambatteSyncSettings o)
public bool PutSyncSettings(GambatteSyncSettings o)
{
bool ret = GambatteSyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private GambatteSettings _settings;

View File

@ -21,14 +21,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
);
}
public PutSettingsDirtyBits PutSettings(GambatteLinkSettings o)
public bool PutSettings(GambatteLinkSettings o)
{
return (PutSettingsDirtyBits)((int)L.PutSettings(o.L) | (int)R.PutSettings(o.R));
return L.PutSettings(o.L) || R.PutSettings(o.R);
}
public PutSettingsDirtyBits PutSyncSettings(GambatteLinkSyncSettings o)
public bool PutSyncSettings(GambatteLinkSyncSettings o)
{
return (PutSettingsDirtyBits)((int)L.PutSyncSettings(o.L) | (int)R.PutSyncSettings(o.R));
return L.PutSyncSettings(o.L) || R.PutSyncSettings(o.R);
}
public class GambatteLinkSettings

View File

@ -245,18 +245,18 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
var ret = Settings.NeedsReboot(_settings, o);
_settings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
#endregion

View File

@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(N64Settings o)
public bool PutSettings(N64Settings o)
{
_settings = o;
return PutSettingsDirtyBits.RebootCore;
return true;
}
public PutSettingsDirtyBits PutSyncSettings(N64SyncSettings o)
public bool PutSyncSettings(N64SyncSettings o)
{
_syncSettings = o;
SetControllerButtons();
return PutSettingsDirtyBits.RebootCore;
return true;
}
private void SetControllerButtons()

View File

@ -30,14 +30,14 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
return ret;
}
public PutSettingsDirtyBits PutSettings(MelonSettings o)
public bool PutSettings(MelonSettings o)
{
_settings = o ?? new MelonSettings();
SetScaleFactor(_settings.ScaleFactor);
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(MelonSyncSettings o)
public bool PutSyncSettings(MelonSyncSettings o)
{
if (o == null)
{
@ -54,7 +54,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
SetTimeAtBoot(o.TimeAtBoot);
// At present, no sync settings can be modified without requiring a reboot.
return PutSettingsDirtyBits.RebootCore;
return true;
}
[DllImport(dllPath)]

View File

@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
public NESSyncSettings GetSyncSettings() => SyncSettings.Clone();
public PutSettingsDirtyBits PutSettings(NESSettings o)
public bool PutSettings(NESSettings o)
{
Settings = o;
if (Settings.ClipLeftAndRight)
@ -30,14 +30,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
apu.m_vol = Settings.APU_vol;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(NESSyncSettings o)
public bool PutSyncSettings(NESSyncSettings o)
{
bool ret = NESSyncSettings.NeedsReboot(SyncSettings, o);
SyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
internal NESSettings Settings = new NESSettings();

View File

@ -21,21 +21,21 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES
return _syncSettingsNext.Clone();
}
public PutSettingsDirtyBits PutSettings(QuickNESSettings o)
public bool PutSettings(QuickNESSettings o)
{
_settings = o;
QN.qn_set_sprite_limit(Context, _settings.NumSprites);
RecalculateCrops();
CalculatePalette();
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(QuickNESSyncSettings o)
public bool PutSyncSettings(QuickNESSyncSettings o)
{
bool ret = QuickNESSyncSettings.NeedsReboot(_syncSettings, o);
_syncSettingsNext = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private QuickNESSettings _settings;

View File

@ -14,7 +14,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(SnesSettings o)
public bool PutSettings(SnesSettings o)
{
bool refreshNeeded = o.Palette != _settings.Palette;
_settings = o;
@ -23,17 +23,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
RefreshPalette();
}
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(SnesSyncSettings o)
public bool PutSyncSettings(SnesSyncSettings o)
{
bool ret = o.LeftPort != _syncSettings.LeftPort
|| o.RightPort != _syncSettings.RightPort
|| o.LimitAnalogChangeSensitivity != _syncSettings.LimitAnalogChangeSensitivity;
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private SnesSettings _settings;

View File

@ -308,7 +308,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES9X
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
_settings = o;
int s = 0;
@ -334,14 +334,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES9X
if (o.ShowSprites3) l |= 2048;
_core.biz_set_layers(l);
return PutSettingsDirtyBits.None; // no reboot needed
return false; // no reboot needed
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public class Settings

View File

@ -58,7 +58,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SubGBHawk
public GBHawk.GBHawk.GBSettings GetSettings() => _GBCore.GetSettings();
public GBHawk.GBHawk.GBSyncSettings GetSyncSettings() => _GBCore.GetSyncSettings();
public PutSettingsDirtyBits PutSettings(GBHawk.GBHawk.GBSettings o) => _GBCore.PutSettings(o);
public PutSettingsDirtyBits PutSyncSettings(GBHawk.GBHawk.GBSyncSettings o) => _GBCore.PutSyncSettings(o);
public bool PutSettings(GBHawk.GBHawk.GBSettings o) => _GBCore.PutSettings(o);
public bool PutSyncSettings(GBHawk.GBHawk.GBSyncSettings o) => _GBCore.PutSyncSettings(o);
}
}

View File

@ -84,7 +84,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SubNESHawk
public NES.NES.NESSettings GetSettings() => _nesCore.GetSettings();
public NES.NES.NESSyncSettings GetSyncSettings() => _nesCore.GetSyncSettings();
public PutSettingsDirtyBits PutSettings(NES.NES.NESSettings o) => _nesCore.PutSettings(o);
public PutSettingsDirtyBits PutSyncSettings(NES.NES.NESSyncSettings o) => _nesCore.PutSyncSettings(o);
public bool PutSettings(NES.NES.NESSettings o) => _nesCore.PutSettings(o);
public bool PutSyncSettings(NES.NES.NESSyncSettings o) => _nesCore.PutSyncSettings(o);
}
}

View File

@ -234,18 +234,18 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
var ret = Settings.NeedsReboot(_settings, o);
_settings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
#endregion

View File

@ -17,7 +17,7 @@ namespace BizHawk.Emulation.Cores.PCEngine
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(PCESettings o)
public bool PutSettings(PCESettings o)
{
bool ret;
if (o.ArcadeCardRewindHack != Settings.ArcadeCardRewindHack
@ -32,14 +32,14 @@ namespace BizHawk.Emulation.Cores.PCEngine
Settings = o;
return PutSettingsDirtyBits.None;
return ret;
}
public PutSettingsDirtyBits PutSyncSettings(PCESyncSettings o)
public bool PutSyncSettings(PCESyncSettings o)
{
bool ret = PCESyncSettings.NeedsReboot(o, _syncSettings);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public PCESettings Settings;

View File

@ -166,16 +166,16 @@ namespace BizHawk.Emulation.Cores.Consoles.SNK
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(object o)
public bool PutSettings(object o)
{
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
#endregion

View File

@ -16,17 +16,17 @@ namespace BizHawk.Emulation.Cores.Sega.GGHawkLink
return linkSyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(GGLinkSettings o)
public bool PutSettings(GGLinkSettings o)
{
linkSettings = o;
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(GGLinkSyncSettings o)
public bool PutSyncSettings(GGLinkSyncSettings o)
{
bool ret = GGLinkSyncSettings.NeedsReboot(linkSyncSettings, o);
linkSyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private GGLinkSettings linkSettings = new GGLinkSettings();

View File

@ -229,16 +229,16 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.PicoDrive
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(object o)
public bool PutSettings(object o)
{
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
#endregion

View File

@ -9,18 +9,18 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
public SmsSyncSettings GetSyncSettings() => SyncSettings.Clone();
public PutSettingsDirtyBits PutSettings(SmsSettings o)
public bool PutSettings(SmsSettings o)
{
bool ret = SmsSettings.RebootNeeded(Settings, o);
Settings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public PutSettingsDirtyBits PutSyncSettings(SmsSyncSettings o)
public bool PutSyncSettings(SmsSyncSettings o)
{
bool ret = SmsSyncSettings.RebootNeeded(SyncSettings, o);
SyncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
internal SmsSettings Settings { get; private set; }

View File

@ -439,7 +439,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
return _settings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings s)
public bool PutSettings(Settings s)
{
var ret = Settings.NeedsReboot(_settings, s);
_settings = s;
@ -449,7 +449,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
//(the correct aspect ratio is no longer an option for other reasons)
//_core.SetVideoParameters(s.CorrectAspectRatio, s.HBlend, s.HOverscan, sls, sle);
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public SyncSettings GetSyncSettings()
@ -457,11 +457,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings s)
public bool PutSyncSettings(SyncSettings s)
{
var ret = SyncSettings.NeedsReboot(_syncSettings, s);
_syncSettings = s;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private void SetVideoParameters()

View File

@ -21,19 +21,19 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
return _syncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(GPGXSettings o)
public bool PutSettings(GPGXSettings o)
{
bool ret = GPGXSettings.NeedsReboot(_settings, o);
_settings = o;
Core.gpgx_set_draw_mask(_settings.GetDrawMask());
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
public PutSettingsDirtyBits PutSyncSettings(GPGXSyncSettings o)
public bool PutSyncSettings(GPGXSyncSettings o)
{
bool ret = GPGXSyncSettings.NeedsReboot(_syncSettings, o);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
private class UintToHexConverter : TypeConverter

View File

@ -1271,17 +1271,17 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
return _SyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
_Settings.Validate();
_Settings = o;
//TODO - store settings into core? or we can just keep doing it before frameadvance
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
//currently LEC and pad settings changes both require reboot
bool reboot = true;
@ -1293,7 +1293,7 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
_SyncSettings = o;
return reboot ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return reboot;
}
#endregion

View File

@ -158,19 +158,19 @@ namespace BizHawk.Emulation.Cores.WonderSwan
public SyncSettings GetSyncSettings() => _syncSettings.Clone();
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
_settings = o;
var native = _settings.GetNativeSettings();
BizSwan.bizswan_putsettings(Core, ref native);
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
_syncSettings = o;
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return ret;
}
}

View File

@ -1,6 +1,5 @@
using Newtonsoft.Json;
using BizHawk.Common;
using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Libretro
{
@ -50,17 +49,17 @@ namespace BizHawk.Emulation.Cores.Libretro
return _SyncSettings.Clone();
}
public PutSettingsDirtyBits PutSettings(Settings o)
public bool PutSettings(Settings o)
{
_Settings.Validate();
_Settings = o;
//TODO - store settings into core? or we can just keep doing it before frameadvance
return PutSettingsDirtyBits.None;
return false;
}
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
public bool PutSyncSettings(SyncSettings o)
{
bool reboot = false;
@ -69,7 +68,7 @@ namespace BizHawk.Emulation.Cores.Libretro
_SyncSettings = o;
return reboot ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
return reboot;
}
}

2
mgba

@ -1 +1 @@
Subproject commit 13d650da6c89d5f82f03b73928b7d9f1643990c6
Subproject commit c70b9a56dc3e197f400061b9635d4d9c1996e282