Edit: Here's the home page, with a full UI: http://www.grantgalitz.org/gameboy/
The URL linked above now redirects to the homebrew ROM.
Edit: Oops, I overwrote the redirect, sorry. Try http://www.grantgalitz.org/CrazyZone/
[edit: fix confirmed]
A machine-independent, JIT-compiled JS emulator might actually end up being faster than some purely-interpreted native-code emulators. And unlike a purely native JIT emulator, it wouldn't need a compilation component (the browser would do that itself).
Obviously such a thing would be dramatically slower than a native JIT emulator -- but surprisingly few emulators are JIT-based.
(Possible catch: I know for a fact that some Nintendo DS games use small amounts of self-modifying code. This probably is true of previous generations, too.)
Some stats for SML2 running (Audio ON (web audio for mac in about:flags for chrome, mozAudio for Firefox 4), scaling OFF):
Chrome 12: http://i.imgur.com/JjpT5.jpg 27.0% CPU load
Firefox 4: http://i.imgur.com/yEzzw.jpg 68.6% CPU load
Getting this in Chrome 10.
I think your project needs a little love.
z is B
shift is Select
return is Start
D-Pad is Joypad