for your consideration: sync settings return flags instead of a bool, so we can have more granularity in what needs resetting than just "reboot core". for instance, we would like to minimize the number of times the window layout is redone by not doing it when the screen settings havent changed. HOWEVER, while I was writing this commit message, I realized, I should probably do it just by being more cautious in kicking off the layout (unless the data coming from the core has changed, a layout shouldnt happen). So I am going to make this commit, in case it inspires anyone, and then revert it.
This commit is contained in:
parent
c5ff7edba9
commit
c878c85dae
|
@ -195,7 +195,7 @@ namespace BizHawk.Client.Common
|
||||||
_ => (object) null
|
_ => (object) null
|
||||||
};
|
};
|
||||||
|
|
||||||
public bool PutSettings(object settings) => Emulator switch
|
public PutSettingsDirtyBits PutSettings(object settings) => Emulator switch
|
||||||
{
|
{
|
||||||
GPGX gpgx => gpgx.PutSettings((GPGX.GPGXSettings) settings),
|
GPGX gpgx => gpgx.PutSettings((GPGX.GPGXSettings) settings),
|
||||||
LibsnesCore snes => snes.PutSettings((LibsnesCore.SnesSettings) settings),
|
LibsnesCore snes => snes.PutSettings((LibsnesCore.SnesSettings) settings),
|
||||||
|
@ -204,7 +204,7 @@ namespace BizHawk.Client.Common
|
||||||
QuickNES quickNes => quickNes.PutSettings((QuickNES.QuickNESSettings) settings),
|
QuickNES quickNes => quickNes.PutSettings((QuickNES.QuickNESSettings) settings),
|
||||||
SMS sms => sms.PutSettings((SMS.SmsSettings) settings),
|
SMS sms => sms.PutSettings((SMS.SmsSettings) settings),
|
||||||
WonderSwan ws => ws.PutSettings((WonderSwan.Settings) settings),
|
WonderSwan ws => ws.PutSettings((WonderSwan.Settings) settings),
|
||||||
_ => false
|
_ => PutSettingsDirtyBits.None
|
||||||
};
|
};
|
||||||
|
|
||||||
public void SetRenderPlanes(params bool[] args)
|
public void SetRenderPlanes(params bool[] args)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using BizHawk.Emulation.Common;
|
||||||
|
|
||||||
namespace BizHawk.Client.Common
|
namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
|
@ -26,7 +27,7 @@ namespace BizHawk.Client.Common
|
||||||
string GetDisplayType();
|
string GetDisplayType();
|
||||||
string GetBoardName();
|
string GetBoardName();
|
||||||
object GetSettings();
|
object GetSettings();
|
||||||
bool PutSettings(object settings);
|
PutSettingsDirtyBits PutSettings(object settings);
|
||||||
void SetRenderPlanes(params bool[] args);
|
void SetRenderPlanes(params bool[] args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2305,11 +2305,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
public void PutCoreSettings(object o)
|
public void PutCoreSettings(object o)
|
||||||
{
|
{
|
||||||
var settable = new SettingsAdapter(Emulator);
|
var settable = new SettingsAdapter(Emulator);
|
||||||
if (settable.HasSettings && settable.PutSettings(o))
|
if (!settable.HasSettings)
|
||||||
{
|
return;
|
||||||
|
var dirty = settable.PutSettings(o);
|
||||||
|
if(dirty.HasFlag(PutSettingsDirtyBits.RebootCore))
|
||||||
FlagNeedsReboot();
|
FlagNeedsReboot();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: Get/Put settings/sync settings methods could become a service we instantiate and use and pass to other forms
|
// TODO: Get/Put settings/sync settings methods could become a service we instantiate and use and pass to other forms
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -2322,8 +2323,12 @@ namespace BizHawk.Client.EmuHawk
|
||||||
{
|
{
|
||||||
AddOnScreenMessage("Attempt to change sync-relevant settings while recording BLOCKED.");
|
AddOnScreenMessage("Attempt to change sync-relevant settings while recording BLOCKED.");
|
||||||
}
|
}
|
||||||
else if (settable.HasSyncSettings && settable.PutSyncSettings(o))
|
else
|
||||||
{
|
{
|
||||||
|
if (!settable.HasSyncSettings)
|
||||||
|
return;
|
||||||
|
var dirty = settable.PutSyncSettings(o);
|
||||||
|
if(dirty.HasFlag(PutSettingsDirtyBits.RebootCore))
|
||||||
FlagNeedsReboot();
|
FlagNeedsReboot();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace BizHawk.Emulation.Common
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="o">an object of the same type as the return for GetSettings</param>
|
/// <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>
|
/// <returns>true if a core reboot will be required to make the changes effective</returns>
|
||||||
bool PutSettings(TSettings o);
|
PutSettingsDirtyBits PutSettings(TSettings o);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// changes the movie-sync relevant settings. THIS SHOULD NEVER BE CALLED WHILE RECORDING
|
/// changes the movie-sync relevant settings. THIS SHOULD NEVER BE CALLED WHILE RECORDING
|
||||||
|
@ -49,7 +49,19 @@ namespace BizHawk.Emulation.Common
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="o">an object of the same type as the return for GetSyncSettings</param>
|
/// <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>
|
/// <returns>true if a core reboot will be required to make the changes effective</returns>
|
||||||
bool PutSyncSettings(TSync o);
|
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,
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -126,7 +138,7 @@ namespace BizHawk.Emulation.Common
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <exception cref="InvalidOperationException">does not have non-sync settings</exception>
|
/// <exception cref="InvalidOperationException">does not have non-sync settings</exception>
|
||||||
public bool PutSettings(object o)
|
public PutSettingsDirtyBits PutSettings(object o)
|
||||||
{
|
{
|
||||||
if (!HasSettings)
|
if (!HasSettings)
|
||||||
{
|
{
|
||||||
|
@ -134,11 +146,11 @@ namespace BizHawk.Emulation.Common
|
||||||
}
|
}
|
||||||
|
|
||||||
_tmp1[0] = o;
|
_tmp1[0] = o;
|
||||||
return (bool)_puts.Invoke(_emu, _tmp1);
|
return (PutSettingsDirtyBits)_puts.Invoke(_emu, _tmp1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <exception cref="InvalidOperationException">does not have sync settings</exception>
|
/// <exception cref="InvalidOperationException">does not have sync settings</exception>
|
||||||
public bool PutSyncSettings(object o)
|
public PutSettingsDirtyBits PutSyncSettings(object o)
|
||||||
{
|
{
|
||||||
if (!HasSyncSettings)
|
if (!HasSyncSettings)
|
||||||
{
|
{
|
||||||
|
@ -146,7 +158,7 @@ namespace BizHawk.Emulation.Common
|
||||||
}
|
}
|
||||||
|
|
||||||
_tmp1[0] = o;
|
_tmp1[0] = o;
|
||||||
return (bool)_putss.Invoke(_emu, _tmp1);
|
return (PutSettingsDirtyBits)_putss.Invoke(_emu, _tmp1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -257,18 +257,18 @@ namespace BizHawk.Emulation.Cores.Arcades.MAME
|
||||||
#region ISettable
|
#region ISettable
|
||||||
|
|
||||||
public object GetSettings() => null;
|
public object GetSettings() => null;
|
||||||
public bool PutSettings(object o) => false;
|
public PutSettingsDirtyBits PutSettings(object o) => PutSettingsDirtyBits.None;
|
||||||
|
|
||||||
public SyncSettings GetSyncSettings()
|
public SyncSettings GetSyncSettings()
|
||||||
{
|
{
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SyncSettings
|
public class SyncSettings
|
||||||
|
|
|
@ -11,10 +11,10 @@ namespace BizHawk.Emulation.Cores.Calculators
|
||||||
return _settings.Clone();
|
return _settings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(TI83Settings o)
|
public PutSettingsDirtyBits PutSettings(TI83Settings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public object GetSyncSettings()
|
public object GetSyncSettings()
|
||||||
|
@ -22,9 +22,9 @@ namespace BizHawk.Emulation.Cores.Calculators
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(object o)
|
public PutSettingsDirtyBits PutSyncSettings(object o)
|
||||||
{
|
{
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TI83Settings
|
public class TI83Settings
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC
|
||||||
return SyncSettings.Clone();
|
return SyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(AmstradCPCSettings o)
|
public PutSettingsDirtyBits PutSettings(AmstradCPCSettings o)
|
||||||
{
|
{
|
||||||
|
|
||||||
// restore user settings to devices
|
// restore user settings to devices
|
||||||
|
@ -42,14 +42,14 @@ namespace BizHawk.Emulation.Cores.Computers.AmstradCPC
|
||||||
|
|
||||||
Settings = o;
|
Settings = o;
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(AmstradCPCSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(AmstradCPCSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = AmstradCPCSyncSettings.NeedsReboot(SyncSettings, o);
|
bool ret = AmstradCPCSyncSettings.NeedsReboot(SyncSettings, o);
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class AmstradCPCSettings
|
public class AmstradCPCSettings
|
||||||
|
|
|
@ -20,16 +20,16 @@ namespace BizHawk.Emulation.Cores.Computers.AppleII
|
||||||
|
|
||||||
public object GetSyncSettings() => null;
|
public object GetSyncSettings() => null;
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
_machine.Video.IsMonochrome = _settings.Monochrome;
|
_machine.Video.IsMonochrome = _settings.Monochrome;
|
||||||
|
|
||||||
SetCallbacks();
|
SetCallbacks();
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(object o) => false;
|
public PutSettingsDirtyBits PutSyncSettings(object o) => PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,16 +16,16 @@ namespace BizHawk.Emulation.Cores.Computers.Commodore64
|
||||||
return SyncSettings.Clone();
|
return SyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(C64Settings o)
|
public PutSettingsDirtyBits PutSettings(C64Settings o)
|
||||||
{
|
{
|
||||||
Settings = o;
|
Settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(C64SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(C64SyncSettings o)
|
||||||
{
|
{
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal C64Settings Settings { get; private set; }
|
internal C64Settings Settings { get; private set; }
|
||||||
|
|
|
@ -16,18 +16,18 @@ namespace BizHawk.Emulation.Cores.Computers.MSX
|
||||||
return SyncSettings.Clone();
|
return SyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(MSXSettings o)
|
public PutSettingsDirtyBits PutSettings(MSXSettings o)
|
||||||
{
|
{
|
||||||
bool ret = MSXSettings.RebootNeeded(Settings, o);
|
bool ret = MSXSettings.RebootNeeded(Settings, o);
|
||||||
Settings = o;
|
Settings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(MSXSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(MSXSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = MSXSyncSettings.RebootNeeded(SyncSettings, o);
|
bool ret = MSXSyncSettings.RebootNeeded(SyncSettings, o);
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal MSXSettings Settings { get; private set; }
|
internal MSXSettings Settings { get; private set; }
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
||||||
|
|
||||||
public ZXSpectrumSyncSettings GetSyncSettings() => SyncSettings.Clone();
|
public ZXSpectrumSyncSettings GetSyncSettings() => SyncSettings.Clone();
|
||||||
|
|
||||||
public bool PutSettings(ZXSpectrumSettings o)
|
public PutSettingsDirtyBits PutSettings(ZXSpectrumSettings o)
|
||||||
{
|
{
|
||||||
// restore user settings to devices
|
// restore user settings to devices
|
||||||
if (_machine?.AYDevice != null)
|
if (_machine?.AYDevice != null)
|
||||||
|
@ -39,14 +39,14 @@ namespace BizHawk.Emulation.Cores.Computers.SinclairSpectrum
|
||||||
|
|
||||||
Settings = o;
|
Settings = o;
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(ZXSpectrumSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(ZXSpectrumSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = ZXSpectrumSyncSettings.NeedsReboot(SyncSettings, o);
|
bool ret = ZXSpectrumSyncSettings.NeedsReboot(SyncSettings, o);
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ZXSpectrumSettings
|
public class ZXSpectrumSettings
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
return SyncSettings.Clone();
|
return SyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(A2600Settings o)
|
public PutSettingsDirtyBits PutSettings(A2600Settings o)
|
||||||
{
|
{
|
||||||
if (Settings == null || Settings.SECAMColors != o.SECAMColors)
|
if (Settings == null || Settings.SECAMColors != o.SECAMColors)
|
||||||
{
|
{
|
||||||
|
@ -29,14 +29,14 @@ namespace BizHawk.Emulation.Cores.Atari.Atari2600
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings = o;
|
Settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(A2600SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(A2600SyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = A2600SyncSettings.NeedsReboot(SyncSettings, o);
|
bool ret = A2600SyncSettings.NeedsReboot(SyncSettings, o);
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal A2600Settings Settings { get; private set; }
|
internal A2600Settings Settings { get; private set; }
|
||||||
|
|
|
@ -18,17 +18,17 @@ namespace BizHawk.Emulation.Cores.Atari.A7800Hawk
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(A7800Settings o)
|
public PutSettingsDirtyBits PutSettings(A7800Settings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(A7800SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(A7800SyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = A7800SyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = A7800SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private A7800Settings _settings = new A7800Settings();
|
private A7800Settings _settings = new A7800Settings();
|
||||||
|
|
|
@ -18,18 +18,18 @@ namespace BizHawk.Emulation.Cores.ColecoVision
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(ColecoSettings o)
|
public PutSettingsDirtyBits PutSettings(ColecoSettings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(ColecoSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(ColecoSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = o.SkipBiosIntro != _syncSettings.SkipBiosIntro;
|
bool ret = o.SkipBiosIntro != _syncSettings.SkipBiosIntro;
|
||||||
ret |= ColecoSyncSettings.NeedsReboot(_syncSettings, o);
|
ret |= ColecoSyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ColecoSettings
|
public class ColecoSettings
|
||||||
|
|
|
@ -19,17 +19,17 @@ namespace BizHawk.Emulation.Cores.Consoles.ChannelF
|
||||||
return SyncSettings.Clone();
|
return SyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(ChannelFSettings o)
|
public PutSettingsDirtyBits PutSettings(ChannelFSettings o)
|
||||||
{
|
{
|
||||||
Settings = o;
|
Settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(ChannelFSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(ChannelFSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = ChannelFSyncSettings.NeedsReboot(SyncSettings, o);
|
bool ret = ChannelFSyncSettings.NeedsReboot(SyncSettings, o);
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ChannelFSettings
|
public class ChannelFSettings
|
||||||
|
|
|
@ -19,17 +19,17 @@ namespace BizHawk.Emulation.Cores.Consoles.Vectrex
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(VectrexSettings o)
|
public PutSettingsDirtyBits PutSettings(VectrexSettings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(VectrexSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(VectrexSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = VectrexSyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = VectrexSyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private VectrexSettings _settings = new VectrexSettings();
|
private VectrexSettings _settings = new VectrexSettings();
|
||||||
|
|
|
@ -18,17 +18,17 @@ namespace BizHawk.Emulation.Cores.Intellivision
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(IntvSettings o)
|
public PutSettingsDirtyBits PutSettings(IntvSettings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(IntvSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(IntvSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = IntvSyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = IntvSyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IntvSettings _settings = new IntvSettings();
|
private IntvSettings _settings = new IntvSettings();
|
||||||
|
|
|
@ -16,17 +16,17 @@ namespace BizHawk.Emulation.Cores.Consoles.O2Hawk
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(O2Settings o)
|
public PutSettingsDirtyBits PutSettings(O2Settings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(O2SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(O2SyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = O2SyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = O2SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public O2Settings _settings = new O2Settings();
|
public O2Settings _settings = new O2Settings();
|
||||||
|
|
|
@ -330,19 +330,19 @@ namespace BizHawk.Emulation.Cores.Consoles.NEC.PCFX
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
var ret = Settings.NeedsReboot(_settings, o);
|
var ret = Settings.NeedsReboot(_settings, o);
|
||||||
_settings = o;
|
_settings = o;
|
||||||
SetLayerSettings();
|
SetLayerSettings();
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetNativeSettingsBeforeInit()
|
private void SetNativeSettingsBeforeInit()
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
|
||||||
return _settings.Clone();
|
return _settings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
LibmGBA.Layers mask = 0;
|
LibmGBA.Layers mask = 0;
|
||||||
if (o.DisplayBG0) mask |= LibmGBA.Layers.BG0;
|
if (o.DisplayBG0) mask |= LibmGBA.Layers.BG0;
|
||||||
|
@ -51,7 +51,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
|
||||||
LibmGBA.BizSetPalette(Core, palette);
|
LibmGBA.BizSetPalette(Core, palette);
|
||||||
|
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Settings _settings;
|
private Settings _settings;
|
||||||
|
@ -139,11 +139,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SyncSettings _syncSettings;
|
private SyncSettings _syncSettings;
|
||||||
|
|
|
@ -18,16 +18,16 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBA
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(object o)
|
public PutSettingsDirtyBits PutSettings(object o)
|
||||||
{
|
{
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SyncSettings _syncSettings;
|
private SyncSettings _syncSettings;
|
||||||
|
|
|
@ -20,17 +20,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawk
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(GBSettings o)
|
public PutSettingsDirtyBits PutSettings(GBSettings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GBSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GBSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GBSyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = GBSyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GBSettings _settings = new GBSettings();
|
private GBSettings _settings = new GBSettings();
|
||||||
|
|
|
@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink
|
||||||
|
|
||||||
public GBLinkSyncSettings GetSyncSettings() => linkSyncSettings.Clone();
|
public GBLinkSyncSettings GetSyncSettings() => linkSyncSettings.Clone();
|
||||||
|
|
||||||
public bool PutSettings(GBLinkSettings o)
|
public PutSettingsDirtyBits PutSettings(GBLinkSettings o)
|
||||||
{
|
{
|
||||||
linkSettings = o;
|
linkSettings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GBLinkSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GBLinkSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GBLinkSyncSettings.NeedsReboot(linkSyncSettings, o);
|
bool ret = GBLinkSyncSettings.NeedsReboot(linkSyncSettings, o);
|
||||||
linkSyncSettings = o;
|
linkSyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GBLinkSettings linkSettings = new GBLinkSettings();
|
private GBLinkSettings linkSettings = new GBLinkSettings();
|
||||||
|
|
|
@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink3x
|
||||||
|
|
||||||
public GBLink3xSyncSettings GetSyncSettings() => Link3xSyncSettings.Clone();
|
public GBLink3xSyncSettings GetSyncSettings() => Link3xSyncSettings.Clone();
|
||||||
|
|
||||||
public bool PutSettings(GBLink3xSettings o)
|
public PutSettingsDirtyBits PutSettings(GBLink3xSettings o)
|
||||||
{
|
{
|
||||||
Link3xSettings = o;
|
Link3xSettings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GBLink3xSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GBLink3xSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GBLink3xSyncSettings.NeedsReboot(Link3xSyncSettings, o);
|
bool ret = GBLink3xSyncSettings.NeedsReboot(Link3xSyncSettings, o);
|
||||||
Link3xSyncSettings = o;
|
Link3xSyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GBLink3xSettings Link3xSettings = new GBLink3xSettings();
|
private GBLink3xSettings Link3xSettings = new GBLink3xSettings();
|
||||||
|
|
|
@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x
|
||||||
|
|
||||||
public GBLink4xSyncSettings GetSyncSettings() => Link4xSyncSettings.Clone();
|
public GBLink4xSyncSettings GetSyncSettings() => Link4xSyncSettings.Clone();
|
||||||
|
|
||||||
public bool PutSettings(GBLink4xSettings o)
|
public PutSettingsDirtyBits PutSettings(GBLink4xSettings o)
|
||||||
{
|
{
|
||||||
Link4xSettings = o;
|
Link4xSettings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GBLink4xSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GBLink4xSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GBLink4xSyncSettings.NeedsReboot(Link4xSyncSettings, o);
|
bool ret = GBLink4xSyncSettings.NeedsReboot(Link4xSyncSettings, o);
|
||||||
Link4xSyncSettings = o;
|
Link4xSyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GBLink4xSettings Link4xSettings = new GBLink4xSettings();
|
private GBLink4xSettings Link4xSettings = new GBLink4xSettings();
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
return _settings.Clone();
|
return _settings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(GambatteSettings o)
|
public PutSettingsDirtyBits PutSettings(GambatteSettings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
if (IsCGBMode())
|
if (IsCGBMode())
|
||||||
|
@ -26,7 +26,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
ChangeDMGColors(_settings.GBPalette);
|
ChangeDMGColors(_settings.GBPalette);
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GambatteSyncSettings GetSyncSettings()
|
public GambatteSyncSettings GetSyncSettings()
|
||||||
|
@ -34,11 +34,11 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GambatteSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GambatteSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GambatteSyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = GambatteSyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GambatteSettings _settings;
|
private GambatteSettings _settings;
|
||||||
|
|
|
@ -21,14 +21,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(GambatteLinkSettings o)
|
public PutSettingsDirtyBits PutSettings(GambatteLinkSettings o)
|
||||||
{
|
{
|
||||||
return L.PutSettings(o.L) || R.PutSettings(o.R);
|
return (PutSettingsDirtyBits)((int)L.PutSettings(o.L) | (int)R.PutSettings(o.R));
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GambatteLinkSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GambatteLinkSyncSettings o)
|
||||||
{
|
{
|
||||||
return L.PutSyncSettings(o.L) || R.PutSyncSettings(o.R);
|
return (PutSettingsDirtyBits)((int)L.PutSyncSettings(o.L) | (int)R.PutSyncSettings(o.R));
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GambatteLinkSettings
|
public class GambatteLinkSettings
|
||||||
|
|
|
@ -245,18 +245,18 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
var ret = Settings.NeedsReboot(_settings, o);
|
var ret = Settings.NeedsReboot(_settings, o);
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -14,17 +14,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.N64
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(N64Settings o)
|
public PutSettingsDirtyBits PutSettings(N64Settings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return true;
|
return PutSettingsDirtyBits.RebootCore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(N64SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(N64SyncSettings o)
|
||||||
{
|
{
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
SetControllerButtons();
|
SetControllerButtons();
|
||||||
return true;
|
return PutSettingsDirtyBits.RebootCore;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetControllerButtons()
|
private void SetControllerButtons()
|
||||||
|
|
|
@ -30,14 +30,14 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(MelonSettings o)
|
public PutSettingsDirtyBits PutSettings(MelonSettings o)
|
||||||
{
|
{
|
||||||
_settings = o ?? new MelonSettings();
|
_settings = o ?? new MelonSettings();
|
||||||
SetScaleFactor(_settings.ScaleFactor);
|
SetScaleFactor(_settings.ScaleFactor);
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(MelonSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(MelonSyncSettings o)
|
||||||
{
|
{
|
||||||
if (o == null)
|
if (o == null)
|
||||||
{
|
{
|
||||||
|
@ -54,7 +54,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.NDS
|
||||||
SetTimeAtBoot(o.TimeAtBoot);
|
SetTimeAtBoot(o.TimeAtBoot);
|
||||||
|
|
||||||
// At present, no sync settings can be modified without requiring a reboot.
|
// At present, no sync settings can be modified without requiring a reboot.
|
||||||
return true;
|
return PutSettingsDirtyBits.RebootCore;
|
||||||
}
|
}
|
||||||
|
|
||||||
[DllImport(dllPath)]
|
[DllImport(dllPath)]
|
||||||
|
|
|
@ -12,7 +12,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
|
|
||||||
public NESSyncSettings GetSyncSettings() => SyncSettings.Clone();
|
public NESSyncSettings GetSyncSettings() => SyncSettings.Clone();
|
||||||
|
|
||||||
public bool PutSettings(NESSettings o)
|
public PutSettingsDirtyBits PutSettings(NESSettings o)
|
||||||
{
|
{
|
||||||
Settings = o;
|
Settings = o;
|
||||||
if (Settings.ClipLeftAndRight)
|
if (Settings.ClipLeftAndRight)
|
||||||
|
@ -30,14 +30,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.NES
|
||||||
|
|
||||||
apu.m_vol = Settings.APU_vol;
|
apu.m_vol = Settings.APU_vol;
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(NESSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(NESSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = NESSyncSettings.NeedsReboot(SyncSettings, o);
|
bool ret = NESSyncSettings.NeedsReboot(SyncSettings, o);
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal NESSettings Settings = new NESSettings();
|
internal NESSettings Settings = new NESSettings();
|
||||||
|
|
|
@ -21,21 +21,21 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.QuickNES
|
||||||
return _syncSettingsNext.Clone();
|
return _syncSettingsNext.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(QuickNESSettings o)
|
public PutSettingsDirtyBits PutSettings(QuickNESSettings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
QN.qn_set_sprite_limit(Context, _settings.NumSprites);
|
QN.qn_set_sprite_limit(Context, _settings.NumSprites);
|
||||||
RecalculateCrops();
|
RecalculateCrops();
|
||||||
CalculatePalette();
|
CalculatePalette();
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(QuickNESSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(QuickNESSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = QuickNESSyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = QuickNESSyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettingsNext = o;
|
_syncSettingsNext = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private QuickNESSettings _settings;
|
private QuickNESSettings _settings;
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(SnesSettings o)
|
public PutSettingsDirtyBits PutSettings(SnesSettings o)
|
||||||
{
|
{
|
||||||
bool refreshNeeded = o.Palette != _settings.Palette;
|
bool refreshNeeded = o.Palette != _settings.Palette;
|
||||||
_settings = o;
|
_settings = o;
|
||||||
|
@ -23,17 +23,17 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES
|
||||||
RefreshPalette();
|
RefreshPalette();
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SnesSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SnesSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = o.LeftPort != _syncSettings.LeftPort
|
bool ret = o.LeftPort != _syncSettings.LeftPort
|
||||||
|| o.RightPort != _syncSettings.RightPort
|
|| o.RightPort != _syncSettings.RightPort
|
||||||
|| o.LimitAnalogChangeSensitivity != _syncSettings.LimitAnalogChangeSensitivity;
|
|| o.LimitAnalogChangeSensitivity != _syncSettings.LimitAnalogChangeSensitivity;
|
||||||
|
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private SnesSettings _settings;
|
private SnesSettings _settings;
|
||||||
|
|
|
@ -308,7 +308,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES9X
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
int s = 0;
|
int s = 0;
|
||||||
|
@ -334,14 +334,14 @@ namespace BizHawk.Emulation.Cores.Nintendo.SNES9X
|
||||||
if (o.ShowSprites3) l |= 2048;
|
if (o.ShowSprites3) l |= 2048;
|
||||||
_core.biz_set_layers(l);
|
_core.biz_set_layers(l);
|
||||||
|
|
||||||
return false; // no reboot needed
|
return PutSettingsDirtyBits.None; // no reboot needed
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Settings
|
public class Settings
|
||||||
|
|
|
@ -58,7 +58,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SubGBHawk
|
||||||
|
|
||||||
public GBHawk.GBHawk.GBSettings GetSettings() => _GBCore.GetSettings();
|
public GBHawk.GBHawk.GBSettings GetSettings() => _GBCore.GetSettings();
|
||||||
public GBHawk.GBHawk.GBSyncSettings GetSyncSettings() => _GBCore.GetSyncSettings();
|
public GBHawk.GBHawk.GBSyncSettings GetSyncSettings() => _GBCore.GetSyncSettings();
|
||||||
public bool PutSettings(GBHawk.GBHawk.GBSettings o) => _GBCore.PutSettings(o);
|
public PutSettingsDirtyBits PutSettings(GBHawk.GBHawk.GBSettings o) => _GBCore.PutSettings(o);
|
||||||
public bool PutSyncSettings(GBHawk.GBHawk.GBSyncSettings o) => _GBCore.PutSyncSettings(o);
|
public PutSettingsDirtyBits PutSyncSettings(GBHawk.GBHawk.GBSyncSettings o) => _GBCore.PutSyncSettings(o);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,7 +84,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SubNESHawk
|
||||||
|
|
||||||
public NES.NES.NESSettings GetSettings() => _nesCore.GetSettings();
|
public NES.NES.NESSettings GetSettings() => _nesCore.GetSettings();
|
||||||
public NES.NES.NESSyncSettings GetSyncSettings() => _nesCore.GetSyncSettings();
|
public NES.NES.NESSyncSettings GetSyncSettings() => _nesCore.GetSyncSettings();
|
||||||
public bool PutSettings(NES.NES.NESSettings o) => _nesCore.PutSettings(o);
|
public PutSettingsDirtyBits PutSettings(NES.NES.NESSettings o) => _nesCore.PutSettings(o);
|
||||||
public bool PutSyncSettings(NES.NES.NESSyncSettings o) => _nesCore.PutSyncSettings(o);
|
public PutSettingsDirtyBits PutSyncSettings(NES.NES.NESSyncSettings o) => _nesCore.PutSyncSettings(o);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -234,18 +234,18 @@ namespace BizHawk.Emulation.Cores.Consoles.Nintendo.VB
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
var ret = Settings.NeedsReboot(_settings, o);
|
var ret = Settings.NeedsReboot(_settings, o);
|
||||||
_settings = o;
|
_settings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace BizHawk.Emulation.Cores.PCEngine
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(PCESettings o)
|
public PutSettingsDirtyBits PutSettings(PCESettings o)
|
||||||
{
|
{
|
||||||
bool ret;
|
bool ret;
|
||||||
if (o.ArcadeCardRewindHack != Settings.ArcadeCardRewindHack
|
if (o.ArcadeCardRewindHack != Settings.ArcadeCardRewindHack
|
||||||
|
@ -32,14 +32,14 @@ namespace BizHawk.Emulation.Cores.PCEngine
|
||||||
|
|
||||||
Settings = o;
|
Settings = o;
|
||||||
|
|
||||||
return ret;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(PCESyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(PCESyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = PCESyncSettings.NeedsReboot(o, _syncSettings);
|
bool ret = PCESyncSettings.NeedsReboot(o, _syncSettings);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PCESettings Settings;
|
public PCESettings Settings;
|
||||||
|
|
|
@ -166,16 +166,16 @@ namespace BizHawk.Emulation.Cores.Consoles.SNK
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(object o)
|
public PutSettingsDirtyBits PutSettings(object o)
|
||||||
{
|
{
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -16,17 +16,17 @@ namespace BizHawk.Emulation.Cores.Sega.GGHawkLink
|
||||||
return linkSyncSettings.Clone();
|
return linkSyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(GGLinkSettings o)
|
public PutSettingsDirtyBits PutSettings(GGLinkSettings o)
|
||||||
{
|
{
|
||||||
linkSettings = o;
|
linkSettings = o;
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GGLinkSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GGLinkSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GGLinkSyncSettings.NeedsReboot(linkSyncSettings, o);
|
bool ret = GGLinkSyncSettings.NeedsReboot(linkSyncSettings, o);
|
||||||
linkSyncSettings = o;
|
linkSyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private GGLinkSettings linkSettings = new GGLinkSettings();
|
private GGLinkSettings linkSettings = new GGLinkSettings();
|
||||||
|
|
|
@ -229,16 +229,16 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.PicoDrive
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(object o)
|
public PutSettingsDirtyBits PutSettings(object o)
|
||||||
{
|
{
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
var ret = SyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -9,18 +9,18 @@ namespace BizHawk.Emulation.Cores.Sega.MasterSystem
|
||||||
|
|
||||||
public SmsSyncSettings GetSyncSettings() => SyncSettings.Clone();
|
public SmsSyncSettings GetSyncSettings() => SyncSettings.Clone();
|
||||||
|
|
||||||
public bool PutSettings(SmsSettings o)
|
public PutSettingsDirtyBits PutSettings(SmsSettings o)
|
||||||
{
|
{
|
||||||
bool ret = SmsSettings.RebootNeeded(Settings, o);
|
bool ret = SmsSettings.RebootNeeded(Settings, o);
|
||||||
Settings = o;
|
Settings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SmsSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SmsSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = SmsSyncSettings.RebootNeeded(SyncSettings, o);
|
bool ret = SmsSyncSettings.RebootNeeded(SyncSettings, o);
|
||||||
SyncSettings = o;
|
SyncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal SmsSettings Settings { get; private set; }
|
internal SmsSettings Settings { get; private set; }
|
||||||
|
|
|
@ -439,7 +439,7 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
||||||
return _settings.Clone();
|
return _settings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings s)
|
public PutSettingsDirtyBits PutSettings(Settings s)
|
||||||
{
|
{
|
||||||
var ret = Settings.NeedsReboot(_settings, s);
|
var ret = Settings.NeedsReboot(_settings, s);
|
||||||
_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)
|
//(the correct aspect ratio is no longer an option for other reasons)
|
||||||
//_core.SetVideoParameters(s.CorrectAspectRatio, s.HBlend, s.HOverscan, sls, sle);
|
//_core.SetVideoParameters(s.CorrectAspectRatio, s.HBlend, s.HOverscan, sls, sle);
|
||||||
|
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SyncSettings GetSyncSettings()
|
public SyncSettings GetSyncSettings()
|
||||||
|
@ -457,11 +457,11 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.Saturn
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings s)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings s)
|
||||||
{
|
{
|
||||||
var ret = SyncSettings.NeedsReboot(_syncSettings, s);
|
var ret = SyncSettings.NeedsReboot(_syncSettings, s);
|
||||||
_syncSettings = s;
|
_syncSettings = s;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetVideoParameters()
|
private void SetVideoParameters()
|
||||||
|
|
|
@ -21,19 +21,19 @@ namespace BizHawk.Emulation.Cores.Consoles.Sega.gpgx
|
||||||
return _syncSettings.Clone();
|
return _syncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(GPGXSettings o)
|
public PutSettingsDirtyBits PutSettings(GPGXSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GPGXSettings.NeedsReboot(_settings, o);
|
bool ret = GPGXSettings.NeedsReboot(_settings, o);
|
||||||
_settings = o;
|
_settings = o;
|
||||||
Core.gpgx_set_draw_mask(_settings.GetDrawMask());
|
Core.gpgx_set_draw_mask(_settings.GetDrawMask());
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(GPGXSyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(GPGXSyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = GPGXSyncSettings.NeedsReboot(_syncSettings, o);
|
bool ret = GPGXSyncSettings.NeedsReboot(_syncSettings, o);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class UintToHexConverter : TypeConverter
|
private class UintToHexConverter : TypeConverter
|
||||||
|
|
|
@ -1271,17 +1271,17 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
|
||||||
return _SyncSettings.Clone();
|
return _SyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
_Settings.Validate();
|
_Settings.Validate();
|
||||||
_Settings = o;
|
_Settings = o;
|
||||||
|
|
||||||
//TODO - store settings into core? or we can just keep doing it before frameadvance
|
//TODO - store settings into core? or we can just keep doing it before frameadvance
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
//currently LEC and pad settings changes both require reboot
|
//currently LEC and pad settings changes both require reboot
|
||||||
bool reboot = true;
|
bool reboot = true;
|
||||||
|
@ -1293,7 +1293,7 @@ namespace BizHawk.Emulation.Cores.Sony.PSX
|
||||||
_SyncSettings = o;
|
_SyncSettings = o;
|
||||||
|
|
||||||
|
|
||||||
return reboot;
|
return reboot ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
|
@ -158,19 +158,19 @@ namespace BizHawk.Emulation.Cores.WonderSwan
|
||||||
|
|
||||||
public SyncSettings GetSyncSettings() => _syncSettings.Clone();
|
public SyncSettings GetSyncSettings() => _syncSettings.Clone();
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
_settings = o;
|
_settings = o;
|
||||||
var native = _settings.GetNativeSettings();
|
var native = _settings.GetNativeSettings();
|
||||||
BizSwan.bizswan_putsettings(Core, ref native);
|
BizSwan.bizswan_putsettings(Core, ref native);
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
bool ret = SyncSettings.NeedsReboot(o, _syncSettings);
|
||||||
_syncSettings = o;
|
_syncSettings = o;
|
||||||
return ret;
|
return ret ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using BizHawk.Common;
|
using BizHawk.Common;
|
||||||
|
using BizHawk.Emulation.Common;
|
||||||
|
|
||||||
namespace BizHawk.Emulation.Cores.Libretro
|
namespace BizHawk.Emulation.Cores.Libretro
|
||||||
{
|
{
|
||||||
|
@ -49,17 +50,17 @@ namespace BizHawk.Emulation.Cores.Libretro
|
||||||
return _SyncSettings.Clone();
|
return _SyncSettings.Clone();
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSettings(Settings o)
|
public PutSettingsDirtyBits PutSettings(Settings o)
|
||||||
{
|
{
|
||||||
_Settings.Validate();
|
_Settings.Validate();
|
||||||
_Settings = o;
|
_Settings = o;
|
||||||
|
|
||||||
//TODO - store settings into core? or we can just keep doing it before frameadvance
|
//TODO - store settings into core? or we can just keep doing it before frameadvance
|
||||||
|
|
||||||
return false;
|
return PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool PutSyncSettings(SyncSettings o)
|
public PutSettingsDirtyBits PutSyncSettings(SyncSettings o)
|
||||||
{
|
{
|
||||||
bool reboot = false;
|
bool reboot = false;
|
||||||
|
|
||||||
|
@ -68,7 +69,7 @@ namespace BizHawk.Emulation.Cores.Libretro
|
||||||
|
|
||||||
_SyncSettings = o;
|
_SyncSettings = o;
|
||||||
|
|
||||||
return reboot;
|
return reboot ? PutSettingsDirtyBits.RebootCore : PutSettingsDirtyBits.None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue