2013-01-27 | 来源:互联网 | 小编:admin | 人看过
作者:疾风之狼 出处 http://bbs.emu999.net/thread-101156-1-1.html
应人要求,就写写关于MAME DEBUG版用法吧。
(1)如何加载ROM
先说说如何加载ROM吧
以MAME 0.148 DEBUG版为例:
1.从MAME官网下载MAME 0.148 DEBUG,MAME官网下载页面:http://mamedev.org/release.html
注:MAME官网的MAME是命令行程式,没有GUI。
2.下载完后双击mame0148b_debug.exe安装(也可自行用7zip解压MAME 0.148 DEBUG到任一目录),点击"开始"->"运行",输入CMD后回车进入命令提示符窗口;
3.进入MAME 0.148 DEBUG版所在目录,懂DOS命令者应该知道如何进入MAME 0.148 DEBUG版所在目录吧,不懂的跟我来,例如我把MAME 0.148 DEBUG解压到D:\mame0148b_debug,那么输入:
d:回车
cd mame0148b_debug回车
如图1:
4.输入mamed -createconfig创建mame.ini配置文件,用记事本之类工具打开mame.ini,把WINDOWS VIDEO OPTIONS下面的window选项设为1,不然会以全屏方式运行游戏,然后保存,如图2:
5.把ROM放在mame0148b_debug目录下ROMS目录里,当然你也可以不放在ROMS目录下,改放在其他目录,然后在mame.ini配置文件里CORE SEARCH PATH OPTIONS下rompath选项指定你的ROM目录存放路径;
6.输入"mamed rom档名称"(不包含扩展名)回车即可运行游戏(例如:你要载入龙王战士日版rom,输入mamed kodj回车)。
(2)如何呼出/隐藏调试窗口
1.用记事本之类工具打开mame.ini,把CORE DEBUGGING OPTIONS下面的debug选项设为1,不然没法呼出调试窗口,然后保存,如图3:
2.以龙王战士日版为例,在命令提示下输入mamed kodj回车载入龙王战士日版ROM,当载入ROMS后模拟器会自动弹出调试器,如图4:
3.按F12隐藏调试窗口继续运行游戏,要呼出调试窗口就按“~”键。
(3)如何下读/写内存监视点以及程式地址断点
先说说如何下读/写内存监视点吧
监视点命令格式:wp <address>,<length>,<type>
<address>是地址
<length>是数据长度,长度必须用十六进制表示
<type>是监视点类型,r是读,w是写,rw是读写
例子:
例如对ff8569地址下写监视点,数据长度是1个字节
wp ff8569,1,w
例如对ff2235地址下读监视点,数据长度是2个字节
wp ff2235,2,r
以龙王战士日版为例:
1.我们知道1P生命数地址是FF125D,那么就对FF125D地址下写断点,出现watchpoint 1 set说明监视点设置成功,如图5、图6:
2.按F12继续运行游戏,当死一命时就发生中断,模拟器自动弹出调试窗口,黄色条停在010BA4 addq.b #2,($6,A0),看到前面010BA0 subq.b #1,($3,A0)么?那就是减命指令,后面嘛...你们懂的,我也不说了。如图7:
接下来说说程式地址断点
命令格式:bp <address>
例如对000488汇编指令地址下断点
bp 000488
当程式执行到000488地址时就自动中断
更多命令请打help命令查看,要得到某命令说明例如wp命令就打help wp或help wpset查看
有错误请指正。
补充一些命令:
"wpclear" 清除所有监视点
"wpenabld 数字" 开启监视点
"wpdisabld 数字" 关闭监视点
"wplist" 显示所有监视点
"bpclear" 清除所有断点
"bpenabld 数字" 开启断点
"bpdisabld 数字" 关闭断点
"bplist" 显示所有断点