notaz.gp2x.de
/
pcsx_rearmed.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix detection for rumble interface
[pcsx_rearmed.git]
/
frontend
/
libretro.c
diff --git
a/frontend/libretro.c
b/frontend/libretro.c
index
7fa63cb
..
5e5d88c
100644
(file)
--- a/
frontend/libretro.c
+++ b/
frontend/libretro.c
@@
-57,7
+57,7
@@
static retro_input_poll_t input_poll_cb;
static retro_input_state_t input_state_cb;
static retro_environment_t environ_cb;
static retro_audio_sample_batch_t audio_batch_cb;
static retro_input_state_t input_state_cb;
static retro_environment_t environ_cb;
static retro_audio_sample_batch_t audio_batch_cb;
-static
struct retro_rumble_interface rumble
;
+static
retro_set_rumble_state_t rumble_cb
;
static struct retro_log_callback logging;
static retro_log_printf_t log_cb;
static struct retro_log_callback logging;
static retro_log_printf_t log_cb;
@@
-430,10
+430,13
@@
void pl_timing_prepare(int is_pal)
void plat_trigger_vibrate(int pad, int low, int high)
{
void plat_trigger_vibrate(int pad, int low, int high)
{
- if(in_enable_vibration)
+ if (!rumble_cb)
+ return;
+
+ if (in_enable_vibration)
{
{
-
rumble.set_rumble_state
(pad, RETRO_RUMBLE_STRONG, high << 8);
-
rumble.set_rumble_state
(pad, RETRO_RUMBLE_WEAK, low ? 0xffff : 0x0);
+
rumble_cb
(pad, RETRO_RUMBLE_STRONG, high << 8);
+
rumble_cb
(pad, RETRO_RUMBLE_WEAK, low ? 0xffff : 0x0);
}
}
}
}
@@
-1883,6
+1886,7
@@
static int init_memcards(void)
void retro_init(void)
{
void retro_init(void)
{
+ struct retro_rumble_interface rumble;
const char *bios[] = {
"SCPH101", "SCPH7001", "SCPH5501", "SCPH1001",
"scph101", "scph7001", "scph5501", "scph1001"
const char *bios[] = {
"SCPH101", "SCPH7001", "SCPH5501", "SCPH1001",
"scph101", "scph7001", "scph5501", "scph1001"
@@
-1962,7
+1966,10
@@
void retro_init(void)
environ_cb(RETRO_ENVIRONMENT_GET_CAN_DUPE, &vout_can_dupe);
environ_cb(RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE, &disk_control);
environ_cb(RETRO_ENVIRONMENT_GET_CAN_DUPE, &vout_can_dupe);
environ_cb(RETRO_ENVIRONMENT_SET_DISK_CONTROL_INTERFACE, &disk_control);
- environ_cb(RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE, &rumble);
+
+ rumble_cb = NULL;
+ if (environ_cb(RETRO_ENVIRONMENT_GET_RUMBLE_INTERFACE, &rumble))
+ rumble_cb = rumble.set_rumble_state;
/* Set how much slower PSX CPU runs * 100 (so that 200 is 2 times)
* we have to do this because cache misses and some IO penalties
/* Set how much slower PSX CPU runs * 100 (so that 200 is 2 times)
* we have to do this because cache misses and some IO penalties