2009-09-18

JavascriptとCanvasによるファミコンエミュレーター

JSNES: A Javascript NES emulator

JavascriptとCanvasを使ったNES(ファミコン)エミュレーターを実装したと主張している。Chromeならば、パフォーマンスも申し分ない。

にわかに信じられないが、どうやら本物らしい。

もし本当だとしたら、本物のROMを使用しているようなので、合法ではないのであまり深く追求しないが、ソースをみる限り、本当にエミュレーターを実装しているらしい。サイトの説明によると、vNESというエミュレーターを、JavascriptとCanvasを使うように移植したのだとか。

ところで、もし本物だとして、本当に本物のカートリッジからダンプしたROMを使っているのだとして、一体どうやってJavascriptからバイナリファイルを扱うんだろうと思って調べてみた所、どうやら、バイナリファイルではなく、スラッシュ区切りの十進数文字列にしているようだ。なるほど。それなら使える。

まあ、私は将来、クライアントサイドのWebアプリがもっともっと強力になることを信じているので、ファミコンエミュレーターぐらいなら、いずれ出てくるんじゃないかとは思っていたが、こうやって実際に動く例を、この時代に見るとは思わなかった。

技術的な話をすると、問題は音だ。audioは、URLとして渡されたソースを再生することしかできない。完全にクライアントサイドで、強力なWebアプリを作ろうとするならば、例えばPCMを生成して再生させるぐらいのことは、できてほしい。需要さえあれば、規格化されるだろうか。

関連事項として、WebkitがWebGLをネイティブに実装したということもある。3Dの描画を扱うのならば、音の需要も出てくるはずだ。

No comments:

Post a Comment

You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.