主题 : 【分享】【原创】DC金手指探秘
gxb
级别: 见习斑竹
UID: 12457
精华: 9
发帖: 788
威望: 38 星
金钱: 137621 浮游币
贡献值: 1477 点
好评度: 5111 点
人气: 14 点
在线时间: 870(时)
注册时间: 2004-10-02
最后登录: 2024-04-19
楼主  发表于: 2007-07-08 22:37

【分享】【原创】DC金手指探秘

管理提醒: 本帖被 YZB 执行提前操作(2009-06-17)
DC金手指探秘
作者:GXB
===================================
1.前言
最近WII上面的《生化危机~安布雷拉历代记》即将发售了,虽然我没有WII,却也看得眼馋,只好拿自己手头有的生化危机系列解馋。最近正好在玩DC,就想把DC上的《生化危机~维罗尼卡》打穿,但是我又比较懒,想用金手指改个子弹无限,在网上找了一圈,并没有发现日版的金手指。我有些泄气,但想到DC已经可以用电脑来模拟,就想为什么不用电脑模拟器配合最新版的EMUCHEAT来找金手指呢?于是我在网上搜索了半天,找了点资料,最后,终于让我找到了解决的办法,啦啦啦~~~

====================================

2.DC金手指种类
DC上的金手指一共有4个,分别是GameShark、XPlode、ActionReplay和CodeBreaker。其中,XPlode和CodeBreaker只能修改正版的GD游戏,盗版游戏当然就用不了了。而GameShark和ActionReplay其实同一家的,区别是GameShark是欧版,而ActionReplay是日版(如果我没记错的话),这二者都可以用来修改D版游戏,不过,我在这里推荐使用GameShark,因为这个金手指被破解了某些功能!
====================================
3.DC金手指码类型
以下我所叙述的都是RAW码。Xploder 和 Codebreaker使用RAW码,但是要命的是它们不支持D版游戏! Gameshark使用的金手指码的第一行(地址码)是加密的,而第二行密码则是明码(未加密)。DC的金手指码是两行一组,32位的,也就说,一组金手指码需要8位来确定修改地址,8位来确定修改属性。2^32= FFFFFFFF ( hex). 举个列子来说,例如 XXYYYYYY ZZZZZZZZ,如果这个是RAW码的话,那么XXYYYYYY是地址码,而ZZZZZZZZ是用来修改地址的属性的。
小知识补充:金手指厂商加密金手指码的行为并不奇怪,这样可以防止自己辛苦找出的密码被其它厂商轻松“搬运”,例如我们常见的PS2上的AR码就是一种加密码。当然,既然可以加密,就自然可以解密。网上有很多PS2的各种金手指码互转软件。DC上的Codebreaker 和Xploder 虽然都使用RAW码,但是都内建解码程序,可以使用gameshark的加密码。有兴趣的读者可以进一步去研究研究gameshark密码加密的算法。
====================
金手指码类型和说明
00xxxxxx
000000vv   
将8bit (1个字节)的值“vv”写入内存地址8cxxxxxx。 注意这个值是锁定的。
----------------------------------
01xxxxxx
0000vvvv    将16bit (2个字节) 的值“vvvv”写入内存地址8cxxxxxx。 注意这个值是锁定的。

