JavaScript 製ファミコンエミュレータを公開しました
公開しました(過去系)
Demo
Screenshot
作ろうと思ったきっかけ
コンピュータの仕組みについて知りたいなら NES エミュ作るのが手っ取り早いと、 優秀な人が強い事を言ってて、僕もコンピュータの仕組みについて知りたかったので、 実装しようと思いました。
まず読んだ本
コンピュータシステムの理論と実装 ―モダンなコンピュータの作り方
CPUやメモリの仕組みを大まかに知ることができる
OSの仕組みやアセンブラの基本がわかる
自作エミュレータで学ぶx86アーキテクチャ コンピュータが動く仕組みを徹底理解!
こちらもアセンブラに慣れるために読んだ
バイナリに慣れるために読んだ
コンピュータの仕組みについて何も知識がなかったので、上記の本を読んで勉強しました
参考にしたサイト
NES on FPGA +そんなベタなファミコンはイヤだ!+
実装してみての感想
OS自作系の知識を応用して、CPUの実装までは容易にできる。その後 PPU APU等の 描画や音楽周りになってくると、ドキュメントを読んでも理解できないことが多かった。
ドキュメントを読んでも実装のイメージがまったく湧かなかったので、 とにかく他人が既に実装したコードを読み漁った。 人によって実装内容が異なり、また実装によって動くROM動かないROMが異なるので、 何を正にすればいいのか戸惑った。
スライド
JavaScript の勉強会で発表した内容です。
www.slideshare.net