金手指码类型说明
1. 00xxxxxx 000000yy // 将8bit的值yy写入内存地址8Cxxxxxx, 值锁定
2. 01xxxxxx 0000yyyy // 将16bit的值yyyy写入内存地址8Cxxxxxx, 值锁定
3. 02xxxxxx yyyyyyyy // 将32bit的值写入内存地址8Cxxxxxx, 值锁定
4. 03 码比较复杂, 单独列出
4.1 . 0300nnnn aaaaaaaa // 批量写入, nn表示接下来写入几组32bit值, aaaaaaaa是写入的地址, aaaa下面的几行数据表明写入的值
例如:
03000004 8C012000
11111111 22222222
33333333 44444444
这几行的效果相当于给 0x8C012000 ~ 0x8C012000C 的地址依次写入了 11111111 22222222 33333333 44444444的值
4.2 030100yy aaaaaaaa // 增加码. 把8bit的值yy, 增加到地址aaaaaaaa上
4.3 030200yy aaaaaaaa // 减少码. 从地址aaaaaaaa减去8bit的值yy
4.4 0303yyyy aaaaaaaa // 增加码. 把16bit的值yyyy, 增加到地址aaaaaaaa上
4.5 0304yyyy aaaaaaaa // 减少码. 从地址aaaaaaaa减去16bit的值yyyy
4.6 03050000 aaaaaaaa yyyyyyyy // 增加码. 把32bit的值yyyyyyyy, 增加到地址aaaaaaaa上
4.7 03060000 aaaaaaaa yyyyyyyy // 减少码. 从地址aaaaaaaa减去32bit的值yyyyyyyy
5. 04xxxxxx rrrrssss yyyyyyyy // 重复填充码. 把32bit的值yyyyyyyy写入到地址8Cxxxxxx, 重复写入rrrr次, 每次写入的地址跳跃ssss(ssss*4, 因为是32bit码)
例如:
04007a30 00000001 12345678
相当于地址0x8C007A30 ~ 0x8C007A38 都被写入了 12345678的值
6. 05xxxxxx aaaaaaaa nnnnnnnn // 复制码. 从0x8Cxxxxxx地址复制nnnnnnnn个字节 到 0xaaaaaaaa地址
7. 071000xx // 改变解码方式
8. 0b0xxxxx // 延迟xxxx个循环后写入码. 默认是1000(0x03e7)个循环
9. 0cxxxxxx yyyyyyyy // 条件码. 如果0x8Cxxxxxx的值等于yyyyyyyy, 则执行所有的金手指码, 否则不执行. 某些需要载入后再修改的游戏有用
10. 0d 分支条件码
10.1 0dxxxxxx 0000yyyy // 如果0x8Cxxxxxx的值等于yyyy, 则执行下一行金手指码, 只能和00, 01, 02型码配合使用
10.2. 0dxxxxxx 0001yyyy // 如果0x8Cxxxxxx的值不等于yyyy, 则执行下一行金手指码, 只能和00, 01, 02型码配合使用
10.3. 0dxxxxxx 0002yyyy // 如果0x8Cxxxxxx的小于yyyy, 则执行下一行金手指码, 只能和00, 01, 02型码配合使用
10.4. 0dxxxxxx 0003yyyy // 如果0x8Cxxxxxx的大于yyyy, 则执行下一行金手指码, 只能和00, 01, 02型码配合使用
11. 0e 批量分支条件码
11.1 0ennyyyy 00aaaaaa // 如果0x8Caaaaaa地址的值等于yyyy, 则执行下面nn行密码
例如:
0e04abcd 00012000
02300040
FFFFFFFF
02300050
EEEEEEEE
如果地址0x8C012000 的值 == 0xabcd, 则执行接下来的4行密码, 效果相当于两行"02xxxxxx"码 "02300040 FFFFFFFF" 和 "02300050 EEEEEEEE"
11.2 0ennyyyy 01aaaaaa //如果0x8Caaaaaa的值不等于 yyyy, 则执行下面nn行代码
11.3 0ennyyyy 02aaaaaa //如果0x8Caaaaaa的值小于 yyyy, 则执行下面nn行代码
11.4 0ennyyyy 03aaaaaa //如果0x8Caaaaaa的值大于 yyyy, 则执行下面nn行代码
12. 0fxxxxxx 0000yyyy // 激活码 向0x8Cxxxxxx地址立即写入一次yyyy