----------------------------------
02xxxxxx
vvvvvvvv    将32bit(4个字节) 的值"vvvvvvvv" 写入内存地址8cxxxxxx。 注意这个值是锁定的。
----------------------------------
0300nnnn
aaaaaaaa    批量写入码。 nn 表示接下来写入几组32 bit。 aaaaaaaa 是写入的地址。Aaaaaaaa下面的几行数据表明写入地址的值。例如:
03000004
8c012000
11111111
22222222
33333333
44444444
这几行的密码的效果相当给4行地址写入值:从地址8c012000开始的值分别如下:
8c012000 = 11111111
8c012004 = 22222222
8c012008 = 33333333
8c01200c = 44444444
----------------------------
030100vv
aaaaaaaa    增加码。 把8bit的值“vv”加到地址aaaaaaaa上。
---------------------------
030200vv
aaaaaaaa    减少码。从地址aaaaaaaa减去8bit的值“vv”。
---------------------------
0303vvvv
aaaaaaaa    增加码。 把16bit的值“vvvv”加到地址aaaaaaaa上。
---------------------------
0304vvvv
aaaaaaaa    减少码。从地址aaaaaaaa减去16bit的值“vvvv”。
---------------------------
03050000
aaaaaaaa
vvvvvvvv    增加码。 把32bit的值“vvvvvvvv”加到地址aaaaaaaa上。
注意这种密码需要3行,如果你是在条件码中使用的话需要增加1个条件地址0exxxxxx (不是0dxxxxxx) 。
-----------------------------
03060000
aaaaaaaa
vvvvvvvv    减少码。从地址aaaaaaaa减去32bit的值“vvvvvvvv”。
注意这种密码需要3行,如果你是在条件码中使用的话需要增加1个条件地址0exxxxxx (不是0dxxxxxx) 。
-----------------------------
04xxxxxx
rrrrssss
vvvvvvvv    重复/填充码。 把32bit的值“vvvvvvvv”写入到地址8Cxxxxxx。重复写入rrrr 次,每次写入的地址跳跃ssss (事实上是ssss x 4,因为是32位码)。 这个相当于PS上以前的那种中文批量写入码。举例:
04007a30
00030001
12345678
效果是:
8c007a30 = 12345678
8c007a34 = 12345678
8c007a38 = 12345678
-------------------------------------
05xxxxxx
dddddddd
nnnnnnnn    复制字节码。把字节nnnnnnnn 从地址8cxxxxxx复制到地址。这个操作是锁定的。(这个码我也不是很清楚,原文是“Copy nnnnnnnn bytes from the address 8cxxxxxx to the address dddddddd”)
---------------------------------------
071000XX    改变解码方式
--------------------------------------
0b0xxxxx    延迟xxxxx个循环后写入码。默认是1000(0x3e7)个循环。
--------------------------------------
0cxxxxxx
vvvvvvvv    如果地址8Cxxxxxx 的值等于“vvvvvvvv”,则执行所有的金手指码,否则不执行。在某些需要游戏载入后再修改的游戏中很实用。
--------------------------------------
0dxxxxxx
0000vvvv    如果地址8Cxxxxxx 的值等于“vvvvvvvv”,则执行下一行金手指码。只能和00、01和02型密码配合使用。要想和其它码配合使用的话必须使用0e码.
--------------------------------------
0dxxxxxx
0001vvvv    如果地址8Cxxxxxx 的值不等于“vvvvvvvv”, 则执行下一行金手指码。只能和00、01和02型密码配合使用。要想和其它码配合使用的话必须使用0e码.
-----------------------------------------
0dxxxxxx
0002vvvv    如果地址8Cxxxxxx 的值小于“vvvv” (unsigned),则执行下一行金手指码。只能和00、01和02型密码配合使用。要想和其它码配合使用的话必须使用0e码.
-----------------------------------------
0dxxxxxx
0003vvvv    如果地址8Cxxxxxx 的值大于“vvvv” (unsigned),则执行下一行金手指码。只能和00、01和02型密码配合使用。要想和其它码配合使用的话必须使用0e码.
-----------------------------------------
ennvvvv
00aaaaaa    如果8caaaaaa的值等于“vvvv”,则执行下面nnnn行密码。举例:
0e04abcd
00012000
02300040
ffffffff
02300050
eeeeeeee
如果地址8c012000==abcd, 执行接下来的4行密码。 效果相当于两行"02xxxxxx" 码: "02300040=ffffffff" 和 "02300050=eeeeeeee"。
------------------------------
0ennvvvv
01aaaaaa    如果8caaaaaa的值不等于“vvvv”,则执行下面nnnn行密码。
-------------------------------
0ennvvvv
02aaaaaa    如果8caaaaaa的值小于“vvvv” (unsigned),则执行下面nnnn行密码。
------------------------------- 
0ennvvvv
03aaaaaa    如果8caaaaaa的值大于“vvvv” (unsigned),则执行下面nnnn行密码。
-------------------------------
0F-XXXXXX
0000YYYY    16-Bit立即写入一次。(激活码)
====================================
4.DC金手指码的来源
前面已经说过,我们D版玩家能够使用的金手指只能是GameShark和ActionReplay,但是网上说这2个金手指使用加密的金手指,只能来源金手指生产厂商,而RAW码虽然可以通过模拟器来获得,但是无法用于GameShark和ActionReplay。事实是这样码?NO!其实我们大家使用的GameShark是被破解的,可以直接支持RAW码,只是大家一直不知道。这样,我们就可以使用电脑上的模拟器来找寻DC游戏的金手指码了。当然,前提是模拟器可以运行你要修改的游戏。大家可以使用nullDC配合最新版(老版本不支持DC模拟器)的EMUCHEAT来寻找金手指,然后再转换成RAW码即可在DC主机上使用了。据说CHANKAST有个非官方版本也可以支持修改,大家可以去试试。至于用EMUCHEAT寻找金手指的方法,大家就自己到网上找找吧,很简单。这里我就举个把CHT格式金手指改成DC用RAW的简单的例子。《生化危机~维罗尼卡~完全版》日版的CHT文件中有:
[克莱尔第一格道具类型]
霰弹枪=219BD6,4
[克莱尔第一格道具数量无限]
ON=219BD7,FF
把这两行改成RAW码就是:00219BD6 00000004;00219BD7 000000FF。
当然,你也可以使用01码,也就是01219BD6 0000FF04。
以上密码本人在DC上已经测试成功,大家也来试试吧。
=====================================
5.感谢
本文参考了国外的“The Secrets of Professional GameShark(tm) Hacking”一文,在此表示感谢。

最后上传一个已经有大量DC游戏CHT格式的压缩包给大家。
[ 此贴被gxb在2007-07-08 22:59重新编辑 ]
描述:里面有很多游戏的金手指
附件: Dc.rar (74 K) 下载次数:632
本帖最近评分记录:
  • 金钱:    +500   (操作人:eva-)   优秀文章
  • 级别: 模拟新血
    UID: 40519
    精华: 0
    发帖: 6
    威望: 0 星
    金钱: 2628 浮游币
    贡献值: 0 点
    好评度: 3 点
    人气: 0 点
    在线时间: 2(时)
    注册时间: 2005-07-02
    最后登录: 2007-07-27
    沙发  发表于: 2007-07-27 13:16

    引用
    引用第5楼dask于2007-07-09 20:48发表的  :
    补充几点:
    1.CB有破解版本,可以运行D版,
    2.加密格式同样有转换器,转换器有两个,一个是日本人做的,一个是老外做的,同样是能以得到....
    3.模拟器配合EC可以做码,找到码后,同时可以查看内存..
    4.DC上没有好用的反编译软件,对制作动态地址的游戏的码,EC是没办法做的...
    .......

    好久不回这里了..
    我来回复一下..
    新EC是支持动态地址搜索并有效制作锁定的..