PlayLoud!!

Since1997

MAMEのビルドとMAMEのデバッガ

ほとんどの基板はポーズ機能とか無いわけだが、唐突に雷電の基板にポーズ機能をつけたいなと思い立ってしまったり……

基板の逆アセンブルにはMAMEのデバッガを使ってるってのすけさんが教えてくれました!頼りになります、電脳のツボ!流石流石!


が、しかしなぜかデバッグモードで雷電を走らせると落ちまくります。

これで数時間ハマってたのですが、初心に帰って検索してみたらなんと雷電「-debug スイッチを有効にするとクラッシュする。」という既知の不具合報告が……
http://www.e2j.net/bugs/view.php?id=4147
やっぱりちゃんと調べないとダメだよねー。
そのページよく読むと「対策済み」みたいなこと書いてあるんですよね。最新バグフィックスなので自分でコンパイルしろとか……マジですか。MAMEのビルドなんかしたことないよ。


仕方ないので、MAMEのサイトへ。ここはあらゆる記事が充実していて困ったときは片っ端から読んでみるといいことがあるかもしれませんね。
で、ありましたw
top→Developer Docs→Building MAMEにビルドの方法がすごく丁寧に書いてあります。
http://mamedev.org/devwiki/index.php/Building_MAME_using_Microsoft_Visual_Studio_compilers
それと、日本語で解説してくれているサイトもありました。ありがたいですね。
http://www.remus.dti.ne.jp/~grn/mamecompile.html
Visual Studioも持っているんですが、ノートにインストールしようと思ったらどこにディスクがあるのかわからなくなってGCCコンパイルしましたw


途中、コンパイル時間かかるなーとかツイッターでつぶやいていたらのすけさんが「マルチコアなら『make -j4』みたいにするとプロセスが増えて速くなるよー」と教えてくれました。
毎度毎度ありがとうございます!これからもいろいろ教えてもらうために困ったらツイートします!ww
なんか宣伝的なものも載せておきますね!電脳のツボ流石流石!


MAMEデバッグモードは初めて使ったけど実に多機能で便利です。

アセンブルしたコードをテキストファイルとして書き出し、プログラムの実行状況をリアルタイムに監視しつつ、同時に別ウィンドウでメモリの様子も見ることができます。
さらに、コマンドでブレークポイントやウォッチポイントを設定できるので、特定のアドレスに値が書き込まれたら一時停止したり、あるアドレスに到達したときにレジスタの値が条件に一致したら停止したりといったことが簡単にできます。
デバッガのコマンドはここに詳しく載ってます。ありがたやー。
http://mess.redump.net/debugger


で、まあいろいろいじり始めたわけですが、ここからが本番でしたね……w

ボムの表示位置がおかしくなっちゃってます。
続きはまた後ほど。この後は他の方々にも色々と教わってしまいました……ありがたや。