BizHawk/BizHawk.Emulation.Cores/Consoles/Fairchild/ChannelF/ChannelF.cs

60 lines
1.5 KiB
C#
Raw Normal View History

using System;
2019-05-07 13:43:36 +00:00
using BizHawk.Common;
using BizHawk.Common.BufferExtensions;
using BizHawk.Emulation.Common;
namespace BizHawk.Emulation.Cores.Consoles.ChannelF
{
[Core(
"ChannelFHawk",
"Asnivor",
isPorted: false,
isReleased: false)]
[ServiceNotApplicable(typeof(IDriveLight))]
public partial class ChannelF
{
public ChannelF(CoreComm comm, GameInfo game, byte[] rom, object settings, object syncSettings)
{
var ser = new BasicServiceProvider(this);
ServiceProvider = ser;
CoreComm = comm;
InputCallbacks = new InputCallbackSystem();
2019-04-17 21:28:12 +00:00
MemoryCallbacks = new MemoryCallbackSystem(new[] { "System Bus" });
ControllerDefinition = ChannelFControllerDefinition;
CPU = new F3850
{
ReadMemory = ReadBus,
WriteMemory = WriteBus,
ReadHardware = ReadPort,
WriteHardware = WritePort,
DummyReadMemory = ReadBus
};
2019-04-17 21:28:12 +00:00
_tracer = new TraceBuffer { Header = CPU.TraceHeader };
byte[] bios01 = comm.CoreFileProvider.GetFirmware("ChannelF", "ChannelF_sl131253", true);
byte[] bios02 = comm.CoreFileProvider.GetFirmware("ChannelF", "ChannelF_sl131254", true);
BIOS01 = bios01;
BIOS02 = bios02;
2019-05-07 13:43:36 +00:00
Array.Copy(rom, 0, Rom, 0, rom.Length);
CalcClock();
ser.Register<IVideoProvider>(this);
2019-04-17 21:28:12 +00:00
ser.Register<ITraceable>(_tracer);
ser.Register<IDisassemblable>(CPU);
ser.Register<ISoundProvider>(this);
2019-04-17 21:28:12 +00:00
SetupMemoryDomains();
}
public F3850 CPU;
2019-04-17 21:28:12 +00:00
private readonly TraceBuffer _tracer;
2019-05-07 13:43:36 +00:00
public IController _controller;
}
}