Emux/Emux.GameBoy/Cartridge/ICartridge.cs

30 lines
893 B
C#

namespace Emux.GameBoy.Cartridge
{
public interface ICartridge
{
byte[] NintendoLogo { get; }
string GameTitle { get; }
byte[] NewPublisherCode { get; }
bool SuperGameBoyMode { get; }
CartridgeType CartridgeType { get; }
int RomSize { get; }
int ExternalRamSize { get; }
bool IsJapanese { get; }
byte OldPublisherCode { get; }
byte HeaderChecksum { get; }
byte[] GlobalChecksum { get; }
byte ReadByte(ushort address);
void ReadBytes(ushort address, byte[] buffer, int bufferOffset, int length);
void WriteByte(ushort address, byte value);
}
public interface IFullyAccessibleCartridge : ICartridge
{
byte ReadFromAbsoluteAddress(int address);
void ReadFromAbsoluteAddress(int address, byte[] buffer, int bufferOffset, int length);
}
}