NES emulator implementation in Go language / Go言語によるファミコンエミュレーター実装
Run gones
$ make build
$ ./bin/gones
Run test
$ make test
Hello World Rom is a sample rom distributed here.
- Romファイルからプログラム部とキャラクター部に分けて読み込む
- Romをメモリ上にロードして命令セット部分をとりだすfetchの実装
- fetchしたcodeをdecodeしInstructionに変換する仕組み
- Hello World Romを10cycle読んで命令を実行
- Hello World Romを20cycle読んで命令を実行
- Hello World Romの動作に必要な命令セットの実装する
- 画面描画ライブラリ(go-sdl2)導入
- sdl2で画面描画する: https://github.com/veandco/go-sdl2
- ebitengineは画面の更新タイミングの制御のやりかたがよくわからなかったので一旦諦め
- PPU実装
- Hello world ROM実行
- 背景色表示
- Bus実装
- ジョイパッド実装
- nestest.nesの動作に必要なCPUのopecodesを追加実装
