using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; using BizHawk.Common.BizInvoke; using BizHawk.Emulation.Cores.Waterbox; namespace BizHawk.Emulation.Cores.Nintendo.SNES9X { public abstract class LibSnes9x : LibWaterboxCore { public enum LeftPortDevice : uint { //None = 0, // something in the libretro spaghetti input goes wonky with None Joypad = 1 } public enum RightPortDevice : uint { //None = 0, // something in the libretro spaghetti input goes wonky with None Joypad = 1, Multitap = 2, Mouse = 3, SuperScope = 4, Justifier = 5 } [BizImport(CC)] public abstract void SetButtons(short[] buttons); [BizImport(CC)] public abstract void biz_set_sound_channels(int channels); [BizImport(CC)] public abstract void biz_set_layers(int layers); [BizImport(CC)] public abstract void biz_soft_reset(); [BizImport(CC)] public abstract void biz_hard_reset(); [BizImport(CC)] public abstract void biz_set_port_devices(LeftPortDevice left, RightPortDevice right); [BizImport(CC)] public abstract bool biz_load_rom(byte[] data, int size); [BizImport(CC)] public abstract bool biz_init(); [BizImport(CC)] public abstract bool biz_is_ntsc(); [BizImport(CC)] public abstract void biz_post_load_state(); } }