本帖最后由 fenrir 于 2010-10-30 12:55 编辑
这种东西,自己用CMF也能改的嘛,经验值普通人49000,有天才的39200,也能99级了
FC没用过,我一直用CMF,那个转换关系如下:
这是以前从论坛收藏的帖子,为了自己学习的,你看一下吧,或者自己搜一下的
写在前面:PS的所有代码到PSP上地址全部+0x01000000,至于值部分的长度,有效数字都是b代表的部分,所以见到00bb的长度不要吃惊,当成000000bb就是了
1、直写码
3码、8码、9码,分别是8、16、32bit直写码
A表示地址,b表示数值
所以这样转
1)3码
30AAAAAA 000000bb
转为
0x01AAAAAA 0x000000bb
(注意30变成了01而非00,因为地址要加,上面说过的,下面就不再提示了)
2)8码
80AAAAAA 0000bbbb
转为
0x11AAAAAA 0x0000bbbb
3)9码
90AAAAAA bbbbbbbb
转为
0x21AAAAAA 0xbbbbbbbb
2、压缩码
B码和5码就是压缩码,作为外壳加载在直写码上,其中nnn是总修改条数,cccc是实际间隔(所以有的要换算成eeee),dd是数值递增幅度
先来5码(PS.没有32bit)
1)8bit压缩码
5000nncc 000000dd
30AAAAAA 000000bb
转成
0x81AAAAAA 0x00nn00cc
0x000000bb 0x000000dd
2)16bit压缩码
5000nncc 0000dddd
80AAAAAA 0000bbbb
转成
0x81AAAAAA 0x00nn00ee
0x1000bbbb 0x0000dddd
ee=cc/2
再来B码
1)8bit压缩码
Bnnncccc 000000dd
30AAAAAA 000000bb
转成
0x81AAAAAA 0x0nnncccc
0x000000bb 0x000000dd
2)16bit压缩码
Bnnncccc 0000dddd
80AAAAAA 0000bbbb
转成
0x81AAAAAA 0x0nnneeee
0x1000bbbb 0x0000dddd
eeee=cccc/2
3)32bit压缩码
Bnnncccc dddddddd
90AAAAAA bbbbbbbb
转成
0x41AAAAAA 0x0nnneeee
0xbbbbbbbb 0xdddddddd
eeee=cccc/4
3、最后的条件码
D码和E码
1)D码,也就是16位单行条件码
D0AAAAAA 0000bbbb
转成
0xD1AAAAAA 0x0000bbbb
2)E码,16位多行条件码
E0AAAAAA bbbbnnnn
转成
0xE0nnbbbb 0x01AAAAAA