BizHawk/BizHawk.Emulation.Cores/Consoles/NEC/PCFX/LibTst.cs

69 lines
1.6 KiB
C#

using BizHawk.Common.BizInvoke;
using BizHawk.Emulation.Cores.Consoles.Sega.Saturn;
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.NEC.PCFX
{
public abstract class LibTst : LibWaterboxCore
{
[StructLayout(LayoutKind.Sequential)]
public new class FrameInfo : LibWaterboxCore.FrameInfo
{
public uint Port1Buttons;
public uint Port2Buttons;
public uint ConsoleButtons;
}
[Flags]
public enum Layers : int
{
None = 0,
BG0 = 1,
BG1 = 2,
BG2 = 4,
BG3 = 8,
VDCA_BG = 16,
VDCA_SPR = 32,
VDCB_BG = 64,
VDCB_SPR = 128,
RAINBOW = 256
}
[StructLayout(LayoutKind.Sequential)]
public class FrontendSettings
{
public int AdpcmEmulateBuggyCodec;
public int AdpcmSuppressChannelResetClicks;
public int HiResEmulation;
public int DisableSpriteLimit;
public int ChromaInterpolation;
public int ScanlineStart;
public int ScanlineEnd;
public int CdSpeed;
public int CpuEmulation;
public int Port1;
public int Port2;
public int PixelPro;
}
[BizImport(CC)]
public abstract void SetCDCallbacks(LibSaturnus.CDTOCCallback toccallback,
LibSaturnus.CDSectorCallback sectorcallback);
[BizImport(CC)]
public abstract bool Init(int numDisks, byte[] bios);
[BizImport(CC)]
public abstract void EnableLayers(Layers mask);
[BizImport(CC)]
public abstract void PutSettingsBeforeInit(FrontendSettings s);
}
}