PythonによるNESエミュレータ開発5

もうすぐ引越しです。頑張って部屋を片付けないと・・・

しばらくドタバタすると思し、これ以上作りこむモチベーションもないので、ここまで作ったものをあげておこうと思いました。

ダウンロード

pynes-0-0-1.zip

試し方

インストールはダウンロードしたzipファイルを展開するだけです。

必要なライブラリは

です。 両方とも easy_install psyco 、`easy_install pygame` でインストールできたはずです。

roms/ 以下に最低1つ以上ロムファイルを置いてください。現状、マッパーに対応してませんので、マッパー0のしか動く可能性はありません。現在動作を確認してるのは、前回あげさせていただいた TkShoot くらいです。市販のはほとんど動かないんじゃないでしょうか。

一応参考までにあげておくと、動く可能性があるのはGolf,DonkeyKongなどです。

bin/pynesi.py が起動用スクリプトです。コマンドラインから起動してください。起動したら、romファイルを番号で選択してください。

キーバーインドは

  • 十字キー : カーソル
  • スタート : テンキーの0
  • セレクト : テンキーのEnter
  • A : テンキーの3
  • B : テンキーの2

になってます。キーバーインドを代えたい方は src/pynes/pad.py を適当に書き換えてください。

self.keymap1 = {
  K_UP : NES_PAD_UP,
  K_DOWN : NES_PAD_DOWN,
  K_LEFT : NES_PAD_LEFT,
  K_RIGHT : NES_PAD_RIGHT,
  K_KP0 : NES_PAD_START,
  K_KP_ENTER : NES_PAD_SELECT,
  K_KP2 : NES_PAD_B,
  K_KP3 : NES_PAD_A
}

ここです。

とにかく、めちゃくちゃ遅いので、固まったと思ってもしばらくすると画面がちゃんと切り替わったりします。

よもや話

かなり適当です。前回(PythonによるNESエミュレータ開発4)から変わってません。マッパーっぽいのが用意してありますが、これはダミーです。他のエミュのソースを参考に必要そうな部分に適当にいれただけです。

一応、速度を重視しているものの、わかりやすく書いてるつもりなんで、Pythonが分かっていてかつ、エミュレータの基本的な構造が知りたい人には参考になるかもしれません。

comments powered by Disqus