From e012e290aeff49426bf8ee5d11fc7fd2ab9c5143 Mon Sep 17 00:00:00 2001 From: Themaister Date: Sat, 7 Apr 2012 12:17:40 +0200 Subject: [PATCH] Builds clean. --- Makefile | 4 +- Makefile.win | 2 +- cheats.c | 6 +-- dynamic.c | 23 +++++---- file.c | 4 +- general.h | 2 +- gfx/ext_gfx.c | 6 +-- gfx/py_state/py_state.c | 67 ++++++++++-------------- gfx/shader_cg.c | 74 ++++++++------------------- gfx/shader_glsl.c | 71 +++++++++---------------- gfx/{snes_state.c => state_tracker.c} | 70 +++++++++++-------------- gfx/{snes_state.h => state_tracker.h} | 36 +++++-------- settings.c | 4 +- ssnes.c | 6 +-- 14 files changed, 145 insertions(+), 230 deletions(-) rename gfx/{snes_state.c => state_tracker.c} (73%) rename gfx/{snes_state.h => state_tracker.h} (64%) diff --git a/Makefile b/Makefile index ef23bc0203..c2bd8d27cd 100644 --- a/Makefile +++ b/Makefile @@ -136,9 +136,9 @@ endif endif ifeq ($(HAVE_XML), 1) - OBJ += gfx/snes_state.o gfx/image.o + OBJ += gfx/state_tracker.o gfx/image.o else ifeq ($(HAVE_CG), 1) - OBJ += gfx/snes_state.o gfx/image.o + OBJ += gfx/state_tracker.o gfx/image.o endif ifeq ($(HAVE_DYLIB), 1) diff --git a/Makefile.win b/Makefile.win index 1fb5a73982..435077d739 100644 --- a/Makefile.win +++ b/Makefile.win @@ -84,7 +84,7 @@ ifeq ($(HAVE_RSOUND), 1) endif ifeq ($(HAVE_XML), 1) - OBJ += gfx/shader_glsl.o gfx/image.o gfx/snes_state.o cheats.o + OBJ += gfx/shader_glsl.o gfx/image.o gfx/state_tracker.o cheats.o DEFINES += -Ilibxml2 -DHAVE_XML LIBS += -lxml2 -liconv endif diff --git a/cheats.c b/cheats.c index 0442e4905e..cfa9251fba 100644 --- a/cheats.c +++ b/cheats.c @@ -142,11 +142,11 @@ static bool xml_grab_cheats(cheat_manager_t *handle, xmlNodePtr ptr) static void cheat_manager_apply_cheats(cheat_manager_t *handle) { unsigned index = 0; - psnes_cheat_reset(); + pretro_cheat_reset(); for (unsigned i = 0; i < handle->size; i++) { if (handle->cheats[i].state) - psnes_cheat_set(index++, true, handle->cheats[i].code); + pretro_cheat_set(index++, true, handle->cheats[i].code); } } @@ -238,7 +238,7 @@ cheat_manager_t* cheat_manager_new(const char *path) { LIBXML_TEST_VERSION; - psnes_cheat_reset(); + pretro_cheat_reset(); xmlParserCtxtPtr ctx = NULL; xmlDocPtr doc = NULL; diff --git a/dynamic.c b/dynamic.c index 71a707e083..f989ba944a 100644 --- a/dynamic.c +++ b/dynamic.c @@ -43,7 +43,7 @@ #define SYM(x) do { \ function_t func = dylib_proc(lib_handle, #x); \ memcpy(&p##x, &func, sizeof(func)); \ - if (p##x == NULL) { SSNES_ERR("Failed to load symbol: \"%s\"\n", #x); ssnes_fail(1, "init_libsnes_sym()"); } \ + if (p##x == NULL) { SSNES_ERR("Failed to load symbol: \"%s\"\n", #x); ssnes_fail(1, "init_libretro_sym()"); } \ } while (0) static dylib_t lib_handle = NULL; @@ -94,11 +94,11 @@ static void set_environment_defaults(void); static void load_symbols(void) { #ifdef HAVE_DYNAMIC - SSNES_LOG("Loading dynamic libsnes from: \"%s\"\n", g_settings.libsnes); - lib_handle = dylib_load(g_settings.libsnes); + SSNES_LOG("Loading dynamic libsnes from: \"%s\"\n", g_settings.libretro); + lib_handle = dylib_load(g_settings.libretro); if (!lib_handle) { - SSNES_ERR("Failed to open dynamic library: \"%s\"\n", g_settings.libsnes); + SSNES_ERR("Failed to open dynamic library: \"%s\"\n", g_settings.libretro); ssnes_fail(1, "load_dynamic()"); } #endif @@ -138,7 +138,7 @@ static void load_symbols(void) SYM(retro_get_memory_size); } -void init_libsnes_sym(void) +void init_libretro_sym(void) { // Guarantee that we can do "dirty" casting. // Every OS that this program supports should pass this ... @@ -153,18 +153,19 @@ void init_libsnes_sym(void) SSNES_ERR("Serious problem. SSNES wants to load libsnes dyamically, but it is already linked.\n"); SSNES_ERR("This could happen if other modules SSNES depends on link against libsnes directly.\n"); SSNES_ERR("Proceeding could cause a crash. Aborting ...\n"); - ssnes_fail(1, "init_libsnes_sym()"); + ssnes_fail(1, "init_libretro_sym()"); } - if (!*g_settings.libsnes) + if (!*g_settings.libretro) { #if defined(_WIN32) - strlcpy(g_settings.libsnes, "retro.dll", sizeof(g_settings.libsnes)); + const char *libretro_path = "retro.dll"; #elif defined(__APPLE__) - strlcpy(g_settings.libsnes, "libretro.dylib", sizeof(g_settings.libsnes)); + const char *libretro_path = "libretro.dylib"; #else - strlcpy(g_settings.libsnes, "libretro.so", sizeof(g_settings.libsnes)); + const char *libretro_path = "libretro.so"; #endif + strlcpy(g_settings.libretro, libretro_path, sizeof(g_settings.libretro)); } #endif @@ -174,7 +175,7 @@ void init_libsnes_sym(void) set_environment(); } -void uninit_libsnes_sym(void) +void uninit_libretro_sym(void) { #ifdef HAVE_DYNAMIC if (lib_handle) diff --git a/file.c b/file.c index 3d5517ab61..705f26e6a3 100644 --- a/file.c +++ b/file.c @@ -604,9 +604,9 @@ static bool load_roms(unsigned rom_type, const char **rom_paths, size_t roms) } if (rom_type == 0) - ret = retro_load_game(&info[0]); + ret = pretro_load_game(&info[0]); else - ret = retro_load_game_special(rom_type, info, roms); + ret = pretro_load_game_special(rom_type, info, roms); if (!ret) SSNES_ERR("Failed to load game.\n"); diff --git a/general.h b/general.h index 56c8d184ec..a6601794db 100644 --- a/general.h +++ b/general.h @@ -160,7 +160,7 @@ struct settings bool netplay_client_swap_input; } input; - char libsnes[PATH_MAX]; + char libretro[PATH_MAX]; char cheat_database[PATH_MAX]; char cheat_settings_path[PATH_MAX]; diff --git a/gfx/ext_gfx.c b/gfx/ext_gfx.c index 4bb865c877..97f51433c3 100644 --- a/gfx/ext_gfx.c +++ b/gfx/ext_gfx.c @@ -65,10 +65,10 @@ static int16_t input_ext_input_state(void *data, const struct snes_keybind **sne input_ext_t *ext = (input_ext_t*)data; unsigned player = 0; - if (device == SNES_DEVICE_MULTITAP) - player = (port == SNES_PORT_1) ? 1 : index + 2; + if (device == RETRO_DEVICE_JOYPAD_MULTITAP) + player = (port == 1) ? 1 : index + 2; else - player = (port == SNES_PORT_1) ? 1 : 2; + player = port + 1; if (id < SSNES_BIND_LIST_END) { diff --git a/gfx/py_state/py_state.c b/gfx/py_state/py_state.c index 65d05cbb48..dbfbcc13a6 100644 --- a/gfx/py_state/py_state.c +++ b/gfx/py_state/py_state.c @@ -22,45 +22,38 @@ #include #include "../../dynamic.h" -#include "../../libsnes.hpp" +#include "../../libretro.h" #include "py_state.h" #include "../../general.h" #include "../../compat/strl.h" #include "../../compat/posix_string.h" #include "../../file.h" -#define PY_READ_FUNC_DECL(RAMTYPE) py_read_##RAMTYPE -#define PY_READ_FUNC(RAMTYPE) \ - static PyObject* PY_READ_FUNC_DECL(RAMTYPE) (PyObject *self, PyObject *args) \ - { \ - (void)self; \ -\ - const uint8_t *data = psnes_get_memory_data(SNES_MEMORY_##RAMTYPE); \ - if (!data) \ - { \ - Py_INCREF(Py_None); \ - return Py_None; \ - } \ - unsigned max = psnes_get_memory_size(SNES_MEMORY_##RAMTYPE); \ -\ - unsigned addr; \ - if (!PyArg_ParseTuple(args, "I", &addr)) \ - return NULL; \ -\ - if (addr >= max || addr < 0) \ - { \ - Py_INCREF(Py_None); \ - return Py_None; \ - } \ -\ - return PyLong_FromLong((long)data[addr]); \ +static PyObject* py_read_wram(PyObject *self, PyObject *args) +{ + (void)self; + + const uint8_t *data = (const uint8_t*)pretro_get_memory_data(RETRO_MEMORY_SYSTEM_RAM); + if (!data) + { + Py_INCREF(Py_None); + return Py_None; } -PY_READ_FUNC(WRAM) -PY_READ_FUNC(VRAM) -PY_READ_FUNC(APURAM) -PY_READ_FUNC(CGRAM) -PY_READ_FUNC(OAM) + size_t max = pretro_get_memory_size(RETRO_MEMORY_SYSTEM_RAM); + + unsigned addr; + if (!PyArg_ParseTuple(args, "I", &addr)) + return NULL; + + if (addr >= max || addr < 0) + { + Py_INCREF(Py_None); + return Py_None; + } + + return PyLong_FromLong(data[addr]); +} static PyObject *py_read_input(PyObject *self, PyObject *args) { @@ -86,7 +79,7 @@ static PyObject *py_read_input(PyObject *self, PyObject *args) }; int16_t res = input_input_state_func(binds, player > 1, - player > 2 ? SNES_DEVICE_MULTITAP : SNES_DEVICE_JOYPAD, + player > 2 ? RETRO_DEVICE_JOYPAD_MULTITAP : RETRO_DEVICE_JOYPAD, player > 2 ? player - 2 : 0, key); @@ -112,17 +105,13 @@ static PyObject *py_read_input_meta(PyObject *self, PyObject *args) } static PyMethodDef SNESMethods[] = { - { "read_wram", PY_READ_FUNC_DECL(WRAM), METH_VARARGS, "Read WRAM from SNES." }, - { "read_vram", PY_READ_FUNC_DECL(VRAM), METH_VARARGS, "Read VRAM from SNES." }, - { "read_apuram", PY_READ_FUNC_DECL(APURAM), METH_VARARGS, "Read APURAM from SNES." }, - { "read_cgram", PY_READ_FUNC_DECL(CGRAM), METH_VARARGS, "Read CGRAM from SNES." }, - { "read_oam", PY_READ_FUNC_DECL(OAM), METH_VARARGS, "Read OAM from SNES." }, - { "input", py_read_input, METH_VARARGS, "Read input state from SNES." }, + { "read_wram", py_read_wram, METH_VARARGS, "Read WRAM from system." }, + { "input", py_read_input, METH_VARARGS, "Read input state from system." }, { "input_meta", py_read_input_meta, METH_VARARGS, "Read SSNES specific input." }, { NULL, NULL, 0, NULL } }; -#define DECL_ATTR_SNES(attr) PyObject_SetAttrString(mod, #attr, PyLong_FromLong(SNES_DEVICE_ID_JOYPAD_##attr)) +#define DECL_ATTR_SNES(attr) PyObject_SetAttrString(mod, #attr, PyLong_FromLong(RETRO_DEVICE_ID_JOYPAD_##attr)) #define DECL_ATTR_SSNES(attr) PyObject_SetAttrString(mod, #attr, PyLong_FromLong(SSNES_##attr)) static void py_set_attrs(PyObject *mod) { diff --git a/gfx/shader_cg.c b/gfx/shader_cg.c index d1ad7d14be..f1e24b85dc 100644 --- a/gfx/shader_cg.c +++ b/gfx/shader_cg.c @@ -27,7 +27,7 @@ #include "../compat/posix_string.h" #ifdef HAVE_CONFIGFILE -#include "snes_state.h" +#include "state_tracker.h" #endif //#define SSNES_CG_DEBUG @@ -141,7 +141,7 @@ static CGparameter cg_attribs[PREV_TEXTURES + 1 + SSNES_CG_MAX_SHADERS]; static unsigned cg_attrib_index; #ifdef HAVE_CONFIGFILE -static snes_tracker_t *snes_tracker = NULL; +static state_tracker_t *state_tracker = NULL; #endif static void gl_cg_reset_attrib(void) @@ -271,13 +271,13 @@ void gl_cg_set_params(unsigned width, unsigned height, #ifdef HAVE_CONFIGFILE // Set state parameters - if (snes_tracker) + if (state_tracker) { - static struct snes_tracker_uniform info[MAX_VARIABLES]; + static struct state_tracker_uniform info[MAX_VARIABLES]; static unsigned cnt = 0; if (active_index == 1) - cnt = snes_get_uniform(snes_tracker, info, MAX_VARIABLES, frame_count); + cnt = state_get_uniform(state_tracker, info, MAX_VARIABLES, frame_count); for (unsigned i = 0; i < cnt; i++) { @@ -328,10 +328,10 @@ static void gl_cg_deinit_state(void) lut_textures_num = 0; #ifdef HAVE_CONFIGFILE - if (snes_tracker) + if (state_tracker) { - snes_tracker_free(snes_tracker); - snes_tracker = NULL; + state_tracker_free(state_tracker); + state_tracker = NULL; } #endif } @@ -565,9 +565,9 @@ static bool load_imports(const char *dir_path, config_file_t *conf) if (!config_get_string(conf, "imports", &imports)) return true; - struct snes_tracker_uniform_info info[MAX_VARIABLES]; + struct state_tracker_uniform_info info[MAX_VARIABLES]; unsigned info_cnt = 0; - struct snes_tracker_info tracker_info = {0}; + struct state_tracker_info tracker_info = {0}; #ifdef HAVE_PYTHON char script_path[128]; @@ -581,20 +581,12 @@ static bool load_imports(const char *dir_path, config_file_t *conf) char semantic_buf[64]; char wram_buf[64]; char input_slot_buf[64]; - char apuram_buf[64]; - char oam_buf[64]; - char cgram_buf[64]; - char vram_buf[64]; char mask_buf[64]; char equal_buf[64]; print_buf(semantic_buf, "%s_semantic", id); print_buf(wram_buf, "%s_wram", id); print_buf(input_slot_buf, "%s_input_slot", id); - print_buf(apuram_buf, "%s_apuram", id); - print_buf(oam_buf, "%s_oam", id); - print_buf(cgram_buf, "%s_cgram", id); - print_buf(vram_buf, "%s_vram", id); print_buf(mask_buf, "%s_mask", id); print_buf(equal_buf, "%s_equal", id); @@ -609,8 +601,8 @@ static bool load_imports(const char *dir_path, config_file_t *conf) goto end; } - enum snes_tracker_type tracker_type; - enum snes_ram_type ram_type = SSNES_STATE_NONE; + enum state_tracker_type tracker_type; + enum state_ram_type ram_type = SSNES_STATE_NONE; if (strcmp(semantic, "capture") == 0) tracker_type = SSNES_STATE_CAPTURE; @@ -659,14 +651,6 @@ static bool load_imports(const char *dir_path, config_file_t *conf) } else if (config_get_hex(conf, wram_buf, &addr)) ram_type = SSNES_STATE_WRAM; - else if (config_get_hex(conf, apuram_buf, &addr)) - ram_type = SSNES_STATE_APURAM; - else if (config_get_hex(conf, oam_buf, &addr)) - ram_type = SSNES_STATE_OAM; - else if (config_get_hex(conf, cgram_buf, &addr)) - ram_type = SSNES_STATE_CGRAM; - else if (config_get_hex(conf, vram_buf, &addr)) - ram_type = SSNES_STATE_VRAM; else { SSNES_ERR("No address assigned to semantic.\n"); @@ -679,26 +663,14 @@ static bool load_imports(const char *dir_path, config_file_t *conf) switch (ram_type) { case SSNES_STATE_WRAM: - memtype = SNES_MEMORY_WRAM; - break; - case SSNES_STATE_APURAM: - memtype = SNES_MEMORY_APURAM; - break; - case SSNES_STATE_VRAM: - memtype = SNES_MEMORY_VRAM; - break; - case SSNES_STATE_OAM: - memtype = SNES_MEMORY_OAM; - break; - case SSNES_STATE_CGRAM: - memtype = SNES_MEMORY_CGRAM; + memtype = RETRO_MEMORY_SYSTEM_RAM; break; default: memtype = -1u; } - if ((memtype != -1u) && (addr >= psnes_get_memory_size(memtype))) + if ((memtype != -1u) && (addr >= pretro_get_memory_size(memtype))) { SSNES_ERR("Address out of bounds.\n"); ret = false; @@ -725,11 +697,7 @@ static bool load_imports(const char *dir_path, config_file_t *conf) id = strtok(NULL, ";"); } - tracker_info.wram = psnes_get_memory_data(SNES_MEMORY_WRAM); - tracker_info.vram = psnes_get_memory_data(SNES_MEMORY_VRAM); - tracker_info.cgram = psnes_get_memory_data(SNES_MEMORY_CGRAM); - tracker_info.oam = psnes_get_memory_data(SNES_MEMORY_OAM); - tracker_info.apuram = psnes_get_memory_data(SNES_MEMORY_APURAM); + tracker_info.wram = pretro_get_memory_data(RETRO_MEMORY_SYSTEM_RAM); tracker_info.info = info; tracker_info.info_elem = info_cnt; @@ -747,9 +715,9 @@ static bool load_imports(const char *dir_path, config_file_t *conf) tracker_info.script_is_file = true; #endif - snes_tracker = snes_tracker_init(&tracker_info); - if (!snes_tracker) - SSNES_WARN("Failed to init SNES tracker.\n"); + state_tracker = state_tracker_init(&tracker_info); + if (!state_tracker) + SSNES_WARN("Failed to init state tracker.\n"); #ifdef HAVE_PYTHON if (script) @@ -834,8 +802,10 @@ static bool load_shader_params(unsigned i, config_file_t *conf) scale->type_y = SSNES_SCALE_INPUT; scale->scale_x = 1.0; scale->scale_y = 1.0; - scale->abs_x = g_extern.system.geom.base_width; - scale->abs_y = g_extern.system.geom.base_height; + + const struct retro_game_geometry *geom = &g_extern.system.av_info.geometry; + scale->abs_x = geom->base_width; + scale->abs_y = geom->base_height; if (strcmp(scale_type_x, "source") == 0) scale->type_x = SSNES_SCALE_INPUT; diff --git a/gfx/shader_glsl.c b/gfx/shader_glsl.c index 0dc5a2f45b..ef35cb8b37 100644 --- a/gfx/shader_glsl.c +++ b/gfx/shader_glsl.c @@ -21,7 +21,7 @@ #include "shader_glsl.h" #include "../compat/strl.h" #include "../compat/posix_string.h" -#include "snes_state.h" +#include "state_tracker.h" #include "../dynamic.h" #ifdef __APPLE__ @@ -120,8 +120,8 @@ static GLuint gl_teximage[MAX_TEXTURES]; static unsigned gl_teximage_cnt = 0; static char gl_teximage_uniforms[MAX_TEXTURES][64]; -static snes_tracker_t *gl_snes_tracker = NULL; -static struct snes_tracker_uniform_info gl_tracker_info[MAX_VARIABLES]; +static state_tracker_t *gl_state_tracker = NULL; +static struct state_tracker_uniform_info gl_tracker_info[MAX_VARIABLES]; static unsigned gl_tracker_info_cnt = 0; static char gl_tracker_script[PATH_MAX]; static char gl_tracker_script_class[64]; @@ -475,16 +475,12 @@ static bool get_import_value(xmlNodePtr ptr) xmlChar *semantic = xmlGetProp(ptr, (const xmlChar*)"semantic"); xmlChar *wram = xmlGetProp(ptr, (const xmlChar*)"wram"); xmlChar *input = xmlGetProp(ptr, (const xmlChar*)"input_slot"); - xmlChar *apuram = xmlGetProp(ptr, (const xmlChar*)"apuram"); - xmlChar *vram = xmlGetProp(ptr, (const xmlChar*)"vram"); - xmlChar *oam = xmlGetProp(ptr, (const xmlChar*)"oam"); - xmlChar *cgram = xmlGetProp(ptr, (const xmlChar*)"cgram"); xmlChar *bitmask = xmlGetProp(ptr, (const xmlChar*)"mask"); xmlChar *bitequal = xmlGetProp(ptr, (const xmlChar*)"equal"); unsigned memtype; - enum snes_tracker_type tracker_type; - enum snes_ram_type ram_type = SSNES_STATE_NONE; + enum state_tracker_type tracker_type; + enum state_ram_type ram_type = SSNES_STATE_NONE; uint32_t addr = 0; unsigned mask_value = 0; unsigned mask_equal = 0; @@ -496,7 +492,6 @@ static bool get_import_value(xmlNodePtr ptr) goto end; } - if (strcmp((const char*)semantic, "capture") == 0) tracker_type = SSNES_STATE_CAPTURE; else if (strcmp((const char*)semantic, "capture_previous") == 0) @@ -540,11 +535,11 @@ static bool get_import_value(xmlNodePtr ptr) goto end; } } - else if (wram) { addr = strtoul((const char*)wram, NULL, 16); ram_type = SSNES_STATE_WRAM; } - else if (apuram) { addr = strtoul((const char*)apuram, NULL, 16); ram_type = SSNES_STATE_APURAM; } - else if (vram) { addr = strtoul((const char*)vram, NULL, 16); ram_type = SSNES_STATE_VRAM; } - else if (oam) { addr = strtoul((const char*)oam, NULL, 16); ram_type = SSNES_STATE_OAM; } - else if (cgram) { addr = strtoul((const char*)cgram, NULL, 16); ram_type = SSNES_STATE_CGRAM; } + else if (wram) + { + addr = strtoul((const char*)wram, NULL, 16); + ram_type = SSNES_STATE_WRAM; + } else { SSNES_ERR("No RAM address specificed for import value.\n"); @@ -556,26 +551,14 @@ static bool get_import_value(xmlNodePtr ptr) switch (ram_type) { case SSNES_STATE_WRAM: - memtype = SNES_MEMORY_WRAM; - break; - case SSNES_STATE_APURAM: - memtype = SNES_MEMORY_APURAM; - break; - case SSNES_STATE_VRAM: - memtype = SNES_MEMORY_VRAM; - break; - case SSNES_STATE_OAM: - memtype = SNES_MEMORY_OAM; - break; - case SSNES_STATE_CGRAM: - memtype = SNES_MEMORY_CGRAM; + memtype = RETRO_MEMORY_SYSTEM_RAM; break; default: memtype = -1u; } - if ((memtype != -1u) && (addr >= psnes_get_memory_size(memtype))) + if ((memtype != -1u) && (addr >= pretro_get_memory_size(memtype))) { SSNES_ERR("Address out of bounds.\n"); ret = false; @@ -600,10 +583,6 @@ end: if (semantic) xmlFree(semantic); if (wram) xmlFree(wram); if (input) xmlFree(input); - if (apuram) xmlFree(apuram); - if (vram) xmlFree(vram); - if (oam) xmlFree(oam); - if (cgram) xmlFree(cgram); if (bitmask) xmlFree(bitmask); if (bitequal) xmlFree(bitequal); return ret; @@ -981,12 +960,8 @@ bool gl_glsl_init(const char *path) if (gl_tracker_info_cnt > 0) { - struct snes_tracker_info info = {0}; - info.wram = psnes_get_memory_data(SNES_MEMORY_WRAM); - info.vram = psnes_get_memory_data(SNES_MEMORY_VRAM); - info.cgram = psnes_get_memory_data(SNES_MEMORY_CGRAM); - info.apuram = psnes_get_memory_data(SNES_MEMORY_APURAM); - info.oam = psnes_get_memory_data(SNES_MEMORY_OAM); + struct state_tracker_info info = {0}; + info.wram = pretro_get_memory_data(RETRO_MEMORY_SYSTEM_RAM); info.info = gl_tracker_info; info.info_elem = gl_tracker_info_cnt; @@ -1002,9 +977,9 @@ bool gl_glsl_init(const char *path) info.script_is_file = *gl_tracker_script; #endif - gl_snes_tracker = snes_tracker_init(&info); - if (!gl_snes_tracker) - SSNES_WARN("Failed to init SNES tracker.\n"); + gl_state_tracker = state_tracker_init(&info); + if (!gl_state_tracker) + SSNES_WARN("Failed to init state tracker.\n"); } glsl_enable = true; @@ -1057,10 +1032,10 @@ void gl_glsl_deinit(void) xmlFree(gl_script_program); gl_script_program = NULL; } - if (gl_snes_tracker) + if (gl_state_tracker) { - snes_tracker_free(gl_snes_tracker); - gl_snes_tracker = NULL; + state_tracker_free(gl_state_tracker); + gl_state_tracker = NULL; } gl_glsl_reset_attrib(); @@ -1235,13 +1210,13 @@ void gl_glsl_set_params(unsigned width, unsigned height, pglActiveTexture(GL_TEXTURE0); - if (gl_snes_tracker) + if (gl_state_tracker) { - static struct snes_tracker_uniform info[MAX_VARIABLES]; + static struct state_tracker_uniform info[MAX_VARIABLES]; static unsigned cnt = 0; if (active_index == 1) - cnt = snes_get_uniform(gl_snes_tracker, info, MAX_VARIABLES, frame_count); + cnt = state_get_uniform(gl_state_tracker, info, MAX_VARIABLES, frame_count); for (unsigned i = 0; i < cnt; i++) { diff --git a/gfx/snes_state.c b/gfx/state_tracker.c similarity index 73% rename from gfx/snes_state.c rename to gfx/state_tracker.c index 260a0dc5a7..65cdee4daf 100644 --- a/gfx/snes_state.c +++ b/gfx/state_tracker.c @@ -15,17 +15,17 @@ * If not, see . */ -#include "snes_state.h" +#include "state_tracker.h" #include #include "../compat/strl.h" #include "../general.h" -#include "../libsnes.hpp" +#include "../libretro.h" #ifdef HAVE_PYTHON #include "py_state/py_state.h" #endif -struct snes_tracker_internal +struct state_tracker_internal { char id[64]; @@ -41,7 +41,7 @@ struct snes_tracker_internal uint16_t equal; - enum snes_tracker_type type; + enum state_tracker_type type; uint32_t prev[2]; int frame_count; @@ -50,9 +50,9 @@ struct snes_tracker_internal int transition_count; }; -struct snes_tracker +struct state_tracker { - struct snes_tracker_internal *info; + struct state_tracker_internal *info; unsigned info_elem; uint16_t input_state[2]; @@ -62,9 +62,9 @@ struct snes_tracker #endif }; -snes_tracker_t* snes_tracker_init(const struct snes_tracker_info *info) +state_tracker_t* state_tracker_init(const struct state_tracker_info *info) { - snes_tracker_t *tracker = (snes_tracker_t*)calloc(1, sizeof(*tracker)); + state_tracker_t *tracker = (state_tracker_t*)calloc(1, sizeof(*tracker)); if (!tracker) return NULL; @@ -81,7 +81,7 @@ snes_tracker_t* snes_tracker_init(const struct snes_tracker_info *info) } #endif - tracker->info = (struct snes_tracker_internal*)calloc(info->info_elem, sizeof(struct snes_tracker_internal)); + tracker->info = (struct state_tracker_internal*)calloc(info->info_elem, sizeof(struct state_tracker_internal)); tracker->info_elem = info->info_elem; for (unsigned i = 0; i < info->info_elem; i++) @@ -105,18 +105,6 @@ snes_tracker_t* snes_tracker_init(const struct snes_tracker_info *info) case SSNES_STATE_WRAM: tracker->info[i].ptr = info->wram ? info->wram : ∅ break; - case SSNES_STATE_APURAM: - tracker->info[i].ptr = info->apuram ? info->apuram : ∅ - break; - case SSNES_STATE_OAM: - tracker->info[i].ptr = info->oam ? info->oam : ∅ - break; - case SSNES_STATE_CGRAM: - tracker->info[i].ptr = info->cgram ? info->cgram : ∅ - break; - case SSNES_STATE_VRAM: - tracker->info[i].ptr = info->vram ? info->vram : ∅ - break; case SSNES_STATE_INPUT_SLOT1: tracker->info[i].input_ptr = &tracker->input_state[0]; tracker->info[i].is_input = true; @@ -134,7 +122,7 @@ snes_tracker_t* snes_tracker_init(const struct snes_tracker_info *info) return tracker; } -void snes_tracker_free(snes_tracker_t *tracker) +void state_tracker_free(state_tracker_t *tracker) { free(tracker->info); #ifdef HAVE_PYTHON @@ -143,7 +131,7 @@ void snes_tracker_free(snes_tracker_t *tracker) free(tracker); } -static inline uint16_t fetch(const struct snes_tracker_internal *info) +static inline uint16_t fetch(const struct state_tracker_internal *info) { uint16_t val = 0; if (info->is_input) @@ -160,8 +148,8 @@ static inline uint16_t fetch(const struct snes_tracker_internal *info) } static void update_element( - struct snes_tracker_uniform *uniform, - struct snes_tracker_internal *info, + struct state_tracker_uniform *uniform, + struct state_tracker_internal *info, unsigned frame_count) { uniform->id = info->id; @@ -221,24 +209,24 @@ static void update_element( } // Updates 16-bit input in same format as SNES itself. -static void update_input(snes_tracker_t *tracker) +static void update_input(state_tracker_t *tracker) { if (driver.input == NULL) return; static const unsigned buttons[] = { - SNES_DEVICE_ID_JOYPAD_R, - SNES_DEVICE_ID_JOYPAD_L, - SNES_DEVICE_ID_JOYPAD_X, - SNES_DEVICE_ID_JOYPAD_A, - SNES_DEVICE_ID_JOYPAD_RIGHT, - SNES_DEVICE_ID_JOYPAD_LEFT, - SNES_DEVICE_ID_JOYPAD_DOWN, - SNES_DEVICE_ID_JOYPAD_UP, - SNES_DEVICE_ID_JOYPAD_START, - SNES_DEVICE_ID_JOYPAD_SELECT, - SNES_DEVICE_ID_JOYPAD_Y, - SNES_DEVICE_ID_JOYPAD_B, + RETRO_DEVICE_ID_JOYPAD_R, + RETRO_DEVICE_ID_JOYPAD_L, + RETRO_DEVICE_ID_JOYPAD_X, + RETRO_DEVICE_ID_JOYPAD_A, + RETRO_DEVICE_ID_JOYPAD_RIGHT, + RETRO_DEVICE_ID_JOYPAD_LEFT, + RETRO_DEVICE_ID_JOYPAD_DOWN, + RETRO_DEVICE_ID_JOYPAD_UP, + RETRO_DEVICE_ID_JOYPAD_START, + RETRO_DEVICE_ID_JOYPAD_SELECT, + RETRO_DEVICE_ID_JOYPAD_Y, + RETRO_DEVICE_ID_JOYPAD_B, }; // Only bind for up to two players for now. @@ -250,15 +238,15 @@ static void update_input(snes_tracker_t *tracker) uint16_t state[2] = {0}; for (unsigned i = 4; i < 16; i++) { - state[0] |= (input_input_state_func(binds, SNES_PORT_1, SNES_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i; - state[1] |= (input_input_state_func(binds, SNES_PORT_2, SNES_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i; + state[0] |= (input_input_state_func(binds, 0, RETRO_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i; + state[1] |= (input_input_state_func(binds, 1, RETRO_DEVICE_JOYPAD, 0, buttons[i - 4]) ? 1 : 0) << i; } for (unsigned i = 0; i < 2; i++) tracker->input_state[i] = state[i]; } -unsigned snes_get_uniform(snes_tracker_t *tracker, struct snes_tracker_uniform *uniforms, unsigned elem, unsigned frame_count) +unsigned state_get_uniform(state_tracker_t *tracker, struct state_tracker_uniform *uniforms, unsigned elem, unsigned frame_count) { unsigned elems = tracker->info_elem < elem ? tracker->info_elem : elem; diff --git a/gfx/snes_state.h b/gfx/state_tracker.h similarity index 64% rename from gfx/snes_state.h rename to gfx/state_tracker.h index 3c3ed966ea..3d4a4eb60a 100644 --- a/gfx/snes_state.h +++ b/gfx/state_tracker.h @@ -15,8 +15,8 @@ * If not, see . */ -#ifndef __SSNES_SNES_STATE_H -#define __SSNES_SNES_STATE_H +#ifndef __SSNES_SNES_TRACKER_H +#define __SSNES_SNES_TRACKER_H #include #include "../boolean.h" @@ -25,7 +25,7 @@ #include "config.h" #endif -enum snes_tracker_type +enum state_tracker_type { #ifdef HAVE_PYTHON SSNES_STATE_PYTHON, @@ -37,37 +37,29 @@ enum snes_tracker_type SSNES_STATE_TRANSITION_PREV }; -enum snes_ram_type +enum state_ram_type { SSNES_STATE_NONE, SSNES_STATE_WRAM, - SSNES_STATE_APURAM, - SSNES_STATE_OAM, - SSNES_STATE_CGRAM, - SSNES_STATE_VRAM, SSNES_STATE_INPUT_SLOT1, SSNES_STATE_INPUT_SLOT2 }; -struct snes_tracker_uniform_info +struct state_tracker_uniform_info { char id[64]; uint32_t addr; - enum snes_tracker_type type; - enum snes_ram_type ram_type; + enum state_tracker_type type; + enum state_ram_type ram_type; uint16_t mask; uint16_t equal; }; -struct snes_tracker_info +struct state_tracker_info { const uint8_t *wram; - const uint8_t *vram; - const uint8_t *cgram; - const uint8_t *oam; - const uint8_t *apuram; - const struct snes_tracker_uniform_info *info; + const struct state_tracker_uniform_info *info; unsigned info_elem; #ifdef HAVE_PYTHON @@ -77,17 +69,17 @@ struct snes_tracker_info #endif }; -struct snes_tracker_uniform +struct state_tracker_uniform { const char *id; float value; }; -typedef struct snes_tracker snes_tracker_t; +typedef struct state_tracker state_tracker_t; -snes_tracker_t* snes_tracker_init(const struct snes_tracker_info *info); -void snes_tracker_free(snes_tracker_t *tracker); +state_tracker_t* state_tracker_init(const struct state_tracker_info *info); +void state_tracker_free(state_tracker_t *tracker); -unsigned snes_get_uniform(snes_tracker_t *tracker, struct snes_tracker_uniform *uniforms, unsigned elem, unsigned frame_count); +unsigned state_get_uniform(state_tracker_t *tracker, struct state_tracker_uniform *uniforms, unsigned elem, unsigned frame_count); #endif diff --git a/settings.c b/settings.c index 7f93c4321d..2adce9843b 100644 --- a/settings.c +++ b/settings.c @@ -444,8 +444,8 @@ bool config_load_file(const char *path) CONFIG_GET_STRING(audio.dsp_plugin, "audio_dsp_plugin"); CONFIG_GET_STRING(input.driver, "input_driver"); - if (!*g_settings.libsnes) - CONFIG_GET_STRING(libsnes, "libsnes_path"); + if (!*g_settings.libretro) + CONFIG_GET_STRING(libretro, "libretro_path"); CONFIG_GET_STRING(screenshot_directory, "screenshot_directory"); if (*g_settings.screenshot_directory && !path_is_directory(g_settings.screenshot_directory)) diff --git a/ssnes.c b/ssnes.c index 3e72353f62..1c0f481285 100644 --- a/ssnes.c +++ b/ssnes.c @@ -846,7 +846,7 @@ static void parse_input(int argc, char *argv[]) #ifdef HAVE_DYNAMIC case 'L': - strlcpy(g_settings.libsnes, optarg, sizeof(g_settings.libsnes)); + strlcpy(g_settings.libretro, optarg, sizeof(g_settings.libretro)); break; #endif @@ -2244,7 +2244,7 @@ void ssnes_main_clear_state(void) static void init_system_info(void) { struct retro_system_info *info = &g_extern.system.info; - retro_get_system_info(info); + pretro_get_system_info(info); if (!info->library_name) info->library_name = "Unknown"; @@ -2257,7 +2257,7 @@ static void init_system_info(void) static void init_system_av_info(void) { - retro_get_system_av_info(&g_extern.system.av_info); + pretro_get_system_av_info(&g_extern.system.av_info); } static void verify_api_version(void)