diff --git a/frontend/drivers/platform_android.c b/frontend/drivers/platform_android.c index 1725ba7a46..d6768dbda1 100644 --- a/frontend/drivers/platform_android.c +++ b/frontend/drivers/platform_android.c @@ -249,6 +249,9 @@ static void android_app_entry(void *data) do { ret = rarch_main_iterate(); + + if (ret == 1) + rarch_sleep(10); rarch_main_data_iterate(); }while (ret != -1); diff --git a/frontend/drivers/platform_emscripten.c b/frontend/drivers/platform_emscripten.c index 274a08f108..22a00c1d2f 100644 --- a/frontend/drivers/platform_emscripten.c +++ b/frontend/drivers/platform_emscripten.c @@ -28,6 +28,8 @@ static void emscripten_mainloop(void) { int ret = rarch_main_iterate(); + if (ret == 1) + rarch_sleep(10); rarch_main_data_iterate(); if (ret != -1) return; diff --git a/frontend/frontend.c b/frontend/frontend.c index 5c17f59110..e85f64d1c8 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -343,6 +343,9 @@ int rarch_main(int argc, char *argv[], void *data) #ifndef HAVE_MAIN do{ ret = rarch_main_iterate(); + + if (ret == 1) + rarch_sleep(10); rarch_main_data_iterate(); }while(ret != -1); diff --git a/runloop.c b/runloop.c index 0e7895d887..63cf08ddcc 100644 --- a/runloop.c +++ b/runloop.c @@ -1081,10 +1081,8 @@ int rarch_main_iterate(void) if (do_state_checks(driver, settings, global, &cmd)) { - /* RetroArch has been paused */ + /* RetroArch has been paused. */ driver->retro_ctx.poll_cb(); - rarch_sleep(10); - return 1; } diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 24e3701342..bfa407752b 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -210,6 +210,8 @@ static void poll_iteration(void) { poll_iteration(); ret = rarch_main_iterate(); + if (ret == 1) + rarch_sleep(10); rarch_main_data_iterate(); while(CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.002, FALSE) == kCFRunLoopRunHandledSource); } diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 5f57a0b3f0..876d83a91a 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -65,6 +65,8 @@ static void rarch_draw_observer(CFRunLoopObserverRef observer, if (ret == 0) menu_iterate(false, MENU_ACTION_NOOP); + if (ret == 1) + rarch_sleep(10); rarch_main_data_iterate(); if (ret == -1)