60 lines
1.5 KiB
C#
60 lines
1.5 KiB
C#
using System;
|
|
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();
|
|
MemoryCallbacks = new MemoryCallbackSystem(new[] { "System Bus" });
|
|
|
|
ControllerDefinition = ChannelFControllerDefinition;
|
|
|
|
CPU = new F3850
|
|
{
|
|
ReadMemory = ReadBus,
|
|
WriteMemory = WriteBus,
|
|
ReadHardware = ReadPort,
|
|
WriteHardware = WritePort,
|
|
DummyReadMemory = ReadBus
|
|
};
|
|
|
|
_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;
|
|
|
|
Array.Copy(rom, 0, Rom, 0, rom.Length);
|
|
|
|
CalcClock();
|
|
|
|
ser.Register<IVideoProvider>(this);
|
|
ser.Register<ITraceable>(_tracer);
|
|
ser.Register<IDisassemblable>(CPU);
|
|
ser.Register<ISoundProvider>(this);
|
|
|
|
SetupMemoryDomains();
|
|
}
|
|
|
|
public F3850 CPU;
|
|
private readonly TraceBuffer _tracer;
|
|
public IController _controller;
|
|
}
|
|
}
|