© 1997-2009 Arthur Langereis
A long time ago in 1997 I wrote GrayBox, a NES emulator for classic Mac OS. Somehwere in 2002 I ported the code from PowerPC assembly to Javascript as an exercise. The only usable browser in town was IE 6 or 5.5 or some such and just interpreting the instructions yielded 2 seconds per frame, or 0.5 fps. Obviously, this wasn't going to be of much use for a long time. Never mind figuring out how to render graphics, let alone sound. HA!
So here we are again, 7 years later. I did a quick clean up of the code to get the code and markup a bit more in the modern era and added graphics rendering to Canvas using the new HTML5 direct pixel access features. In the WebKit nightlies it runs at 60+ fps with basic rendering enabled on my machine.
There are currently still bugs in the code that I'll have to look at and the line renderer and other parts are not implemented yet. With data urls and some creativity I can even imagine dynamic sound being very possible. The whole rendering process needs to be changed as well, this is more a proof of concept now. If anyone is interested in helping out, please let me know and I'll set up some kind of repository. I'll expand on this page later on.
Requirements: Firefox 3.1, Safari 4 or WebKit, Chrome(?), Opera 10(?)