JSNES Emulador NES escrito en Javascript + HTML5


jsnes

Buscando información sobre Contra, el videojuego de Konami del cual escribí en el anterior post, me encontré con esta verdadera joya, se trata de JSNES, un emulador escrito completamente en Javascript que aprovecha el elemento CANVAS de HTML5 para poder mostrar las imágenes, tales como los sprites, animaciones, efectos, etc.

Pero para generar el sonido dinámicamente se requiere de un codec (mp3 u ogg para html5 audio), y como javascript no puede hacer eso ya que no existe tal códec, se recurrió a Flash utilizando un hack que consiste en hacer que Flash lea el sonido WAV desde un buffer mediante javascript y lo envíe a la tarjeta de sonido, aprovechando que Flash sí puede utilizar sonido crudo. Sin embargo, el habilitar la opción de sonido generado con Flash, ralentiza considerablemente el desempeño de los videojuegos.

JSNES es un port funcional escrito por Ben Firshman () basado en el código del emulador escrito en Java, vNES de Jamie Sanders. Aunque su resolución es pequeña, al parecer luce adecuado para dispositivos móviles que soporten HTML5. El proyecto aún está en sus primeras etapas y al parecer sólo una persona lo está desarrollando, esperemos que más desarrolladores contribuyan y corrijan las deficiencias en cuanto a la velocidad, resolución y sonido.

El código fuente está disponible en Github y está bajo la licencia GPL.