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重新编辑 ]