summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Justin Kerk <dopefishjustin@gmail.com>2015-11-24 15:38:42 +0000
committer Justin Kerk <dopefishjustin@gmail.com>2015-11-24 15:38:42 +0000
commit9744037cd7b3d3fe07e23002dd9a7a534cd98675 (patch)
treef2e65967bb0b90ec59d6b1f06d8ee9fa90f96f01
parent62c78f106c7c4b9bffdd7e0c60d8f81dba9278a4 (diff)
Compile with Emscripten out of the box. [Justin Kerk]
-rw-r--r--scripts/src/main.lua5
-rw-r--r--src/osd/sdl/emscripten_post.js10
2 files changed, 15 insertions, 0 deletions
diff --git a/scripts/src/main.lua b/scripts/src/main.lua
index 7f24d684a2a..2d233eba87a 100644
--- a/scripts/src/main.lua
+++ b/scripts/src/main.lua
@@ -85,6 +85,11 @@ end
configuration { "asmjs" }
targetextension ".bc"
+ if os.getenv("EMSCRIPTEN") then
+ postbuildcommands {
+ os.getenv("EMSCRIPTEN") .. "/emcc -O3 -s DISABLE_EXCEPTION_CATCHING=2 -s USE_SDL=2 --memory-init-file 0 -s ALLOW_MEMORY_GROWTH=0 -s TOTAL_MEMORY=268435456 -s EXCEPTION_CATCHING_WHITELIST='[\"__ZN15running_machine17start_all_devicesEv\"]' -s EXPORTED_FUNCTIONS=\"['_main', '_malloc', '__Z14js_get_machinev', '__Z9js_get_uiv', '__Z12js_get_soundv', '__ZN10ui_manager12set_show_fpsEb', '__ZNK10ui_manager8show_fpsEv', '__ZN13sound_manager4muteEbh', '_SDL_PauseAudio']\" $(TARGET) -o " .. MAME_DIR .. _OPTIONS["target"] .. _OPTIONS["subtarget"] .. ".js --post-js " .. MAME_DIR .. "src/osd/sdl/emscripten_post.js",
+ }
+ end
configuration { }
diff --git a/src/osd/sdl/emscripten_post.js b/src/osd/sdl/emscripten_post.js
new file mode 100644
index 00000000000..6bfad8790cb
--- /dev/null
+++ b/src/osd/sdl/emscripten_post.js
@@ -0,0 +1,10 @@
+// MAME-JavaScript function mappings
+var JSMAME = JSMAME || {};
+JSMAME.get_machine = Module.cwrap('_Z14js_get_machinev', 'number');
+JSMAME.get_ui = Module.cwrap('_Z9js_get_uiv', 'number');
+JSMAME.get_sound = Module.cwrap('_Z12js_get_soundv', 'number');
+JSMAME.ui_set_show_fps = Module.cwrap('_ZN10ui_manager12set_show_fpsEb', '', ['number', 'number']);
+JSMAME.ui_get_show_fps = Module.cwrap('_ZNK10ui_manager8show_fpsEv', 'number', ['number']);
+JSMAME.sound_manager_mute = Module.cwrap('_ZN13sound_manager4muteEbh', '', ['number', 'number', 'number']);
+JSMAME.sdl_pauseaudio = Module.cwrap('SDL_PauseAudio', '', ['number']);
+var JSMESS = JSMAME;