19 comments

[ 3.3 ms ] story [ 54.3 ms ] thread
Doesn't seem to work in Firefox.
Er, whoops, it takes about 5+ minutes to load. Seems to work fine.
Why do you say it's an emulator? Looks like a ported game to me. Ported in JS, that is.
Compare it to the original on a GBC or an emulator. It looks and sounds just like it.
Ported is different from emulated though. Ported involves altering the game itself to run on a different platform. Emulation is building a virtual version of the original platform that does "translation" of sorts between the original platform's methods/attributes/etc and the new platform, leaving the game itself unaltered.
Impressive. Any information on the inner workings?
Impressive, but might I suggest using a public domain ROM, instead of exposing yourself to a lawsuit:

http://www.zophar.net/pdroms/gameboy.html

Or just have the user load a rom locally, like I do with my little NES ROM painter[0]. Nintendo strikes down hard on emulation like this. Although I see why he chose DKC, that is one beautiful GBC game.

[0]http://www.mattgreer.org/exercise/1nespaint

I'm getting "Please try using a standards compliant browser." in Safari 5 & Chromium 12.

[edit: fix confirmed]

(comment deleted)
What would be even more interesting is a JIT-based emulator that worked by compiling bytecode into Javascript, then relying on the browser to compile it back into machine code.

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.)

Not a good idea with hand-coded ROMs for CPUs that are in single-digit MHz that use interrupts liberally, it would cause code cache invalidation a lot.

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

"Could not initialize the emulator properly. Please try using a standards compliant browser."

Getting this in Chrome 10.

I think your project needs a little love.

x is A

z is B

shift is Select

return is Start

D-Pad is Joypad

anyone else really sick of posts about "[old game/game system] replicated using HTML5"? make something new and worthwhile rather than pandering to geeks for a change