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;
|
||||
}
|
||||
|
||||
public CoreComm Clone() => (CoreComm)MemberwiseClone();
|
||||
|
||||
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.
|
||||
|
|
|
@ -57,11 +57,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink
|
|||
temp_sync_L.RTCOffset = linkSyncSettings.RTCOffset_L;
|
||||
temp_sync_R.RTCOffset = linkSyncSettings.RTCOffset_R;
|
||||
|
||||
L = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
game_L, rom_L, temp_set_L, temp_sync_L);
|
||||
|
||||
R = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
game_R, rom_R, temp_set_R, temp_sync_R);
|
||||
L = new GBHawk.GBHawk(comm.Clone(), 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);
|
||||
|
||||
ser.Register<IVideoProvider>(this);
|
||||
ser.Register<ISoundProvider>(this);
|
||||
|
|
|
@ -63,14 +63,9 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink3x
|
|||
tempSyncC.RTCOffset = Link3xSyncSettings.RTCOffset_C;
|
||||
tempSyncR.RTCOffset = Link3xSyncSettings.RTCOffset_R;
|
||||
|
||||
L = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
game_L, rom_L, tempSetL, tempSyncL);
|
||||
|
||||
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);
|
||||
L = new GBHawk.GBHawk(comm.Clone(), 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);
|
||||
|
||||
ser.Register<IVideoProvider>(this);
|
||||
ser.Register<ISoundProvider>(this);
|
||||
|
|
|
@ -90,17 +90,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.GBHawkLink4x
|
|||
tempSyncC.RTCOffset = Link4xSyncSettings.RTCOffset_C;
|
||||
tempSyncD.RTCOffset = Link4xSyncSettings.RTCOffset_D;
|
||||
|
||||
A = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
game_A, rom_A, tempSetA, tempSyncA);
|
||||
|
||||
B = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
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);
|
||||
A = new GBHawk.GBHawk(comm.Clone(), 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);
|
||||
D = new GBHawk.GBHawk(comm.Clone(), game_D, rom_D, tempSetD, tempSyncD);
|
||||
|
||||
ser.Register<IVideoProvider>(this);
|
||||
ser.Register<ISoundProvider>(this);
|
||||
|
|
|
@ -18,10 +18,8 @@ namespace BizHawk.Emulation.Cores.Nintendo.Gameboy
|
|||
GambatteLinkSyncSettings linkSyncSettings = (GambatteLinkSyncSettings)syncSettings ?? new GambatteLinkSyncSettings();
|
||||
|
||||
CoreComm = comm;
|
||||
L = new Gameboy(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
leftinfo, leftrom, linkSettings.L, linkSyncSettings.L, deterministic);
|
||||
R = new Gameboy(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
rightinfo, rightrom, linkSettings.R, linkSyncSettings.R, deterministic);
|
||||
L = new Gameboy(comm.Clone(), leftinfo, leftrom, linkSettings.L, linkSyncSettings.L, deterministic);
|
||||
R = new Gameboy(comm.Clone(), rightinfo, rightrom, linkSettings.R, linkSyncSettings.R, deterministic);
|
||||
|
||||
// connect link cable
|
||||
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 subGBSyncSettings = (GBHawk.GBHawk.GBSyncSettings)syncSettings ?? new GBHawk.GBHawk.GBSyncSettings();
|
||||
|
||||
_GBCore = new GBHawk.GBHawk(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
game, rom, subGBSettings, subGBSyncSettings);
|
||||
_GBCore = new GBHawk.GBHawk(comm.Clone(), game, rom, subGBSettings, subGBSyncSettings);
|
||||
|
||||
HardReset();
|
||||
current_cycle = 0;
|
||||
|
|
|
@ -15,12 +15,10 @@ namespace BizHawk.Emulation.Cores.Nintendo.SubNESHawk
|
|||
[CoreConstructor("NES")]
|
||||
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 subNesSyncSettings = (NES.NES.NESSyncSettings)syncSettings ?? new NES.NES.NESSyncSettings();
|
||||
|
||||
_nesCore = new NES.NES(new CoreComm(comm.ShowMessage, comm.Notify) {CoreFileProvider = comm.CoreFileProvider},
|
||||
game, rom, subNesSettings, subNesSyncSettings)
|
||||
_nesCore = new NES.NES(comm.Clone(), game, rom, subNesSettings, subNesSyncSettings)
|
||||
{
|
||||
using_reset_timing = true
|
||||
};
|
||||
|
|
|
@ -40,17 +40,14 @@ namespace BizHawk.Emulation.Cores.Sega.GGHawkLink
|
|||
var temp_sync_L = new SMS.SmsSyncSettings();
|
||||
var temp_sync_R = new SMS.SmsSyncSettings();
|
||||
|
||||
L = new SMS(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
game_L, rom_L, temp_set_L, temp_sync_L);
|
||||
|
||||
R = new SMS(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider },
|
||||
game_R, rom_R, temp_set_R, temp_sync_R);
|
||||
L = new SMS(comm.Clone(), 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);
|
||||
|
||||
ser.Register<IVideoProvider>(this);
|
||||
ser.Register<ISoundProvider>(this);
|
||||
|
||||
_tracer = new TraceBuffer { Header = L.Cpu.TraceHeader };
|
||||
ser.Register<ITraceable>(_tracer);
|
||||
ser.Register(_tracer);
|
||||
|
||||
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/=codepath/@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/=colesced/@EntryIndexedValue">True</s:Boolean>
|
||||
|
|
Loading…
Reference in New Issue