AutoHotkey Community

It is currently May 27th, 2012, 11:39 am

All times are UTC [ DST ]




Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: April 20th, 2010, 4:07 am 
Offline

Joined: March 22nd, 2008, 4:03 am
Posts: 57
Location: At my computer
ok guys, I'm not much of an ahk programmer but I'm trying to convert libsnes as an ahk file for a much pointless snes emu in ahk, sort of a demo if you will.

anyways currently since I'm still rather new to using ahk I may need some help especially with making sure what I have is correct.

First thing
Code:
typedef void (*snes_video_refresh_t)(const uint16_t *data, unsigned width, unsigned height);

roughly I came up with
Code:
snes_video_refresh_t(data, width, height){
   global
   Return DllCall(SNES_DLLPATH . SNES_DLL . "snes_video_refresh_t", unint16_t, data, width, height)
}


if someone could point me in the right direction that would be a big help.

_________________
My Blogs | PChat the free XChat fork for Windows and *nix
Image


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: April 20th, 2010, 2:00 pm 
Offline

Joined: June 18th, 2008, 8:36 am
Posts: 4923
Location: AHK Forum
Try this, not sure about uint16_t
Code:
DllCall(SNES_DLLPATH . SNES_DLL . "\snes_video_refresh_t", "Uint", data, "Uint", width, "Uint",height)

_________________
AHK_H (2alpha) AHF TT _Struct WatchDir Yaml _Input ObjTree RapidHotkey DynaRun :wink:


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: April 20th, 2010, 4:37 pm 
Offline

Joined: March 22nd, 2008, 4:03 am
Posts: 57
Location: At my computer
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.

_________________
My Blogs | PChat the free XChat fork for Windows and *nix
Image


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: bowen666, MSN [Bot] and 16 guests


You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Powered by phpBB® Forum Software © phpBB Group