aboutsummaryrefslogtreecommitdiff
path: root/frontend/libretro.c
diff options
context:
space:
mode:
authornotaz2012-12-16 20:07:50 +0200
committernotaz2012-12-16 20:08:41 +0200
commit1a6164a1aaa1a7f5117730f30410461bb76b63f5 (patch)
tree321ea56976e958703cc5c3d0872426211c3f4218 /frontend/libretro.c
parent28e4cc07117508ff10e13647490bfeb442d5667f (diff)
downloadpcsx_rearmed-1a6164a1aaa1a7f5117730f30410461bb76b63f5.tar.gz
pcsx_rearmed-1a6164a1aaa1a7f5117730f30410461bb76b63f5.tar.bz2
pcsx_rearmed-1a6164a1aaa1a7f5117730f30410461bb76b63f5.zip
libretro: check for CAN_DUPE, as suggested by ToadKing
Diffstat (limited to 'frontend/libretro.c')
-rw-r--r--frontend/libretro.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/frontend/libretro.c b/frontend/libretro.c
index 3b366d4..0869a25 100644
--- a/frontend/libretro.c
+++ b/frontend/libretro.c
@@ -30,6 +30,7 @@ static retro_audio_sample_batch_t audio_batch_cb;
static void *vout_buf;
static int vout_width, vout_height;
static int vout_doffs_old, vout_fb_dirty;
+static bool vout_can_dupe;
static int samples_sent, samples_to_send;
static int plugins_opened;
@@ -402,7 +403,8 @@ void retro_run(void)
samples_to_send += 44100 / 60;
- video_cb(vout_fb_dirty ? vout_buf : NULL, vout_width, vout_height, vout_width * 2);
+ video_cb((vout_fb_dirty || !vout_can_dupe) ? vout_buf : NULL,
+ vout_width, vout_height, vout_width * 2);
vout_fb_dirty = 0;
}
@@ -446,6 +448,8 @@ void retro_init(void)
level = 1;
environ_cb(RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL, &level);
+ environ_cb(RETRO_ENVIRONMENT_GET_CAN_DUPE, &vout_can_dupe);
+
/* 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
* are not emulated. Warning: changing this may break compatibility. */