mirror of
https://github.com/CTCaer/RetroArch.git
synced 2025-03-02 08:36:44 +00:00
Dynamic loading by default, add OSD message for netplay DC.
This commit is contained in:
parent
892e82141f
commit
f6d4d32c03
@ -12,6 +12,7 @@ HAVE_DSOUND = 1
|
||||
HAVE_SDL = 1
|
||||
HAVE_DYLIB = 1
|
||||
HAVE_NETPLAY = 1
|
||||
DYNAMIC = 1
|
||||
|
||||
ifeq ($(SLIM),)
|
||||
HAVE_SDL_IMAGE = 1
|
||||
|
24
dynamic.c
24
dynamic.c
@ -17,6 +17,7 @@
|
||||
|
||||
#include "dynamic.h"
|
||||
#include "general.h"
|
||||
#include "strl.h"
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
@ -47,7 +48,6 @@
|
||||
static dylib_t lib_handle = NULL;
|
||||
#endif
|
||||
|
||||
|
||||
void (*psnes_init)(void);
|
||||
|
||||
void (*psnes_set_video_refresh)(snes_video_refresh_t);
|
||||
@ -112,7 +112,7 @@ static void load_dynamic(void)
|
||||
SYM(void (*)(snes_audio_sample_t), snes_set_audio_sample);
|
||||
SYM(void (*)(snes_input_poll_t), snes_set_input_poll);
|
||||
SYM(void (*)(snes_input_state_t), snes_set_input_state);
|
||||
OPT_SYM(const char *(*)(void), snes_library_id);
|
||||
SYM(const char *(*)(void), snes_library_id);
|
||||
SYM(unsigned (*)(void), snes_library_revision_minor);
|
||||
SYM(unsigned (*)(void), snes_library_revision_major);
|
||||
SYM(void (*)(void), snes_cheat_reset);
|
||||
@ -156,6 +156,7 @@ static void set_statics(void)
|
||||
SSYM(snes_set_input_state);
|
||||
SSYM(snes_library_revision_minor);
|
||||
SSYM(snes_library_revision_major);
|
||||
SSYM(snes_library_id);
|
||||
SSYM(snes_cheat_reset);
|
||||
SSYM(snes_cheat_set);
|
||||
SSYM(snes_reset);
|
||||
@ -204,15 +205,20 @@ void init_dlsym(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (strlen(g_settings.libsnes) > 0)
|
||||
load_dynamic();
|
||||
else
|
||||
if (!*g_settings.libsnes)
|
||||
{
|
||||
SSNES_ERR("This binary is built to use runtime dynamic binding of libsnes. Set libsnes_path in config to load a libsnes library dynamically.\n");
|
||||
exit(1);
|
||||
}
|
||||
#if defined(_WIN32)
|
||||
strlcpy(g_settings.libsnes, "snes.dll", sizeof(g_settings.libsnes));
|
||||
#elif defined(__APPLE__)
|
||||
strlcpy(g_settings.libsnes, "libsnes.dylib", sizeof(g_settings.libsnes));
|
||||
#else
|
||||
set_statics();
|
||||
strlcpy(g_settings.libsnes, "libsnes.so", sizeof(g_settings.libsnes));
|
||||
#endif
|
||||
}
|
||||
|
||||
load_dynamic();
|
||||
#else
|
||||
set_statics();
|
||||
#endif
|
||||
}
|
||||
|
||||
|
20
netplay.c
20
netplay.c
@ -19,6 +19,7 @@
|
||||
#include "general.h"
|
||||
#include "autosave.h"
|
||||
#include "dynamic.h"
|
||||
#include "message.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/time.h>
|
||||
@ -96,6 +97,13 @@ struct netplay
|
||||
bool has_client_addr;
|
||||
};
|
||||
|
||||
static void warn_hangup(void)
|
||||
{
|
||||
SSNES_WARN("Netplay has disconnected. Will continue without connection ...\n");
|
||||
if (g_extern.msg_queue)
|
||||
msg_queue_push(g_extern.msg_queue, "Netplay has disconnected. Will continue without connection.", 0, 480);
|
||||
}
|
||||
|
||||
void input_poll_net(void)
|
||||
{
|
||||
if (!netplay_should_skip(g_extern.netplay) && netplay_can_poll(g_extern.netplay))
|
||||
@ -401,7 +409,7 @@ static bool send_chunk(netplay_t *handle)
|
||||
{
|
||||
if (sendto(handle->udp_fd, CONST_CAST handle->packet_buffer, sizeof(handle->packet_buffer), 0, addr, sizeof(struct sockaddr)) != sizeof(handle->packet_buffer))
|
||||
{
|
||||
SSNES_WARN("Netplay connection hung up. Will continue without netplay.\n");
|
||||
warn_hangup();
|
||||
handle->has_connection = false;
|
||||
return false;
|
||||
}
|
||||
@ -441,7 +449,7 @@ static int poll_input(netplay_t *handle, bool block)
|
||||
|
||||
if (block && !send_chunk(handle))
|
||||
{
|
||||
SSNES_WARN("Netplay connection hung up. Will continue without netplay.\n");
|
||||
warn_hangup();
|
||||
handle->has_connection = false;
|
||||
return -1;
|
||||
}
|
||||
@ -483,7 +491,7 @@ static bool get_self_input_state(netplay_t *handle)
|
||||
|
||||
if (!send_chunk(handle))
|
||||
{
|
||||
SSNES_WARN("Netplay connection hung up. Will continue without netplay.\n");
|
||||
warn_hangup();
|
||||
handle->has_connection = false;
|
||||
return false;
|
||||
}
|
||||
@ -570,7 +578,7 @@ bool netplay_poll(netplay_t *handle)
|
||||
if (res == -1)
|
||||
{
|
||||
handle->has_connection = false;
|
||||
SSNES_WARN("Netplay connection timed out. Will continue without netplay.\n");
|
||||
warn_hangup();
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -582,7 +590,7 @@ bool netplay_poll(netplay_t *handle)
|
||||
uint32_t buffer[UDP_FRAME_PACKETS * 2];
|
||||
if (!receive_data(handle, buffer, sizeof(buffer)))
|
||||
{
|
||||
SSNES_WARN("Netplay connection hung up. Will continue without netplay.\n");
|
||||
warn_hangup();
|
||||
handle->has_connection = false;
|
||||
return false;
|
||||
}
|
||||
@ -597,7 +605,7 @@ bool netplay_poll(netplay_t *handle)
|
||||
// Cannot allow this. Should not happen though.
|
||||
if (handle->self_ptr == handle->other_ptr)
|
||||
{
|
||||
SSNES_WARN("Netplay connection hung up. Will continue without netplay.\n");
|
||||
warn_hangup();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
5
ssnes.c
5
ssnes.c
@ -1593,10 +1593,7 @@ static void do_state_checks(void)
|
||||
|
||||
static void fill_title_buf(void)
|
||||
{
|
||||
if (psnes_library_id)
|
||||
snprintf(g_extern.title_buf, sizeof(g_extern.title_buf), "SSNES : %s", psnes_library_id());
|
||||
else
|
||||
snprintf(g_extern.title_buf, sizeof(g_extern.title_buf), "SSNES");
|
||||
snprintf(g_extern.title_buf, sizeof(g_extern.title_buf), "SSNES : %s", psnes_library_id());
|
||||
}
|
||||
|
||||
static void init_state(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user