aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorAutechre2020-05-26 17:40:04 +0200
committerGitHub2020-05-26 17:40:04 +0200
commit7973b25fe929f92e146a854ecaf4f3cea5b4ffb8 (patch)
tree1904069f36b587a12329965f784382befeb9f351 /frontend
parent60946251ee42e0ba3d2a2f1265a1930cacb95522 (diff)
parent8a60e610f2f7d6421077b7bd6e6aab075276ef63 (diff)
downloadpcsx_rearmed-7973b25fe929f92e146a854ecaf4f3cea5b4ffb8.tar.gz
pcsx_rearmed-7973b25fe929f92e146a854ecaf4f3cea5b4ffb8.tar.bz2
pcsx_rearmed-7973b25fe929f92e146a854ecaf4f3cea5b4ffb8.zip
Merge pull request #423 from jdgleaver/set-message-ext
Add support for frontend message interface v1
Diffstat (limited to 'frontend')
-rw-r--r--frontend/libretro.c60
1 files changed, 50 insertions, 10 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index ed39951..d489ce5 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -71,6 +71,8 @@ static retro_set_rumble_state_t rumble_cb;
static struct retro_log_callback logging;
static retro_log_printf_t log_cb;
+static unsigned msg_interface_version = 0;
+
static void *vout_buf;
static void *vout_buf_ptr;
static int vout_width, vout_height;
@@ -2455,10 +2457,6 @@ static void print_internal_fps(void)
unsigned internal_fps = pl_rearmed_cbs.flip_cnt * (is_pal_mode ? 50 : 60) / INTERNAL_FPS_SAMPLE_PERIOD;
char str[64];
const char *strc = (const char *)str;
- struct retro_message msg = {
- strc,
- 180
- };
str[0] = '\0';
@@ -2466,7 +2464,27 @@ static void print_internal_fps(void)
pl_rearmed_cbs.flip_cnt = 0;
- environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, &msg);
+ if (msg_interface_version >= 1)
+ {
+ struct retro_message_ext msg = {
+ strc,
+ 3000,
+ 1,
+ RETRO_LOG_INFO,
+ RETRO_MESSAGE_TARGET_OSD,
+ RETRO_MESSAGE_TYPE_STATUS,
+ -1
+ };
+ environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE_EXT, &msg);
+ }
+ else
+ {
+ struct retro_message msg = {
+ strc,
+ 180
+ };
+ environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, &msg);
+ }
}
}
else
@@ -2667,12 +2685,31 @@ static void loadPSXBios(void)
if (useHLE || !found_bios)
{
+ const char *msg_str = "No PlayStation BIOS file found - add for better compatibility";
+
SysPrintf("no BIOS files found.\n");
- struct retro_message msg = {
- "No PlayStation BIOS file found - add for better compatibility",
- 180
- };
- environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, (void *)&msg);
+
+ if (msg_interface_version >= 1)
+ {
+ struct retro_message_ext msg = {
+ msg_str,
+ 3000,
+ 3,
+ RETRO_LOG_WARN,
+ RETRO_MESSAGE_TARGET_ALL,
+ RETRO_MESSAGE_TYPE_NOTIFICATION,
+ -1
+ };
+ environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE_EXT, &msg);
+ }
+ else
+ {
+ struct retro_message msg = {
+ msg_str,
+ 180
+ };
+ environ_cb(RETRO_ENVIRONMENT_SET_MESSAGE, &msg);
+ }
}
}
@@ -2682,6 +2719,9 @@ void retro_init(void)
struct retro_rumble_interface rumble;
int ret;
+ msg_interface_version = 0;
+ environ_cb(RETRO_ENVIRONMENT_GET_MESSAGE_INTERFACE_VERSION, &msg_interface_version);
+
#ifdef __MACH__
// magic sauce to make the dynarec work on iOS
syscall(SYS_ptrace, 0 /*PTRACE_TRACEME*/, 0, 0, 0);