--- a/configure.ac +++ b/configure.ac @@ -115,10 +115,11 @@ # TODO: We currently link everything against libraries that don't need it. # Use the specific library CFLAGS/LIBS variables instead of setting them here. -EMFLAGS="-gsource-map -s INVOKE_RUN=1 -s USE_SDL=2 -s USE_SDL_MIXER=2 -s LEGACY_GL_EMULATION=0 -s USE_SDL_NET=2 -s ASSERTIONS=0 -s WASM=1 -s ALLOW_MEMORY_GROWTH=0 -s FORCE_FILESYSTEM=1 -s EXTRA_EXPORTED_RUNTIME_METHODS=[['FS','ccall']] -s SAFE_HEAP=1 -s EXIT_RUNTIME=1 -s STACK_OVERFLOW_CHECK=1 -s PROXY_POSIX_SOCKETS=0 -s USE_PTHREADS=0 -s PROXY_TO_PTHREAD=0 -s TOTAL_MEMORY=64MB -s ERROR_ON_UNDEFINED_SYMBOLS=0 -s ASYNCIFY -O3 --source-map-base /" +# Browser Games Now, 2026-10-20: SDK 3.1.57, local files and IDBFS saves. +EMFLAGS="-sUSE_SDL=2 -sUSE_SDL_MIXER=2 -sUSE_SDL_NET=2 -sSDL2_MIXER_FORMATS=[] -sALLOW_MEMORY_GROWTH=1 -sFORCE_FILESYSTEM=1 -sEXPORTED_RUNTIME_METHODS=FS,callMain,addRunDependency,removeRunDependency -sEXIT_RUNTIME=1 -sASYNCIFY -O3" CFLAGS="$CFLAGS $SDL_CFLAGS ${SAMPLERATE_CFLAGS:-} ${PNG_CFLAGS:-} $EMFLAGS" -LDFLAGS="$LDFLAGS $SDL_LIBS ${SAMPLERATE_LIBS:-} ${PNG_LIBS:-} $EMFLAGS -lwebsocket.js" +LDFLAGS="$LDFLAGS $SDL_LIBS ${SAMPLERATE_LIBS:-} ${PNG_LIBS:-} $EMFLAGS -lwebsocket.js -lidbfs.js" AC_CHECK_LIB(m, log) --- a/src/doom/d_main.c +++ b/src/doom/d_main.c @@ -1700,8 +1700,11 @@ if (gameaction != ga_loadgame) { if (autostart || netgame) G_InitNew(startskill, startepisode, startmap); - else - D_StartTitle(); // start up intro loop + else { + D_StartTitle(); + // Browser Games Now, 2026-10-20: open the native menu immediately. + M_StartControlPanel(); + } } D_DoomLoop(); // never returns --- a/src/doom/g_game.c +++ b/src/doom/g_game.c @@ -1482,6 +1482,8 @@ remove(savegame_file); rename(temp_savegame_file, savegame_file); + // Browser Games Now, 2026-10-20: persist native saves after the rename. + EM_ASM({ Module.persistSaves(); }); gameaction = ga_nothing; M_StringCopy(savedescription, "", sizeof(savedescription));