NDS要怎样才能删除游戏本来带的nds金手指怎么用

nds金手指能够修改哪些游戏_百度知道NDS金手指怎么删_百度知道NDS模拟器金手指不想用了怎么关闭或删除_百度知道今天刚买个IDSL,我想问下游戏怎么删?_百度知道【转】不求人!DIY 自己找寻 NDS 游戏金手指密码 - 金手指、硬件、模拟和修改区 - 口袋妖怪网 - PMGBA
后使用快捷导航没有帐号?
只需一步,快速开始
查看: 1780|回复: 6
【转】不求人!DIY 自己找寻 NDS 游戏金手指密码
在线时间15 小时
主题帖子积分
饲育家, 积分 965, 距离下一级还需 35 积分
很多人都喜欢使用金手指密码,无论是为了令游戏难度降低也好,或是希望在某些游戏中的收集品全部齐全也好,或是希望能出现一些游戏中原本不会出现的特殊情况也好(例如 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 么?为何会交换了位置?  由于变量值的存放是由最低位开始、最高位在最后面的,由此例如 0x 存放在档案、  或在记忆体时,位置就会是 04 03 02 01,大家可以用 Windows 自带的【小算盘】,  以 16 进位的模式下,输入 0302,然后切换为 10 进位的话,就会见到该数值是 770 的了。  由于之前在测试中用了不少时间,所以现在被锁定的的数字并不是全满的,为了美观一点,  我们就把数值定为第一次搜寻时,时间全满的值 8)。  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 ,  用 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 作静态修改,  把运算该变量的指令修改,以求达到与锁定记忆体位址方式有相同效果的做法并未提及,  有兴趣者请自行研究。
Everything that has a beginning has an end
在线时间15 小时
主题帖子积分
饲育家, 积分 965, 距离下一级还需 35 积分
不求人!DIY 自己找寻 NDS 游戏金手指密码_2 (ARDS 条件判断式指令)
【 前 言 】在第一篇教程推出后,有朋友反映了一个问题,就是使用过 HasteDS ,发现连系模拟器后,0x 的定址不准确。另外有朋友说所用的烧录卡不支援金手指,只能使用***补丁。有关 HasteDS 定址问题,大家可转用其他习惯使用的搜寻工具来搜寻***码,而***补丁是以工具对修改后的 Rom 比较原 Rom 后产生的文件,使用者只需以补丁工具使用该***补丁文件写入到原 Rom 即可,本文(或往后的续篇)将不会详述及示范补丁工具的使用,只示范修改 Rom 的例子,有关补丁工具的使用,请大家在网上查找一下,很容易就能找到补丁工具及使用说明的了。 另外有朋友向本人介绍一个搜寻工具 Renegade v1.67,优点 - 是支援 No$gba 2.4a、搜寻选项及过滤条件很多,与及可以在该工具使用金手指码...缺点 - (个人认为)是界面复杂及太多与 NDS 无关的功能选项。有兴趣使用的朋友可在网上找来测试使用。本来前天就已写好这第二篇的内容,示范把***码找出后转为 DipStar 金手指,并配合 Slot-2 卡使用,及验证 HasteDS 定址的准确性,当完成原稿及截图后,在版区看到有另外的热心朋友曾发布修改教程,用的是 GM8,从回帖中也看到此***修改工具,颇受大家欢迎,也很多朋友长期使用这个,而且,似乎更多朋友对静态修改感兴趣,因此,本人把已写好的原稿及截取的图片删除,重新编写本篇内容,题材也改变了,不进行验证 HasteDS 定址的准确性了。(反正验证后的结果就是确定间中会出现定址错误),DipStar 范例也不要了,有使用支援 DipStar 烧录卡的玩家,应该早已懂得使用的了。【 Action Replay DS 条 件 判 断 式 指 令 】依照第一篇教程的范例,相信学习者都已懂得自己找寻***码了,但若果只能单调地反覆不停对记忆体写入数据,显然不足以应付不同情况下的使用需要,幸好 ARDS 提供条件判断式指令,这就令 ARDS 金手指的应用范围大大提高,现在就先来介绍一些常用的条件判断式指令。9XXXXXXX ZZZZYYYY ( 等 于 )这是条件断判式指令中最常用的一个,检查 0XXXXXXX 位址上的值是否等如 YYYY。使用场合:1.依按键值来启动***码 (这里的 \"***码\" 狭义解作 \"直接写入记忆体\" 的金手指码)。2.当变量达到指定的值才启动***码。使用例子:001BB  检查使用者是否按下 Select + L + Up 键      000000FF  把 1 Byte 数据 0xFF 写入到位址 0x 上     D00000  结束指令原型:if YYYY == (not(ZZZZ) & [XXXXXXXX]) 指令意思:假如 2 byte 数据 YYYY 等如 not(ZZZZ) & XXXXXXXX 位址上的 2 byte 数据。== 是 \"等如\" 的意思,not 及 & 是运算符,& 也等同 AND,用法如下:Not 参数只有一个,用来把真假值反转,Not(1) = 0Not(0) = 1AND 的参数有两个,要两个都为真值结果才会是真,否则就是假。1 AND 1 = 11 AND 0 = 00 AND 1 = 00 AND 0 = 0就以上面的例子 001BB 来详细说明,4000130 即是位址 0x ,也就是键盘I/O影射区的位址,0x01BB 是 Select + L + Up 的按键值。NOT(0000) = FFFF (不要误认为应该是 1111 ,因为 0x0000 是 16 bit,二进位是 0000,反转成为 1111,转换为十进位是 65535,转换为十六进位就是 FFFF。)FFFF 的二进位表示式是 111101BB 的二进位表示式是 1011把 FFFF 及 01BB 进行 AND 运算,如下:1111 (0xFFFF)BB) ------------------------- BB)如果执行指令 001BB 时,使用者是按了 Select + L + Up 键的话,代入数值 01BB == (not(0000) & 01BB) 就合乎了 YYYY == (not(ZZZZ) & [XXXXXXXX]) 的比较条件,所以能执行下面其他的指令。好像挺复杂般,其实不然,大家只要把 9XXXXXXX ZZZZYYYY 理解成这样:( 在 ZZZZ 是 0000 的情况下 )假如 2 byte 数据 YYYY == (等于) 位址 0XXXXXXX 上的 2 byte 数据,就执行其下的指令。这样去理解是否立即简单了许多呢?本例子中的 D00000 用作条件判断式指令下的结束,作用是载入先前的执行状态 (如果不存在,就保持在上面指令执行时的状态),很多朋友都曾见过这类金手指,都是以这个或是 D00000 作结束的,由于作出比较时,得到的结果会影响状态位,所以当一个比较条件下其他的指令中,又包含条件判断指令,这时候状态位对指令的执行权会作出影响,所以就要决定因应状态位的应用,而决定使用不同的结束指令。D00000 它的其中一个作用是结束时清空状态位、偏移值及 C 码设定。与 C 码配合的话 Dx 的值作为设置,挺复杂的说,由于不常用,故对于 C 码及 Dx 的配合,就不予以解说了。好像又越说越乱了,大家除非像编程般的运用他们,才要彻底的理解他们的分别及作用,否则一般使用上,习惯以 D00000 作为条件判断式指令下的结束就可以了。*** 下面的指令不再以上面那种麻烦的方式作详述,只以最简单、最易理解的方式去说明。***3XXXXXXX YYYYYYYY ( 大 于 )假如 4 byte 数据 YYYYYYYY & (大于) 位址 0XXXXXXX 上的 4 byte 数据4XXXXXXX YYYYYYYY ( 小 于 )假如 4 byte 数据 YYYYYYYY & (小于) 位址 0XXXXXXX 上的 4 byte 数据5XXXXXXX YYYYYYYY ( 等 于 )假如 4 byte 数据 YYYYYYYY == (等于) 位址 0XXXXXXX 上的 4 byte 数据6XXXXXXX YYYYYYYY ( 不 等 于 )假如 4 byte 数据 YYYYYYYY != (不等于) 位址 0XXXXXXX 上的 4 byte 数据7XXXXXXX ZZZZYYYY ( 大 于 )( 在 ZZZZ 是 0000 的情况下 )假如 2 byte 数据 YYYY & (大于) 位址 0XXXXXXX 上的 2 byte 数据8XXXXXXX ZZZZYYYY ( 小 于 )( 在 ZZZZ 是 0000 的情况下 )假如 2 byte 数据 YYYY & (小于) 位址 0XXXXXXX 上的 2 byte 数据AXXXXXXX ZZZZYYYY ( 不 等 于 )( 在 ZZZZ 是 0000 的情况下 )假如 2 byte 数据 YYYY != (不等于) 位址 0XXXXXXX 上的 2 byte 数据BXXXXXXX
( 读取记忆体数据设为偏移值 )把位址 0x0XXXXXXX 上的 4 byte 数据,读取成为偏移值这个是很实用的一个指令,希望大家能了解及活用它。使用场合:1.如果在游戏中要锁定很多变量值(例如道具、收集品)时,用这个很方便的。2.如果同一变量的位置不固定时,先找出变化位址的存放点,用 B 码读取成为偏移值,  (其实个人认为这个称为变量基址才更贴切,以这个变量基址 + 偏移值访问不同的变量)  就不怕下次再玩时,***码失效的了。使用例子:(以 Mario Kart DS 的***功能 \"按 X 获得道具 &雷暴&\" 来说明)Press X for Thunderbolt 923d629a   读取 (被游戏程序处理过的)按键值来作判断000000  假如位址 0x0217BC2C 上的值不等于 0x  b217bc2c   在位址 0x0217BC2C 读取 4 byte 数据作为偏移值 (变量基址)000008  到变量基址 + 0x4C 偏移值的位址,写入 1 byte 数据 0x08 00001  到变量基址 + 0x54 偏移值的位址,写入 1 byte 数据 0x01 d00000  结束 补充:1.在本例子的游戏中查看位址 0x023d629a 的值,当按下不同的键,这个值就会改变的。2.使用 B 码后,如未遇到结束指令,其后的 \"直接写入记忆体指令\" ,  都会一直以变量基址 + 偏移来定址及写入的。 EXXXXXXX YYYYYYYY从现时的指令位置 + 8 的位址,读取 YYYYYYYY byte 数据到 0x0XXXXXXX + 偏移值的位址上。FXXXXXXX YYYYYYYY从偏移值的位址,读取 YYYYYYYY byte 数据复制到位址 0x0XXXXXXX。使用 F 码前,需要先使用 D3、DC 或 B 码以取得偏移值。D3000000 ZZZZZZZZ  设 4 byte 数据 ZZZZZZZZ 为偏移值。DC000000 ZZZZZZZZ  偏移值 = 偏移值 + ZZZZZZZZ (offset = offset + ZZZZZZZZ)活用上面的条件判断式指令,一般的应用上来说,是够用有余的了,就说到这里好了。
Everything that has a beginning has an end
在线时间15 小时
主题帖子积分
饲育家, 积分 965, 距离下一级还需 35 积分
那个HasteDS本来是繁体的,我稍微简体化了一下下载地址:
Everything that has a beginning has an end
在线时间0 小时
主题帖子积分
我是废柴……
暴走族, 积分 4522, 距离下一级还需 478 积分
很好很强大……
那啥您真的考古……
这帖子是06/07年左右……
还有我还没证实过……
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/2d6waxf.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/2m66dcj.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/jgodv4.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/15hcvwx.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/2ues5sm.gif');}" onmousewheel="return imgzoom(this);" alt="" />
在线时间15 小时
主题帖子积分
饲育家, 积分 965, 距离下一级还需 35 积分
是07年的帖子,考古了就锁了吧……
Everything that has a beginning has an end
在线时间0 小时
主题帖子积分
我是废柴……
暴走族, 积分 4522, 距离下一级还需 478 积分
其实用UE等工具也能找金……
screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/2d6waxf.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/2m66dcj.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/jgodv4.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/15hcvwx.gif');}" onmousewheel="return imgzoom(this);" alt="" />screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized= this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {} else {window.open('/2ues5sm.gif');}" onmousewheel="return imgzoom(this);" alt="" />
在线时间0 小时
主题帖子积分
纯白之心, 积分 0, 距离下一级还需 20 积分
谢谢楼主,不过看晕了~~
Powered by

参考资料

 

随机推荐