X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?p=pcsx_rearmed.git;a=blobdiff_plain;f=frontend%2Flibretro.c;h=0869a2589f25e3c937f51e37c80bd1e9def763ba;hp=3b366d43c876e64daabba6aed192fe64a9073084;hb=1a6164a1aaa1a7f5117730f30410461bb76b63f5;hpb=28e4cc07117508ff10e13647490bfeb442d5667f diff --git a/frontend/libretro.c b/frontend/libretro.c index 3b366d43..0869a258 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. */