本帖最后由 月不黠 于 2019-4-27 02:47 编辑
需要一些工具,如下: 1.带有debug和HEX editor的模拟器:上网挺多这类模拟器的,搜搜就能下载到。本次教程使用gens_r57shell_mod_r665模拟器为例。 2.十六进制编辑器:UltraEdit32或者CrystalTile2 。本次教程使用CrystalTile2为例。 3.68K指令集和教程法:主要是查看debug后指令的大概意思。如果你想深究MD hack,想让hack变得更加有灵活性,建议是学习这些。 4.干净的rom:备份一下总会有好处的。 5.反防盗版补丁:由于一些游戏修改完后会因为防盗版系统,会让模拟器进行不了游戏,只要打补丁就可避免防盗版系统。(本人纯属YY) 6.创建记事本:用来记搜到的地址和功能的。
用实战来示范: 目的:修改飞鹰的【炎杀黑龙波】不消耗灵力。
1. 首先找2p灵力的ram地址:打开已经备份的干净rom,点击tools打开 ram search。勾选2bytes和hexadecimal。虽然界面全是英文,但查字典就差不多能用。之后2P选择飞鹰。
从金手指列表上看的话,2P的灵力地址是90B8。这次就用RAM搜搜看这个地址。(你也可以让1P选择飞鹰,那样的话1P的地址也会不一样。)
选完人物之后点击RAM search的reset(重置)。我们先想一个思路,数据表示为0的话是不是说明没了?这么说游戏一开始灵力的是有数据的,用着用着变为0。 所以我们勾选less than(小于) 和 previous(前置)。这样刚得到的数据会比先前的会小,能符合刚才的思路。
让飞鹰消耗灵气,每次消耗后点击 search。如图地址会从36864一直减少。之后会得到以下的数据,如果没找到的话再点击reset 重新找。你会看到90B8 的地址,这说明你成功找到了。你可再消耗或者加灵气来验证地址找没找对。
之后排除其他的地址:不消耗灵力的话灵力的地址的数据是不会变。那样可以删掉其他正在变的地址,点击clear change counts(**变化数据)。之后点击变化的地址进行eliminate(删除)。
再用其他方式,如奔跑,跳跃,出拳等方式在不消耗灵力的情况下用刚才clear change counts 的步骤排除掉其他的地址。之后反着来用灵力消耗的方式再进行排除。
之后会剩下两个地址。可以出招仔细观察,虽然两个地址得到的灵力数据一样,但其中一个是减得缓慢,另一个是直接减。这么说减得缓慢的地址是消耗灵力的动画,所以得到00FF90B8的2P灵力地址。之后用记事本记下来这个地址
2. 只得到RAM地址是不够的,我们还得找触发这个ram的rom地址,才能对rom进行修改。所以我们得用到debug工具。 先让2P耗血发出邪王波打到自己身上,之后进行保存(file-save state 快捷键为shift+1)。
打开tools---打开M68K debug,这个工具可以让指定的地址数据产生变化时,让游戏停止而得到指令和rom的地址。这些得到的指令得在68K指令集里查看才能明白其意思。其实还有其他功能,但掌握的还不太熟练。 点击ADD输入刚才的地址,勾选enable(激活)和write(写)。由于寻找刚才的地址00FF90B8使用2bytes找的,得到的数据是00DF,严格的来讲的话908B的数值是没变,变的是90B8后面的值90B9,所以输入为00FF90B9。(前面两个0不写也可以)。点击OK
之后会弹出来指令和地址(0140B0),绿色表示的是让RAM地址数据产生变化的相关ROM地址。 Run是可以让游戏再进行,如果碰到相关的地址又会停止。 我们用刚才得到的地址在十六编辑器查看。
打开tools---点击 hex editor,在hex editor 界面点击region---点击rom。之后点击view----goto---输入 FF0140B0 (前面必须加FF 否则搜不到)。之后会得到这串数据。
这么说04 A8是 subi.l的值,而后面是00 00 50 00 是我们得要修改的值。之后我们在HEX editor里把点击05 改成00。
我们回到游戏进行测试之前,要把debug里的地址的激活给取消掉,X会消失(双击地址就可)。之后再点击run测试看看。(取消X后还可以不停地读取来测试---快捷键为1)如果飞鹰的灵力不掉的话说明你成功了。之后记到记事本并注释,以后方便查询。
3. 打开十六进制编辑器CrystalTile2,打开游戏的rom,ctrl+F进行搜索,输入00 00 50 00,不停的查找下一个找到0140B0的地址为止。(更好的方法是把0140B0的地址的一串数据复制后再找,这样更快)。找到后把05改为00,点击保存。
4. 打开反防盗版软件,打开修改的rom,点击edit—write rom,点击edit----fix checksum。两次弹出来小窗口后关闭。
之后用模拟器打开游戏进行测试,成功了说明修改成功了。
也可以试下:不眩晕和阵的大招旋转后不眩晕的修改。 以下仅供参考: 不眩晕RAM地址:FF907F 不眩晕rom地址:01F42F 7E→10 阵的大招眩晕rom地址:01A291 84→85
Hack游戏最重要的是思路,比如作者在在这个环节如何用数据来表达的?如果知道68K的指令和原理的话能省去不停地gaishuzhi的时间。
工具.rar
(152 Bytes, 下载次数: 41)
|