wouldn't a web based emulator be very lagy , you probably could not make an emulator with Javascript, since it is just a language to extend what you can do with web pages, Javascript is not a stand alone programming language. Flash tends to be very memory intensive, I have seen some flash games (like Cafe World) that use more memory than normal computer games like SimCity 4 and others. .
Now Java would be the way to go since Java is a cross platform language , the source code for ZSNES is available , I believe ZSNES is written in C.
Maybe five or ten years ago. Today, Javascript can do pretty much anything; Google showed off their Google Web Toolkit by porting Quake II to JavaScript (including hardware rendering via WebGL).
JavaScript is, after all, a complete programming language running in just-in-time compilers with increasingly more and more APIs to access (canvas tag went a long way).
If you'd like to see some emulators running entirely in JavaScript, I'm aware of two.
JSNES: This is a NES (not SNES) emulator:
http://benfirshman.com/projects/jsnes/JSGB: This is a GameBoy Colour emulator:
http://www.codebase.es/jsgb/Both of these are 100% JavaScript. There is no proper audio support, since JavaScript has no way of playing back procedurally generated audio (it can just play pre-defined clips, hence how the Quake 2 port can have normal audio). JSNES tries to cheat by generating the audio data and then feeding it through a flash proxy to get it to the speakers, but javascript alone can't.
Both of these emulators should run at full speed 60FPS in Chrome (on an i7 920, anyhow), so they're fully playable. I was able to run them on my iPhone, but very slowly. For example, JSGB ran on the iPhone 3GS at about 6FPS, or 10% speed. Painful!