diff --git a/frontend/drivers/platform_android.c b/frontend/drivers/platform_android.c index 3f44560c25..841c9afd22 100644 --- a/frontend/drivers/platform_android.c +++ b/frontend/drivers/platform_android.c @@ -227,11 +227,16 @@ static void android_app_entry(void *data) { char *argv[1]; int argc = 0; + int ret = 0; if (rarch_main(argc, argv, data) != 0) goto end; #ifndef HAVE_MAIN - while (rarch_main_iterate() != -1); + do + { + ret = rarch_main_iterate(); + rarch_main_data_iterate(); + }while (ret != -1); main_exit(data); #endif diff --git a/frontend/drivers/platform_emscripten.c b/frontend/drivers/platform_emscripten.c index 30f12d409c..702c96c149 100644 --- a/frontend/drivers/platform_emscripten.c +++ b/frontend/drivers/platform_emscripten.c @@ -21,10 +21,13 @@ #include "../../content.h" #include "../frontend.h" #include "../frontend_driver.h" +#include "../runloop_data.h" static void emscripten_mainloop(void) { - if (rarch_main_iterate() != -1) + int ret = rarch_main_iterate(); + rarch_main_data_iterate(); + if (ret != -1) return; main_exit(NULL); diff --git a/frontend/frontend.c b/frontend/frontend.c index 10d926b1d6..67f47cda31 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -20,6 +20,7 @@ #include "../general.h" #include "../retroarch.h" #include "../runloop.h" +#include "../runloop_data.h" #include #define MAX_ARGS 32 @@ -321,7 +322,10 @@ int rarch_main(int argc, char *argv[], void *data) } #ifndef HAVE_MAIN - while (rarch_main_iterate() != -1); + do{ + ret = rarch_main_iterate(); + rarch_main_data_iterate(); + }while(ret != -1); main_exit(args); #endif diff --git a/runloop.c b/runloop.c index 22e8d1f50a..4cc7d18c2b 100644 --- a/runloop.c +++ b/runloop.c @@ -1111,8 +1111,6 @@ int rarch_main_iterate(void) rarch_main_iterate_linefeed_overlay(); #endif - rarch_main_data_iterate(); - #ifdef HAVE_MENU if (runloop->is_menu) { diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index f4ce33f6d6..95b5118525 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -27,6 +27,7 @@ #include "../ui_companion_driver.h" #include "../../input/drivers/cocoa_input.h" #include "../../frontend/frontend.h" +#include "../../runloop_data.h" static id apple_platform; @@ -207,6 +208,7 @@ static void poll_iteration(void) { poll_iteration(); ret = rarch_main_iterate(); + 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 b07ca35cea..5c4e9c4a78 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -33,6 +33,7 @@ #include "../../input/drivers_hid/btstack_hid.h" #include "../../frontend/frontend.h" +#include "../../runloop_data.h" static id apple_platform; static CFRunLoopObserverRef iterate_observer; @@ -51,6 +52,7 @@ static void rarch_draw(CFRunLoopObserverRef observer, return; ret = rarch_main_iterate(); + rarch_main_data_iterate(); if (ret == -1) {