 +  int mount_default = 1;
 +  nacl_io_log("SDL: ProcessArgs %d\n", g_argc);
 +
-+  umount("/");
++  // This could fail if the sdl_mount_http attributes
++  // above created a mount on "/".
++  fprintf(stderr, "SDL: creating memfs on root\n");
++
++  rtn = umount("/");
++  if (rtn != 0)
++    fprintf(stderr, "SDL: umount failed: %s\n", strerror(errno));
++
++  rtn = mount("", "/", "memfs", 0, "");
++  if (rtn != 0)
++    fprintf(stderr, "SDL: mount failed: %s\n", strerror(errno));
++
++  rtn = mkdir("/tmp", S_IRWXU | S_IRWXG);
++  if (rtn != 0)
++    fprintf(stderr, "SDL: mkdir /tmp failed: %s\n", strerror(errno));
++
++  rtn = mkdir("/home", S_IRWXU | S_IRWXG);
++  if (rtn != 0)
++    fprintf(stderr, "SDL: mkdir /home failed: %s\n", strerror(errno));
++
++  rtn = mount("", "/tmp", "html5fs", 0, "type=TEMPORARY");
++  if (rtn != 0)
++    fprintf(stderr, "SDL: mount /tmp failed: %s\n", strerror(errno));
 +
 +  for (i = 0; i < g_argc; i++) {
 +    if (!strcmp(g_argn[i], "ps_stdout")) {

 #endif
diff --git a/src/audio/nacl/SDL_naclaudio.cc b/src/audio/nacl/SDL_naclaudio.cc
new file mode 100644
index 0000000..908a498
--- /dev/null
+++ b/src/audio/nacl/SDL_naclaudio.cc
@@ -0,0 +1,150 @@
+#include "SDL_config.h"
+#include "SDL_naclaudio.h"
+

+  spec->format = AUDIO_S16LSB;
+  spec->channels = 2;
+  spec->samples = _this->hidden->sample_frame_count;
+  return 1;
+}
+
+}  // extern "C"
diff --git a/src/audio/nacl/SDL_naclaudio.h b/src/audio/nacl/SDL_naclaudio.h
new file mode 100644
index 0000000..ab52848
--- /dev/null
+++ b/src/audio/nacl/SDL_naclaudio.h
@@ -0,0 +1,23 @@
+#include "SDL_config.h"
+
+#ifndef _SDL_naclaudio_h
