summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/sdl/sdlmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/sdl/sdlmain.c')
-rw-r--r--src/osd/sdl/sdlmain.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/osd/sdl/sdlmain.c b/src/osd/sdl/sdlmain.c
index 2510e77a475..221a3f0dad6 100644
--- a/src/osd/sdl/sdlmain.c
+++ b/src/osd/sdl/sdlmain.c
@@ -38,10 +38,6 @@
#include <os2.h>
#endif
-#ifdef SDLMAME_EMSCRIPTEN
-#include <emscripten.h>
-#endif
-
#include "sdlinc.h"
// MAME headers
@@ -295,10 +291,6 @@ int main(int argc, char *argv[])
MorphToPM();
#endif
- #ifdef SDLMAME_EMSCRIPTEN
- EM_ASM("SDL.defaults.copyOnLock = false; SDL.defaults.discardOnLock = true;");
- #endif
-
#if defined(SDLMAME_X11) && (SDL_MAJOR_VERSION == 1) && (SDL_MINOR_VERSION == 2)
if (SDL_Linked_Version()->patch < 10)
/* workaround for SDL choosing a 32-bit ARGB visual */
@@ -619,7 +611,12 @@ void sdl_osd_interface::init(running_machine &machine)
if (!SDLMAME_INIT_IN_WORKER_THREAD)
{
#if (SDLMAME_SDL2)
+#ifdef SDLMAME_EMSCRIPTEN
+ // timer brings in threads which are not supported in Emscripten
+ if (SDL_InitSubSystem(SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
+#else
if (SDL_InitSubSystem(SDL_INIT_TIMER| SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
+#endif
#else
if (SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
#endif
@@ -655,7 +652,11 @@ void sdl_osd_interface::init(running_machine &machine)
}
#if (SDLMAME_SDL2)
+#ifdef SDLMAME_EMSCRIPTEN
+ SDL_EventState(SDL_TEXTINPUT, SDL_FALSE);
+#else
SDL_EventState(SDL_TEXTINPUT, SDL_TRUE);
+#endif
#else
SDL_EnableUNICODE(SDL_TRUE);
#endif