diff --git a/src/86box.c b/src/86box.c index 82c847eaa..b8715d991 100644 --- a/src/86box.c +++ b/src/86box.c @@ -26,6 +26,13 @@ #include #include #include +#ifdef __APPLE__ +#include +#include +#ifdef __aarch64__ +#include +#endif +#endif #define HAVE_STDARG_H #include <86box/86box.h> @@ -780,7 +787,13 @@ pc_init_modules(void) mem_init(); #ifdef USE_DYNAREC +#if defined(__APPLE__) && defined(__aarch64__) + pthread_jit_write_protect_np(0); +#endif codegen_init(); +#if defined(__APPLE__) && defined(__aarch64__) + pthread_jit_write_protect_np(1); +#endif #endif keyboard_init(); @@ -1104,7 +1117,12 @@ pc_run(void) if (title_update) { swprintf(temp, sizeof_w(temp), mouse_msg[!!mouse_capture], fps); +#ifdef __APPLE__ + /* Needed due to modifying the UI on the non-main thread is a big no-no. */ + dispatch_async_f(dispatch_get_main_queue(), strdup(temp), _ui_window_title); +#else ui_window_title(temp); +#endif title_update = 0; } } diff --git a/src/cpu/386_dynarec.c b/src/cpu/386_dynarec.c index d396d122a..cf2f87e05 100644 --- a/src/cpu/386_dynarec.c +++ b/src/cpu/386_dynarec.c @@ -3,6 +3,9 @@ #include #include #include +#if defined(__APPLE__) && defined(__aarch64__) +#include +#endif #include #include #ifndef INFINITY