diff --git a/scripts/src/main.lua b/scripts/src/main.lua index a4bb6d3eab6..74bac36258c 100644 --- a/scripts/src/main.lua +++ b/scripts/src/main.lua @@ -153,6 +153,7 @@ end .. " -s DISABLE_EXCEPTION_CATCHING=2" .. " -s EXCEPTION_CATCHING_WHITELIST='[\"__ZN15running_machine17start_all_devicesEv\",\"__ZN12cli_frontend7executeEiPPc\"]'" .. " -s EXPORTED_FUNCTIONS=\"['_main', '_malloc', '__ZN15running_machine30emscripten_get_running_machineEv', '__ZN15running_machine17emscripten_get_uiEv', '__ZN15running_machine20emscripten_get_soundEv', '__ZN15mame_ui_manager12set_show_fpsEb', '__ZNK15mame_ui_manager8show_fpsEv', '__ZN13sound_manager4muteEbh', '_SDL_PauseAudio', '_SDL_SendKeyboardKey', '__ZN15running_machine15emscripten_saveEPKc', '__ZN15running_machine15emscripten_loadEPKc', '__ZN15running_machine21emscripten_hard_resetEv', '__ZN15running_machine21emscripten_soft_resetEv', '__ZN15running_machine15emscripten_exitEv']\"" + .. " -s EXTRA_EXPORTED_RUNTIME_METHODS=\"['cwrap']\"" .. " --pre-js " .. _MAKE.esc(MAME_DIR) .. "src/osd/modules/sound/js_sound.js" .. " --post-js " .. _MAKE.esc(MAME_DIR) .. "scripts/resources/emscripten/emscripten_post.js" .. " --embed-file " .. _MAKE.esc(MAME_DIR) .. "bgfx/chains@bgfx/chains" diff --git a/src/osd/osdsync.cpp b/src/osd/osdsync.cpp index 12253f2acbd..984d3b3b802 100644 --- a/src/osd/osdsync.cpp +++ b/src/osd/osdsync.cpp @@ -87,8 +87,13 @@ static void spin_while_not(const volatile _AtomType * volatile atom, const _Main int osd_get_num_processors(void) { +#if defined(SDLMAME_EMSCRIPTEN) + // multithreading is not supported at this time + return 1; +#else // max out at 4 for now since scaling above that seems to do poorly return std::min(std::thread::hardware_concurrency(), 4U); +#endif } //============================================================