thanks, that gave me a bit of a head start on some stuff
Code:
SNES_DLLPATH := A_ScriptDir . "\"
;SNES Library
SNES_DLL := "snes.dll"
SNES_MEMORY_CARTRIDGE_RAM := 0
SNES_MEMORY_CARTRIDGE_RTC := 1
SNES_MEMORY_BSX_RAM := 2
SNES_MEMORY_BSX_PRAM := 3
SNES_MEMORY_SUFAMI_TURBO_A_RAM := 4
SNES_MEMORY_SUFAMI_TURBO_B_RAM := 5
SNES_MEMORY_GAME_BOY_RAM := 6
SNES_MEMORY_GAME_BOY_RTC := 7
SNES_DEVICE_NONE := 0
SNES_DEVICE_JOYPAD := 1
SNES_DEVICE_MULTITAP := 2
SNES_DEVICE_MOUSE := 3
SNES_DEVICE_SUPER_SCOPE := 4
SNES_DEVICE_JUSTIFIER := 5
SNES_DEVICE_JUSTIFIERS := 6
SNES_DEVICE_ID_JOYPAD_B := 0
SNES_DEVICE_ID_JOYPAD_Y := 1
SNES_DEVICE_ID_JOYPAD_SELECT := 2
SNES_DEVICE_ID_JOYPAD_START := 3
SNES_DEVICE_ID_JOYPAD_UP := 4
SNES_DEVICE_ID_JOYPAD_DOWN := 5
SNES_DEVICE_ID_JOYPAD_LEFT := 6
SNES_DEVICE_ID_JOYPAD_RIGHT := 7
SNES_DEVICE_ID_JOYPAD_A := 8
SNES_DEVICE_ID_JOYPAD_X := 9
SNES_DEVICE_ID_JOYPAD_L := 10
SNES_DEVICE_ID_JOYPAD_R := 11
SNES_DEVICE_ID_MOUSE_X := 0
SNES_DEVICE_ID_MOUSE_Y := 1
SNES_DEVICE_ID_MOUSE_LEFT := 2
SNES_DEVICE_ID_MOUSE_RIGHT := 3
SNES_DEVICE_ID_SUPER_SCOPE_X := 0
SNES_DEVICE_ID_SUPER_SCOPE_Y := 1
SNES_DEVICE_ID_SUPER_SCOPE_TRIGGER := 2
SNES_DEVICE_ID_SUPER_SCOPE_CURSOR := 3
SNES_DEVICE_ID_SUPER_SCOPE_TURBO := 4
SNES_DEVICE_ID_SUPER_SCOPE_PAUSE := 5
SNES_DEVICE_ID_JUSTIFIER_X := 0
SNES_DEVICE_ID_JUSTIFIER_Y := 1
SNES_DEVICE_ID_JUSTIFIER_TRIGGER := 2
SNES_DEVICE_ID_JUSTIFIER_START := 3
/*
unsigned snes_library_revision(void);
*/
SNES_Load(){
global
SNES_DLLCALL := DllCall("LoadLibrary", Str, SNES_DLLPATH . SNES_DLL)
}
/*
typedef void (*snes_video_refresh_t)(const uint16_t *data, unsigned width, unsigned height);
*/
snes_set_video_refresh(snes_video_refresh_t){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_video_refresh_t", "Uint", data, "Uint", width, "Uint", height)
}
/*
typedef void (*snes_audio_sample_t)(uint16_t left, uint16_t right);
*/
snes_set_audio_sample(snes_audio_sample_t){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_audio_sample_t", "Uint", right, "Uint", left)
}
/*
typedef void (*snes_input_poll_t)(void);
*/
snes_set_input_poll(snes_input_poll_t){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_input_poll_t")
}
/*
typedef int16_t (*snes_input_state_t)(bool port, unsigned device, unsigned index, unsigned id);
*/
snes_set_input_state(snes_input_state_t){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_input_state_t", "Uint", port, "Uint", device, "Uint", index, "Uint", id)
}
/*
void snes_set_controller_port_device(bool port, unsigned device);
*/
/*
void snes_init(void);
*/
snes_init(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_init")
}
/*
void snes_term(void);
*/
snes_term(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_term")
}
/*
void snes_power(void);
*/
snes_power(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_power")
}
/*
void snes_reset(void);
*/
snes_reset(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_reset")
}
/*
void snes_run(void);
*/
snes_run(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_run")
}
/*
void snes_unload(void);
*/
snes_unload(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_unload")
}
/*
unsigned snes_serialize_size(void);
*/
snes_serialize_size(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_serialize_size")
}
/*
bool snes_serialize(uint8_t *data, unsigned size);
*/
snes_serialize(data, size){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_serialize", "Uint", data, "Uint", size)
}
/*
bool snes_unserialize(const uint8_t *data, unsigned size);
*/
snes_unserialize(data, size){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_unserialize", "Uint", data, "Uint", size)
}
/*
void snes_cheat_reset(void);
*/
snes_cheat_reset(){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_cheat_reset")
}
/*
void snes_cheat_set(unsigned index, bool enabled, const char *code);
*/
snes_cheat_set(index, enabled, code){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_cheat_set", "Uint", index, "Uint", enabled, "Uint", code)
}
/*
void snes_load_cartridge_normal(
const char *rom_xml, const uint8_t *rom_data, unsigned rom_size
);
*/
/*
void snes_load_cartridge_bsx_slotted(
const char *rom_xml, const uint8_t *rom_data, unsigned rom_size,
const char *bsx_xml, const uint8_t *bsx_data, unsigned bsx_size
);
*/
/*
void snes_load_cartridge_bsx(
const char *rom_xml, const uint8_t *rom_data, unsigned rom_size,
const char *bsx_xml, const uint8_t *bsx_data, unsigned bsx_size
);
*/
/*
void snes_load_cartridge_sufami_turbo(
const char *rom_xml, const uint8_t *rom_data, unsigned rom_size,
const char *sta_xml, const uint8_t *sta_data, unsigned sta_size,
const char *stb_xml, const uint8_t *stb_data, unsigned stb_size
);
*/
/*
void snes_load_cartridge_super_game_boy(
const char *rom_xml, const uint8_t *rom_data, unsigned rom_size,
const char *dmg_xml, const uint8_t *dmg_data, unsigned dmg_size
);
*/
/*
uint8_t* snes_get_memory_data(unsigned id);
*/
snes_get_memory_data(id){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_get_memory_data", "Uint", id)
}
/*
unsigned snes_get_memory_size(unsigned id);
*/
snes_get_memory_size(id){
global
Return DllCall(SNES_DLLPATH . SNES_DLL . "\snes_get_memory_size", "Uint", id)
}
some stuff I haven't set yet but if you could take a look and see what I could impliment and also recommend some fixes that would be great.