A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 9985|回复: 5

PS1金手指caetla代码说明

[复制链接]

精华
0
帖子
478
威望
0 点
积分
629 点
种子
12 点
注册时间
2008-3-13
最后登录
2024-8-5
 楼主| 发表于 2016-5-31 03:15  ·  吉林 | 显示全部楼层 |阅读模式
本帖最后由 ly63 于 2016-6-19 21:48 编辑

首先介绍以下什么是Caetla

Caetla是一个日本知名的雨伞、阳伞品牌。而下面讨论的内容跟雨伞毫无关系。

Caetla在电玩界的定义是一款由日本HACKer K-comm开发的AR2兼容BIOS软件。
什么是AR2?
AR2是一种硬件实现的游戏调试工具,对于不同主机有不同版本的硬件,有扩展端口(并口)可以与PC通讯
这需要硬件PClink卡--一块ISA扩展卡,插在PC 的ISA总线上,与配套的PC端软件一同工作。
我们用的金手指码(在当年)都是用这样的工具制作出来的。
对于普通的游戏者,只需要将AR2卡插在游戏机上并输入代码即可实现修改游戏功能。
大多数人(在国内)应该没有机会见到正版的AR2硬件,多数都是港、台商人破解了原版硬件、软件制作的
***,并汉化为中文,称中文金手指,种类很多,但软件大多是hack版的Caetla。
现在这些东西随着时间的流逝,在市场上流通的已经非常稀少了。

而Caetla则是另一个可以替换原有的AR2 BIOS的软件,相比原版AR2,功能有不少增加,支持的代码种类也更多
----------------------
在国内难以找到这种年代久远的资料,所以我利用了一点空闲时间搜集了一些资料,并加以翻译,
填补一下中文世界的这个空白。


下面就介绍一下Caetla支持的金手指代码


数值写入类:

30XXXXXX 00DD
将地址为80XXXXXX的1字节数值改为DD(8bit)

80XXXXXX DDDD
将地址为80XXXXXX的2字节数值改为DDDD(16bit)

90XXXXXX DDDDDDDD
将地址为80XXXXXX的4字节数值改为DDDDDDDD(32bit)

间接寻址写入类:

70XXXXXX AAAAAAAA
将地址为80XXXXXX的1字节数值改写为地址为AAAAAAAA处的1字节数值(8bit)
将地址为80AAAAAA的1字节数值改写为地址为80XXXXXX处的1字节数值(8bit)

71XXXXXX AAAAAAAA
将地址为80XXXXXX的2字节数值改写为地址为AAAAAAAA处的2字节数值(16bit)
将地址为80AAAAAA的2字节数值改写为地址为80XXXXXX处的2字节数值(16bit)

72XXXXXX AAAAAAAA
将地址为80XXXXXX的4字节数值改写为地址为AAAAAAAA处的4字节数值(32bit)
将地址为80AAAAAA的4字节数值改写为地址为80XXXXXX处的4字节数值(32bit)

位操作类:将XX地址的数值相关位 置1(50-52)或置0(58-5A)

50XXXXXX 00DD
将地址为80XXXXXX的1字节数据与DD做逻辑OR运算,并将结果保存到80XXXXXX


51XXXXXX DDDD
将地址为80XXXXXX的2字节数据与DDDD做逻辑OR运算,并将结果保存到80XXXXXX

52XXXXXX DDDDDDDD
将地址为80XXXXXX的4字节数据与DDDDDDDD做逻辑OR运算,并将结果保存到80XXXXXX

58XXXXXX 00DD
先将DD做NOT运算,结果为TT,再将地址为80XXXXXX的1字节数据与TT做逻辑AND运算,并将结果保存到80XXXXXX

59XXXXXX DDDD
先将DDDD做NOT运算,结果为TTTT,再将地址为80XXXXXX的1字节数据与TTTT做逻辑AND运算,
并将结果保存到80XXXXXX


5AXXXXXX DDDDDDDD
先将DDDDDDDD做NOT运算,结果为TTTTTTTT,再将地址为80XXXXXX的1字节数据与TTTTTTTT做逻辑AND运算,
并将结果保存到80XXXXXX


Scratch Pad区域写入类:

3F8XXXXX 00DD
将地址为1F8XXXXX的1字节数值改为DD(8bit)

8F8XXXXX DDDD
将地址为1F8XXXXX的2字节数值改为DDDD(16bit)

循环写入代码:

BXXXYYYY 000000ZZ
30AAAAAA 00DD
循环XXX次,
第一次将地址为AAAAAA的1字节数值改为DD
从第二次开始,将地址为AAAAAA+YYYY 的1字节数值改为DD+ZZ

BXXXYYYY 0000ZZZZ
80AAAAAA DDDD
循环XXX次,
第一次将地址为AAAAAA的2字节数值改为DDDD
从第二次开始,将地址为AAAAAA+YYYY 的2字节数值改为DDDD+ZZZZ


