simplify CoreCom copying by implementing a Clone method, simplifies all the cores that have cores in them, this copies a lot more things than the original code had but it seems that's either fine or fixing broken stuff
This commit is contained in:
parent
a50467846c
commit
211883889b
|
@ -17,6 +17,8 @@ namespace BizHawk.Emulation.Common
|
||||||
Notify = notifyMessage;
|
Notify = notifyMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CoreComm Clone() => (CoreComm)MemberwiseClone();
|
||||||
|
|
||||||
public ICoreFileProvider CoreFileProvider { get; set; }
|
public ICoreFileProvider CoreFileProvider { get; set; }
|
||||||
|
|
||||||
// a core should set these if you wish to provide rom status information yourself. otherwise it will be calculated by the frontend in a way you may not like, using RomGame-related concepts.
|
// a core should set these if you wish to provide rom status information yourself. otherwise it will be calculated by the frontend in a way you may not like, using RomGame-related concepts.
|
||||||
|
|
|
@ -57,11 +57,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink
|
||||||
temp_sync_L.RTCOffset = linkSyncSettings.RTCOffset_L;
|
temp_sync_L.RTCOffset = linkSyncSettings.RTCOffset_L;
|
||||||
temp_sync_R.RTCOffset = linkSyncSettings.RTCOffset_R;
|
temp_sync_R.RTCOffset = linkSyncSettings.RTCOffset_R;
|
||||||
|
|
||||||
L = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
L = new GBHawk.GBHawk(comm.Clone(), game_L, rom_L, temp_set_L, temp_sync_L);
|
||||||
game_L, rom_L, temp_set_L, temp_sync_L);
|
R = new GBHawk.GBHawk(comm.Clone(), game_R, rom_R, temp_set_R, temp_sync_R);
|
||||||
|
|
||||||
R = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
|
||||||
game_R, rom_R, temp_set_R, temp_sync_R);
|
|
||||||
|
|
||||||
ser.Register<IVideoProvider>(this);
|
ser.Register<IVideoProvider>(this);
|
||||||
ser.Register<ISoundProvider>(this);
|
ser.Register<ISoundProvider>(this);
|
||||||
|
|
|
@ -63,14 +63,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink3x
|
||||||
tempSyncC.RTCOffset = Link3xSyncSettings.RTCOffset_C;
|
tempSyncC.RTCOffset = Link3xSyncSettings.RTCOffset_C;
|
||||||
tempSyncR.RTCOffset = Link3xSyncSettings.RTCOffset_R;
|
tempSyncR.RTCOffset = Link3xSyncSettings.RTCOffset_R;
|
||||||
|
|
||||||
L = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
L = new GBHawk.GBHawk(comm.Clone(), game_L, rom_L, tempSetL, tempSyncL);
|
||||||
game_L, rom_L, tempSetL, tempSyncL);
|
C = new GBHawk.GBHawk(comm.Clone(), game_C, rom_C, tempSetC, tempSyncC);
|
||||||
|
R = new GBHawk.GBHawk(comm.Clone(), game_R, rom_R, tempSetR, tempSyncR);
|
||||||
C = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
|
||||||
game_C, rom_C, tempSetC, tempSyncC);
|
|
||||||
|
|
||||||
R = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
|
||||||
game_R, rom_R, tempSetR, tempSyncR);
|
|
||||||
|
|
||||||
ser.Register<IVideoProvider>(this);
|
ser.Register<IVideoProvider>(this);
|
||||||
ser.Register<ISoundProvider>(this);
|
ser.Register<ISoundProvider>(this);
|
||||||
|
|
|
@ -90,17 +90,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x
|
||||||
tempSyncC.RTCOffset = Link4xSyncSettings.RTCOffset_C;
|
tempSyncC.RTCOffset = Link4xSyncSettings.RTCOffset_C;
|
||||||
tempSyncD.RTCOffset = Link4xSyncSettings.RTCOffset_D;
|
tempSyncD.RTCOffset = Link4xSyncSettings.RTCOffset_D;
|
||||||
|
|
||||||
A = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
A = new GBHawk.GBHawk(comm.Clone(), game_A, rom_A, tempSetA, tempSyncA);
|
||||||
game_A, rom_A, tempSetA, tempSyncA);
|
B = new GBHawk.GBHawk(comm.Clone(), game_B, rom_B, tempSetB, tempSyncB);
|
||||||
|
C = new GBHawk.GBHawk(comm.Clone(), game_C, rom_C, tempSetC, tempSyncC);
|
||||||
B = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
D = new GBHawk.GBHawk(comm.Clone(), game_D, rom_D, tempSetD, tempSyncD);
|
||||||
game_B, rom_B, tempSetB, tempSyncB);
|
|
||||||
|
|
||||||
C = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
|
||||||
game_C, rom_C, tempSetC, tempSyncC);
|
|
||||||
|
|
||||||
D = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
|
||||||
game_D, rom_D, tempSetD, tempSyncD);
|
|
||||||
|
|
||||||
ser.Register<IVideoProvider>(this);
|
ser.Register<IVideoProvider>(this);
|
||||||
ser.Register<ISoundProvider>(this);
|
ser.Register<ISoundProvider>(this);
|
||||||
|
|
|
@ -18,10 +18,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
||||||
GambatteLinkSyncSettings linkSyncSettings = (GambatteLinkSyncSettings)syncSettings ?? new GambatteLinkSyncSettings();
|
GambatteLinkSyncSettings linkSyncSettings = (GambatteLinkSyncSettings)syncSettings ?? new GambatteLinkSyncSettings();
|
||||||
|
|
||||||
CoreComm = comm;
|
CoreComm = comm;
|
||||||
L = new Gameboy(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
L = new Gameboy(comm.Clone(), leftinfo, leftrom, linkSettings.L, linkSyncSettings.L, deterministic);
|
||||||
leftinfo, leftrom, linkSettings.L, linkSyncSettings.L, deterministic);
|
R = new Gameboy(comm.Clone(), rightinfo, rightrom, linkSettings.R, linkSyncSettings.R, deterministic);
|
||||||
R = new Gameboy(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
|
||||||
rightinfo, rightrom, linkSettings.R, linkSyncSettings.R, deterministic);
|
|
||||||
|
|
||||||
// connect link cable
|
// connect link cable
|
||||||
LibGambatte.gambatte_linkstatus(L.GambatteState, 259);
|
LibGambatte.gambatte_linkstatus(L.GambatteState, 259);
|
||||||
|
|
|
@ -19,8 +19,7 @@ namespace BizHawk.Emulation.Cores.Nintendo.SubGBHawk
|
||||||
var subGBSettings = (GBHawk.GBHawk.GBSettings)settings ?? new GBHawk.GBHawk.GBSettings();
|
var subGBSettings = (GBHawk.GBHawk.GBSettings)settings ?? new GBHawk.GBHawk.GBSettings();
|
||||||
var subGBSyncSettings = (GBHawk.GBHawk.GBSyncSettings)syncSettings ?? new GBHawk.GBHawk.GBSyncSettings();
|
var subGBSyncSettings = (GBHawk.GBHawk.GBSyncSettings)syncSettings ?? new GBHawk.GBHawk.GBSyncSettings();
|
||||||
|
|
||||||
_GBCore = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
_GBCore = new GBHawk.GBHawk(comm.Clone(), game, rom, subGBSettings, subGBSyncSettings);
|
||||||
game, rom, subGBSettings, subGBSyncSettings);
|
|
||||||
|
|
||||||
HardReset();
|
HardReset();
|
||||||
current_cycle = 0;
|
current_cycle = 0;
|
||||||
|
|
|
@ -15,12 +15,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.SubNESHawk
|
||||||
[CoreConstructor("NES")]
|
[CoreConstructor("NES")]
|
||||||
public SubNESHawk(CoreComm comm, GameInfo game, byte[] rom, /*string gameDbFn,*/ object settings, object syncSettings)
|
public SubNESHawk(CoreComm comm, GameInfo game, byte[] rom, /*string gameDbFn,*/ object settings, object syncSettings)
|
||||||
{
|
{
|
||||||
|
|
||||||
var subNesSettings = (NES.NES.NESSettings)settings ?? new NES.NES.NESSettings();
|
var subNesSettings = (NES.NES.NESSettings)settings ?? new NES.NES.NESSettings();
|
||||||
var subNesSyncSettings = (NES.NES.NESSyncSettings)syncSettings ?? new NES.NES.NESSyncSettings();
|
var subNesSyncSettings = (NES.NES.NESSyncSettings)syncSettings ?? new NES.NES.NESSyncSettings();
|
||||||
|
|
||||||
_nesCore = new NES.NES(new CoreComm(comm.ShowMessage, comm.Notify) {CoreFileProvider = comm.CoreFileProvider},
|
_nesCore = new NES.NES(comm.Clone(), game, rom, subNesSettings, subNesSyncSettings)
|
||||||
game, rom, subNesSettings, subNesSyncSettings)
|
|
||||||
{
|
{
|
||||||
using_reset_timing = true
|
using_reset_timing = true
|
||||||
};
|
};
|
||||||
|
|
|
@ -40,17 +40,14 @@ namespace BizHawk.Emulation.Cores.Sega.GGHawkLink
|
||||||
var temp_sync_L = new SMS.SmsSyncSettings();
|
var temp_sync_L = new SMS.SmsSyncSettings();
|
||||||
var temp_sync_R = new SMS.SmsSyncSettings();
|
var temp_sync_R = new SMS.SmsSyncSettings();
|
||||||
|
|
||||||
L = new SMS(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
L = new SMS(comm.Clone(), game_L, rom_L, temp_set_L, temp_sync_L);
|
||||||
game_L, rom_L, temp_set_L, temp_sync_L);
|
R = new SMS(comm.Clone(), game_R, rom_R, temp_set_R, temp_sync_R);
|
||||||
|
|
||||||
R = new SMS(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
|
||||||
game_R, rom_R, temp_set_R, temp_sync_R);
|
|
||||||
|
|
||||||
ser.Register<IVideoProvider>(this);
|
ser.Register<IVideoProvider>(this);
|
||||||
ser.Register<ISoundProvider>(this);
|
ser.Register<ISoundProvider>(this);
|
||||||
|
|
||||||
_tracer = new TraceBuffer { Header = L.Cpu.TraceHeader };
|
_tracer = new TraceBuffer { Header = L.Cpu.TraceHeader };
|
||||||
ser.Register<ITraceable>(_tracer);
|
ser.Register(_tracer);
|
||||||
|
|
||||||
ServiceProvider = ser;
|
ServiceProvider = ser;
|
||||||
|
|
||||||
|
|
|
@ -248,6 +248,7 @@
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Coalescer/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Coalescer/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=codepath/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=codepath/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
||||||
|
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Coleco/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Coleco/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=Colecovision/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=Colecovision/@EntryIndexedValue">True</s:Boolean>
|
||||||
<s:Boolean x:Key="/Default/UserDictionary/Words/=colesced/@EntryIndexedValue">True</s:Boolean>
|
<s:Boolean x:Key="/Default/UserDictionary/Words/=colesced/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
|
Loading…
Reference in New Issue