The SNEM port is about 10x and the snes9x port is about 20x slower than the native one.
SNEM port usually get 50~60+ fps on my 7 yrs old laptop (which has an intel T5600 CPU) when running on the nightly firefox. Hand ported JSNES (which is only a NES emulator, not a SNES emulator) got 30~40fps.
snes9x can be compiled by emscripten almost out of the box.
I think you guys did a very nice job.
Still, I wish there is an easy way to pass a video bitmap (a subarray of HEAP32) between the browser thread and a web worker. Currently, emscripten compiled code shares a big ArrayBuffer, which makes it difficult to transfer an array to the browser thread.
I also encontered several bugs of emscripten when porting the emulator. I will submit them to the issue tracker.
Some of them are libsdl related. Emcc also seems to have issues with struct and union defined inside a function.
TJW