BXXXYYYY ZZZZZZZZ
90AAAAAA DDDDDDDD
循环XXX次,
第一次将地址为AAAAAA的4字节数值改为DDDDDDDD
从第二次开始,将地址为AAAAAA+YYYY 的4字节数值改为DDDDDD+ZZZZZZZZ


条件判断类:

D0XXXXXX DDDD
当地址为80XXXXXX的2字节数值等于DDDD时,执行下一行代码。

E0XXXXXX DDDDCCCC
当地址为80XXXXXX的2字节数值等于DDDD时,执行下面CCCC行代码。
注意不要与AR2的E代码搞混了。

位操作条件判断代码:

60XXXXXX 00DD
将地址为80XXXXXX的1字节数据与DD做逻辑AND运算,结果不为0的话,执行下面1行代码

61XXXXXX DDDD
将地址为80XXXXXX的2字节数据与DDDD做逻辑AND运算,结果不为0的话,执行下面1行代码

62XXXXXX DDDDDDDD
将地址为80XXXXXX的4字节数据与DDDDDDDD做逻辑AND运算,结果不为0的话,执行下面1行代码

68XXXXXX 00DD
将地址为80XXXXXX的1字节数据与DD做逻辑AND运算,结果为0的话,执行下面1行代码

69XXXXXX DDDD
将地址为80XXXXXX的2字节数据与DDDD做逻辑AND运算,结果为0的话,执行下面1行代码

6AXXXXXX DDDDDDDD
将地址为80XXXXXX的4字节数据与DDDDDDDD做逻辑AND运算,结果为0的话,执行下面1行代码


运行简短MIPS程序代码:

AXXXXXXX DDDDDDDD
DDDDDDDD DDDDDDDD
...
......

在地址XXXXXXX处写入MIPS机器码程序段,Caetla会在每次Hook期间调用此程序。

每次HOOK期间caetla会调用DDDDDDD ...... 代表的MIPS程序代码...(此代码原文档并没有给出使用方法)。
自写程序可以安全使用哪些寄存器、最大长度限制等问题仍然未知,日文世界也无法搜索到相关说明。

模式切换代码

FFFFFFFF 000D

当D=1时,模式切换为AR2模式,此模式支持AR2的一些代码。
当D=0时,模式切换为Caetla模式,此模式下仅支持上面介绍的Caetla代码。

例如,你可以像下面这样混合Caetla、AR2代码:

E00A01E8 01000003  Caetla的多行条件判断代码E0
FFFFFFFF 0001       模式切换到AR模式
E00A02E9 0001     AR2的8位条件判断代码
80120DCC 270F    
FFFFFFFF 0000      模式切换为Caetla模式
90120DC0 05F5E0FF      Caetla的32位数值写入代码


AR2模式

AR模式下支持以下代码:

30,80,D0,D1,D2,D3,E0,E1,E2,E3,50,10,11,20,21

注意Caetla 0.34版存在一个bug导致AR2的21代码无法正常工作,
这个BUG在0.35版本得到修正。

===================EOF

精华
0
帖子
222
威望
0 点
积分
240 点
种子
5 点
注册时间
2010-10-15
最后登录
2018-1-8
发表于 2016-5-31 22:43  ·  广东 | 显示全部楼层
话说PS1现在都还没有可支持中文金手指码的光盘金手指,不知能不能实现。

精华
0
帖子
478
威望
0 点
积分
629 点
种子
12 点
注册时间
2008-3-13
最后登录
2024-8-5
 楼主| 发表于 2016-6-19 21:25  ·  吉林 | 显示全部楼层
发现7x代码解释中存在错误,已修正,
并补完后续内容。

精华
0
帖子
222
威望
0 点
积分
240 点
种子
5 点
注册时间
2010-10-15
最后登录
2018-1-8
发表于 2016-6-21 15:05  ·  云南 | 显示全部楼层
向大大请教一个问题 https://bbs.luryl.com/thread-4816721-1-1.html 谢谢

精华
0
帖子
790
威望
0 点
积分
1201 点
种子
357 点
注册时间
2006-9-29
最后登录
2024-11-24
发表于 2019-1-10 16:00  ·  安徽 | 显示全部楼层
E0096A04 59360004
D006211C 0041
90096A00 3C070003
D006211C 0000
90096A00 02203821

大神能否帮我转换下这个代码 我在EC里面用不了

精华
0
帖子
1035
威望
0 点
积分
1062 点
种子
44 点
注册时间
2005-12-16
最后登录
2024-11-21
发表于 2021-3-1 14:00  ·  香港 | 显示全部楼层
好资料 感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-11-24 14:27 , Processed in 0.160899 second(s), 13 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部