Fix up some issues with dynamic loading.
This commit is contained in:
parent
73203b75c1
commit
19e2b2768b
2
Makefile
2
Makefile
|
@ -47,7 +47,7 @@ ifeq ($(HAVE_DL), 1)
|
||||||
LIBS += -ldl
|
LIBS += -ldl
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS = -Wall -O3 -std=gnu99 -I.
|
CFLAGS = -Wall -O3 -g -std=gnu99 -I.
|
||||||
|
|
||||||
all: $(TARGET) config.mk
|
all: $(TARGET) config.mk
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,7 @@ void (*psnes_term)(void);
|
||||||
#ifdef HAVE_DL
|
#ifdef HAVE_DL
|
||||||
static void load_dynamic(void)
|
static void load_dynamic(void)
|
||||||
{
|
{
|
||||||
|
SSNES_LOG("Loading dynamic libsnes from: \"%s\"\n", g_settings.libsnes);
|
||||||
lib_handle = dlopen(g_settings.libsnes, RTLD_LAZY);
|
lib_handle = dlopen(g_settings.libsnes, RTLD_LAZY);
|
||||||
if (!lib_handle)
|
if (!lib_handle)
|
||||||
{
|
{
|
||||||
|
|
|
@ -80,6 +80,7 @@ struct global
|
||||||
FILE *rom_file;
|
FILE *rom_file;
|
||||||
char savefile_name_srm[256];
|
char savefile_name_srm[256];
|
||||||
char config_path[256];
|
char config_path[256];
|
||||||
|
char basename[256];
|
||||||
};
|
};
|
||||||
|
|
||||||
void parse_config(void);
|
void parse_config(void);
|
||||||
|
|
10
ssnes.c
10
ssnes.c
|
@ -259,12 +259,8 @@ static void parse_input(int argc, char *argv[])
|
||||||
strcpy(tmp, argv[optind]);
|
strcpy(tmp, argv[optind]);
|
||||||
char *dst = strrchr(tmp, '.');
|
char *dst = strrchr(tmp, '.');
|
||||||
if (dst)
|
if (dst)
|
||||||
{
|
|
||||||
*dst = '\0';
|
*dst = '\0';
|
||||||
psnes_set_cartridge_basename(tmp);
|
strncpy(g_extern.basename, tmp, sizeof(g_extern.basename) - 1);
|
||||||
}
|
|
||||||
else
|
|
||||||
psnes_set_cartridge_basename(tmp);
|
|
||||||
|
|
||||||
SSNES_LOG("Opening file: \"%s\"\n", argv[optind]);
|
SSNES_LOG("Opening file: \"%s\"\n", argv[optind]);
|
||||||
g_extern.rom_file = fopen(argv[optind], "rb");
|
g_extern.rom_file = fopen(argv[optind], "rb");
|
||||||
|
@ -288,10 +284,12 @@ int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
parse_input(argc, argv);
|
parse_input(argc, argv);
|
||||||
parse_config();
|
parse_config();
|
||||||
|
|
||||||
init_dlsym();
|
init_dlsym();
|
||||||
|
|
||||||
psnes_init();
|
psnes_init();
|
||||||
|
if (strlen(g_extern.basename) > 0)
|
||||||
|
psnes_set_cartridge_basename(g_extern.basename);
|
||||||
|
|
||||||
SSNES_LOG("Version of libsnes API: %u.%u\n", psnes_library_revision_major(), psnes_library_revision_minor());
|
SSNES_LOG("Version of libsnes API: %u.%u\n", psnes_library_revision_major(), psnes_library_revision_minor());
|
||||||
void *rom_buf;
|
void *rom_buf;
|
||||||
ssize_t rom_len = 0;
|
ssize_t rom_len = 0;
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
##### Config file for SSNES
|
##### Config file for SSNES
|
||||||
|
|
||||||
|
## If enabled, load libsnes from a dynamic location.
|
||||||
|
# libsnes_path = "/path/to/libsnes.so"
|
||||||
|
|
||||||
#### Video
|
#### Video
|
||||||
|
|
||||||
# Windowed xscale and yscale (Real x res: 296 * xscale, real y scale: 224 * xscale)
|
# Windowed xscale and yscale (Real x res: 296 * xscale, real y scale: 224 * xscale)
|
||||||
|
|
Loading…
Reference in New Issue