public SubNESHawk(CoreComm comm, GameInfo game, byte[] rom, /*string gameDbFn,*/ object settings, object syncSettings) { var ser = new BasicServiceProvider(this); subnesSettings = (NES.NES.NESSettings)settings ?? new NES.NES.NESSettings(); subnesSyncSettings = (NES.NES.NESSyncSettings)syncSettings ?? new NES.NES.NESSyncSettings(); CoreComm = comm; subnes = new NES.NES(new CoreComm(comm.ShowMessage, comm.Notify) { CoreFileProvider = comm.CoreFileProvider }, game, rom, subnesSettings, subnesSyncSettings); ser.Register <IVideoProvider>(subnes.videoProvider); ser.Register <ISoundProvider>(subnes); _tracer = new TraceBuffer { Header = "6502: PC, machine code, mnemonic, operands, registers (A, X, Y, P, SP), flags (NVTBDIZCR), CPU Cycle, PPU Cycle" }; ser.Register <ITraceable>(_tracer); ServiceProvider = ser; (ServiceProvider as BasicServiceProvider).Register <IMemoryDomains>(subnes._memoryDomains); subnes.using_reset_timing = true; HardReset(); current_cycle = 0; subnes.cpu.ext_ppu_cycle = current_cycle; VBL_CNT = 0; }
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) { using_reset_timing = true }; HardReset(); current_cycle = 0; _nesCore.cpu.ext_ppu_cycle = current_cycle; VBL_CNT = 0; _nesStatable = _nesCore.ServiceProvider.GetService <IStatable>(); var ser = new BasicServiceProvider(this); ServiceProvider = ser; ser.Register(_nesCore.ServiceProvider.GetService <IVideoProvider>()); ser.Register(_nesCore.ServiceProvider.GetService <ISoundProvider>()); ser.Register(_nesCore.ServiceProvider.GetService <ITraceable>()); ser.Register(_nesCore.ServiceProvider.GetService <IDisassemblable>()); ser.Register(_nesCore.ServiceProvider.GetService <IMemoryDomains>()); ser.Register(_nesCore.ServiceProvider.GetService <INESPPUViewable>()); ser.Register(_nesCore.ServiceProvider.GetService <IBoardInfo>()); ser.Register(_nesCore.ServiceProvider.GetService <ISaveRam>()); ser.Register(_nesCore.ServiceProvider.GetService <IDebuggable>()); ser.Register(_nesCore.ServiceProvider.GetService <IRegionable>()); ser.Register(_nesCore.ServiceProvider.GetService <ICodeDataLogger>()); _tracer = new TraceBuffer { Header = "6502: PC, machine code, mnemonic, operands, registers (A, X, Y, P, SP), flags (NVTBDIZCR), CPU Cycle, PPU Cycle" }; ser.Register(_tracer); var barCodeService = _nesCore.ServiceProvider.GetService <DatachBarcode>(); if (barCodeService != null) { ser.Register(barCodeService); } }
public SubNESHawk(CoreComm comm, GameInfo game, byte[] rom, /*string gameDbFn,*/ NES.NES.NESSettings settings, NES.NES.NESSyncSettings 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(comm, game, rom, subNesSettings, subNesSyncSettings) { using_reset_timing = true }; // Adds Reset timing control to controller definition _nesCore.ResetControllerDefinition(); HardReset(); current_cycle = 0; _nesCore.cpu.ext_ppu_cycle = current_cycle; VblankCount = 0; _nesStatable = _nesCore.ServiceProvider.GetService <IStatable>(); var ser = new BasicServiceProvider(this); ServiceProvider = ser; ser.Register(_nesCore.ServiceProvider.GetService <IVideoProvider>()); ser.Register(_nesCore.ServiceProvider.GetService <ISoundProvider>()); ser.Register(_nesCore.ServiceProvider.GetService <ITraceable>()); ser.Register(_nesCore.ServiceProvider.GetService <IDisassemblable>()); ser.Register(_nesCore.ServiceProvider.GetService <IMemoryDomains>()); ser.Register(_nesCore.ServiceProvider.GetService <INESPPUViewable>()); ser.Register(_nesCore.ServiceProvider.GetService <IBoardInfo>()); ser.Register(_nesCore.ServiceProvider.GetService <ISaveRam>()); ser.Register(_nesCore.ServiceProvider.GetService <IDebuggable>()); ser.Register(_nesCore.ServiceProvider.GetService <IRegionable>()); ser.Register(_nesCore.ServiceProvider.GetService <ICodeDataLogger>()); const string TRACE_HEADER = "6502: PC, machine code, mnemonic, operands, registers (A, X, Y, P, SP), flags (NVTBDIZCR), CPU Cycle, PPU Cycle"; _tracer = new TraceBuffer(TRACE_HEADER); ser.Register(_tracer); var barCodeService = _nesCore.ServiceProvider.GetService <DatachBarcode>(); if (barCodeService != null) { ser.Register(barCodeService); } }