Aug 22, 2010

[转]【新手入门】不求人!DIY 自己找寻 NDS 游戏金手指密码_1 (基本修改)

原帖地址:http://www.ndsbbs.com/read.php?tid=119029

【新手入门】不求人!DIY 自己找寻 NDS 游戏金手指密码_1 (基本修改)

很多人都喜欢使用金手指密码,无论是为了令游戏难度降低也好,或是希望在某些游戏中的收集品全部齐全也好,或是希望能出现一些游戏中原本不会出现的特殊情况也好(例如 MoonJump),总之就是想透过金手指来获得一些乐趣,虽则有朋友认为玩游戏应该用实力,不该借助作弊码的帮助,有些更说使用金手指会令游戏性降低,怎样也好,对于应否使用金手指,并不是本文的主旨,总之喜欢的就使用,不喜欢的不使用就可以,随各位喜好。

好了!言归正传,开始运用工具来找寻金手指密码 (作弊码)。

使用工具:
1)NDS 模拟器 (例如 DeSmuME / iDeaS / No$gba)
2)HasteDS   (一个用作搜寻作弊码的工具)

模拟器方面由于 DeSmuME 0.6.0 及 No$gba 2.4a 现时对游戏的支援度较高,建议使用此两种模拟器来找寻。HasteDS 原本是一个日文介面的程序,本人已把其繁体中文化,各位可以于本帖提供的连结下载。

【 找 寻 步 骤 】
1.先执行模拟器,并载入游戏,然后才执行 HasteDS。(由于 HasteDS 与模拟器的连系原理是搜寻记忆体中的字串/数据,如果未有载入游戏,视乎使用的模拟器,有可能连系不到,或连系后的记忆体位址是错误的。)

2.HasteDS 的搜寻模式,可分为‘输入值’及‘与旧值作比较’,‘输入参数值’是在游戏中,直接看到的数字,‘与旧值作比较’通常用于能源棒或其他不是数字显示的变量。本例子中,在游戏画面见到时间是 1800,在 HasteDS 中参考过“输入参数格式”后,输入 M1800,就会在下面的列表出现很多合乎搜寻条件之位址,但实在太多,不知哪个才是,回到游戏中待时间被减去一些后,依照看到的数字再次输入搜寻,合乎条件的记录便会减少,几次之后,通常就会只剩下 1 笔或几笔记录,就可以进行作弊码测试。

3.在列表中对作弊码按滑鼠一下,HasteDS 的记忆体检视区会立即跳到该位址行,我们可以对其修改,使用 [ 修改写入记忆体 ] 功能写入位址值及资料值就可以进行修改,然后回到游戏中,看看数字是否成为自己修改的那样;另一个测试方法是把列表中的作弊码,用滑鼠双按,就会自动把作弊码添加到左面的【 检 查 作 弊 码 】区,然后把“自动锁定作弊码”功能选取,回到游戏看看是否数字被锁定不再减少。

4.好了!作弊码找到了,相信很多朋友都希望能在 DS 主机上使用而不是只用于模拟器,那就要进行下面的格式转换,由于现在找到的是 Raw Code,对于 Raw Code 的意义,网上有很多说明,大家只要明白 Raw Code 就是最原始状态的码就成了,既然是最原始,就是未有加密,未有加入不同金手指功能所支援的判断码,因此 Raw Code 只要稍加转换,就能用于所有支援金手指功能的(甚至不支援金手指的)烧录卡上,由于 R4 烧录卡现已支援,现在就简单一点以 R4 作为范例说明。 (转为 R4 支援的 Action Replay DS 格式金手指密码)刚才找到的金手指密码位址是 0x0211BCEE ,0x 是十六进位的意思,如果数值中含有英文字,当然一看就明白,如果全是数字,又没特别注明的话,会很容易混淆的,所以最好用 0x 注明,刚才锁定的数字是 0x0302 ,在记忆体检视区看到的不是 02 03 么?为何会交换了位置?由于变量值的存放是由最低位开始、最高位在最后面的,由此例如 0x01020304 存放在档案、或在记忆体时,位置就会是 04 03 02 01,大家可以用 Windows 自带的【小算盘】,以 16 进位的模式下,输入 0302,然后切换为 10 进位的话,就会见到该数值是 770 的了。由于之前在测试中用了不少时间,所以现在被锁定的的数字并不是全满的,为了美观一点,我们就把数值定为第一次搜寻时,时间全满的值 1800 (0x0708)。
Action Replay DS 金手指密码可分为“条件判断式指令”及“直接写入记忆体指令”,此例子中只需使用简单的“直接写入记忆体指令”就可以,指令格式是:

0XXXXXXX YYYYYYYY  把 4 byte 数据 YYYYYYYY 写入到位址 XXXXXXX 上。
1XXXXXXX 0000YYYY  把 2 byte 数据 YYYY   写入到位址 XXXXXXX 上。
2XXXXXXX 000000YY  把 1 byte 数据 YY    写入到位址 XXXXXXX 上。

为了不会错误地把不想修改的数据也修改覆盖掉,请注意使用适当的使用 0 1 2 作头码,
参照以上格式,刚才找到的作弊码就可以写成 1211BCEE 00000708,用 R4 官网提供的 Cheat Code Editor 加入此密码到金手指数据库 usrcheat.dat 内,然后复制到烧录卡上就可以在游戏中使用此金手指密码。

【 备 注 】
1.有关 HasteDS 的使用,本文只举出一个简单的例子,其他的功能例如‘跳到指定位址’、‘汇出记忆体数据’,和‘与旧值作比较’之搜寻方式,或界面上的其他未提及的设定,这些看界面就已经知道是用来做什么的了,在此就不多说明了,如有需要大家可自行尝试。

2.如想更详细的了解 HasteDS 有关输入参数格式的标准与限制,可参看下载的档案中,内里的 HasteDS_manual.htm。

3.HasteDS 可支援找寻的模拟器,就如 HasteDS 界面上看到的,但实际支援的版本没有注明,本人只试过 DeSmuME 0.6.0 及 No$gba 2.4a 免费版,这些暂时来说的已是最新版本了。

4.本文作为一个入门级的找寻金手指范例,只适合新手看的,对于动态分配记忆体给变量的游戏,即是找到的密码下次再玩就巳经失效,或想依照找到的密码,对游戏 Rom 作静态修改,把运算该变量的指令修改,以求达到与锁定记忆体位址方式有相同效果的做法并未提及,
有兴趣者请自行研究。


下载 HasteDS v1.12 (繁体中文版)
http://www.veevee.net/koch/hack/hasteDS.rar

0 comments:

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Powered by Blogger