欢迎来到 电玩999 电玩网

您当前的位置:电玩网>电玩资讯>新手教学>[原创] GB游戏简单修改教程

热点资讯

更多

[原创] GB游戏简单修改教程

2008-11-28  |  来源:互联网  |  小编:疾风之狼  |   人看过  

本文教大家如何修改GB游戏,偶以GB《忍者龙剑传》日版为例,修改目标是命不减

准备工具:调试器BGB,Z80指令集资料,WINHEX或UE等十六进制编辑工具,纸笔

先找到GB《忍者龙剑传》日版命数存放地址,偶找到了,命数地址是:C09C

原创文章出处 http://bbs.emu999.net/thread-39192-1-1.html
开始罗

(1)打开BGB模拟器,如图1:
  

(2)在BGB模拟器窗口中右键点击,在弹出菜单中选择“Load rom...”载入《忍者龙剑传》的ROM,如图2、图3:
 

(3)进入游戏后,看到主角命数是2,如图4:右键点击在弹出菜单中选择“pause”暂停游戏
  

(4)在模拟器窗口中按右键,在弹出菜单中选择“other”>“debug mode enabled”,开启debug模式,再在菜单中选择“other”>“debugger”,如图5:
 
(5)解除暂停,弹出如图6窗口:

(6)接下来设置断点,在图6窗口中选择“Debug”>“access breakpoints”,弹出如图7窗口:
 
偶说明一下access breakpoints窗口中各项作用:
addr range左边方框是输入地址,value左边方框是输入数值,on read是读取,on write是写入

Add是添加断点,Delete是删除断点,Replace是用修改已经设置的断点地址和数值,修改断点方法:先选中已经设置好的断点,再在下方addr range和value方框内输入你要修正的地址和数值,再点击Replace OK!

Disable是关闭断点,Enable是激活断点

(7)偶知道忍者龙剑传主角的生命地址是C09C,命数是2,偶在addr range方框输入C09C,value方框输入01,并在on write选项前打勾,再点Add完成断点设置,如图8:

(8)之后回到游戏中死掉一命后,模拟器会自动中断停在ROM0:131D EA 9C C0这一行,如图9:
 
(9)接下来分析一下:
ROM0:1319 FA 9C C0 ld a,(c09c)->将c09c地址数值载入到累加器a
ROM0:131C 3D       dec a      ->将累加器a的数值减1,结果存入累加器a,将此指令修改成NOP就变成命不减了。
ROM0:131D EA 9C C0 ld (c09c),a->将累加器a的数值载入到c09c地址

如果要想命不减,只要把dec a指令nop掉就OK了。

记下FA 9C C0 3D EA 9C C0,备用。

(10)选中ROM0:131C 3D       dec a这一行右键点击,在弹出菜单中选择“Modify code”,如图10:
 
(11)在弹出窗口中方框输入nop,再点OK退出,指令修改完毕。如图11:


(12)ROM0:131C这一行指令发生变化,dec a变成nop,3D变成00,如图12:

(13)解除断点,回到游戏中多死几次看看效果,是否命数不减了.....呵呵,如图13:

(14)命数不减修改成功了。接下来打开WINHEX加载GB《忍者龙剑传》ROM,还记得之前抄下数据么?查找FA 9C C0 3D EA 9C C0,找到后把3D修改00,保存退出WINHEX,完成。

顺便说一下Z80的NOP指令机械码是00。

教程至此完成。

BY 疾风之狼

2008.11.28

分享吧~提高逼格:
分享代码网站注册去

文章评论


温馨提示:抵制不良游戏 拒绝盗版游戏 注意自我保护 谨防受骗上当 适度游戏益脑 沉边游戏伤身 合理安排时间 享受健康生活

游戏作品版权归原作者享有,如无意之中侵犯了您的版权,请您按照《版权保护投诉指引》来信告知,本网站将应您的要求删除。