59 lines
1.3 KiB
C#
59 lines
1.3 KiB
C#
using BizHawk.Common.BizInvoke;
|
|
using BizHawk.Emulation.Cores.Waterbox;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace BizHawk.Emulation.Cores.Consoles.Nintendo.Gameboy
|
|
{
|
|
public abstract class LibSameboy : LibWaterboxCore
|
|
{
|
|
[Flags]
|
|
public enum Buttons : uint
|
|
{
|
|
A = 0x01,
|
|
B = 0x02,
|
|
SELECT = 0x04,
|
|
START = 0x08,
|
|
RIGHT = 0x10,
|
|
LEFT = 0x20,
|
|
UP = 0x40,
|
|
DOWN = 0x80
|
|
}
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public new class FrameInfo : LibWaterboxCore.FrameInfo
|
|
{
|
|
public long Time;
|
|
public Buttons Keys;
|
|
}
|
|
|
|
[BizImport(CC)]
|
|
public abstract bool Init(bool cgb, byte[] spc, int spclen);
|
|
|
|
[BizImport(CC)]
|
|
public abstract void GetGpuMemory(IntPtr[] ptrs);
|
|
|
|
[BizImport(CC)]
|
|
public abstract void SetScanlineCallback(ScanlineCallback callback, int ly);
|
|
|
|
[BizImport(CC)]
|
|
public abstract byte GetIoReg(byte port);
|
|
|
|
[BizImport(CC)]
|
|
public abstract void PutSaveRam();
|
|
|
|
[BizImport(CC)]
|
|
public abstract void GetSaveRam();
|
|
|
|
[BizImport(CC)]
|
|
public abstract bool HasSaveRam();
|
|
|
|
[BizImport(CC)]
|
|
public abstract void SetPrinterCallback(PrinterCallback callback);
|
|
}
|
|
}
|