タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

NESと*プログラム参考に関するmzpのブックマーク (2)

  • inforno � PythonによるNESエミュレータ開発1

    正月だというのにひたすらCPUの命令を実装・・・。ここはひたすら地道な作業が続く。やっぱりこういう単純作業は苦手だ・・・ 実装の際には InfoNES や 6502 Emulation Package のソースコード、そして NES on FPGACPUのページ に大変お世話になりました。特にNES on FPGAのページは非常に分かりやすくまとめられていて助かりました。 実装方針は前にも書いたとおり「できるだけPythonっぽく」。着々とエミュレーターっぽくないソースが出来上がってきています(笑 エミュレータのソースコードというとそれはもう、C言語でマクロ全開、register指定、inline(もしくはstatic)で出力されるコードを極限まで速く、なんて感じですが全く逆です。分かりやすさ優先。とりあえず書いてみて、ダメそうなら諦めるか頑張ってチューニングするか考えよう。 今日までで

  • inforno :: PythonによるNESエミュレータ開発2

    実は既に結構挫折気味。 やっぱりPythonではちょっと厳しいかもしれない。 とりあえず一番ややこしいPPU周りの情報を調べて、ちょろちょろ書き始めたあたりでいったんCPU部分のパフォーマンスを調べてみました。 かなり厳しいものがあります。CPU部分のコードはPython的な書き方で書いてたんですが、これじゃ話にならない。まず、アクセサなんてものはつかっちゃいけないのだ。 以下環境はOS:WinXP,CPU:Athlon64 3000+,Memory:1G,Python2.4です。 CPUのレジスタ関連の実装 NESのCPUである6502のレジスタはPCは16bit、それ以外は8bit。8bitの値なんてものはCならunsigned charで一発なんだけど、Pythonにはそんなものない。足し算したらどんどん大きくなるし、引き算したらどんどん小さくなる。ので 1class Py6502(

  • 1