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

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

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

ダウンロード
pynes-0-0-1.zip

試し方

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

必要なライブラリは

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

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

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

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

キーバーインドは

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

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

python code
  1.     self.keymap1 = {
  2.       K_UP : NES_PAD_UP,
  3.       K_DOWN : NES_PAD_DOWN,
  4.       K_LEFT : NES_PAD_LEFT,
  5.       K_RIGHT : NES_PAD_RIGHT,
  6.       K_KP0 : NES_PAD_START,
  7.       K_KP_ENTER : NES_PAD_SELECT,
  8.       K_KP2 : NES_PAD_B,
  9.       K_KP3 : NES_PAD_A
  10.     }
  11.  

ここです。

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

よもや話

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

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

Related posts:

07.27.08/12am

No comments yet

trackback uri
  • ajax-loading
  • ajax-loading
  • ajax-loading

Leave a Comment

You can use these tags: <code>, <i>, <em>, <strong>, <a>

About

Author:yuin(http://inforno.net/)

文学部文化学科卒という生粋の文系趣味プログラマ。

主にRuby、Javascript、PHP、JAVA,Python,C,Scala,Schemeなどを使っています。今はPythonな感じかもしれない。今後作曲活動なども復活するかもしれない。

Pages