世嘉土星手柄定义,如何自制世嘉土星手柄
来源 Gamesx
土星手柄的控制板非常简单,两个74153芯片组合成一个定制的世嘉芯片,两条选择线用于轮询四组四个按钮,如果要制作自己的土星控制器,只需把两个74153芯片插入其中,并按照此图进行接线就可以了。
| ||
pin # | Name | Function |
---|---|---|
1 | VCC | +5v (Out) |
2 | D1 | Data 1 |
3 | D0 | Data 0 |
4 | S0 | Select 0 |
5 | S1 | Select 1 |
6 | 5v | +5v (Inp) |
7 | D3 | Data 3 |
8 | D2 | Data 2 |
9 | GND | Ground |
| ||||||
S0 | S1 | D0 | d1 | d2 | d3 | |
---|---|---|---|---|---|---|
Off | Off | Z | Y | X | R | |
On | Off | B | C | A | St | |
Off | On | Up | Dn | Lt | Rt | |
On | On | - | - | - | L |
注意
-
如果安装了非标准控制器,则下面的引脚排列可能不准确。
-
此引脚排列仅适用于Saturn打击垫,格斗摇杆和双摇杆。
-
Saturn端口具有许多功能和用途而MegaDrive控制器(包括3-和6-每个端口上都可以使用按键板,鼠标和TeamTap(双格斗杆,以及土星板,键盘和枪。
-
SMPC(系统管理器和外围设备控制)芯片会自动处理这些设备的所有通信,但它会告诉软件哪种类型的设备已连接,即使硬件支持,它们也不能保证这些设备在游戏中能正常工作。
-
将MegaDrive控制器连接到Saturn的引脚排列尚不清楚,但Sega的文档说此端口支持它们。
世嘉MD手柄定义
来源
Genesis(Mega Drive)控制器使用标准的9针连接器,并且它们的通信协议非常简单,因此我构建了一个小适配器,将我的Genesis控制器变成了可与任何仿真器一起使用的USB游戏手柄!
总费用约为10美元。
使用ATmega48,带有Objective Development的V-USB驱动程序。该电路基本上是以V-USB作为参考设计的,但做了一些小的修改。
我用了一个绿色的LED,因为每个人都喜欢LED灯。
Genesis控制器使用6条线(D0 … D5)进行数据通信,并使用第七条线(SELECT )来确定将哪些按钮的状态放在这些线路上。
在这里插入图片描述
选择线(SEL)通常为高电平。要读取控制器的状态,第一步是读取SEL为高电平时候的数据线。数据线将指示D-pad(方向键)的状态以及B和C按钮:
引脚按钮(SEL = 5V)
引脚 | 定义 |
---|---|
D0 | 方向键上 |
D1 | 方向键下 |
D2 | 方向键左 |
D3 | 方向键右 |
D4 | B按钮 |
D5 | C按钮 |
如果D0-D5任意数据线为低电平,则说明此刻按下相应的按钮。
接下来,将SEL拉低并再次读取数据引脚,它们现在将指示A和开始按钮以及方向键上的上下状态。
此时按钮SELECT的引脚为0V
引脚 | 定义 |
---|---|
D0 | 上 |
D1 | 下 |
D2 | GND |
D3 | GND |
D4 | A按钮 |
D5 | START按钮 |
读取数据引脚后将SEL设置为高电平,如果您要读取只有3操作按钮的控制器,那么流程到这里就结束了。大多数Genesis以30至60 Hz的频率读取控制器的状态,并将SEL线拉低20微秒。
但是,如果您要读取6按钮控制器,则需要做更多的工作来获取其余按钮的状态。将SEL线再次拉低两次:(清除SEL;等待20µs;设置SEL;等待20μs;清除SEL;等待20μs;设置SEL。现在,在SEL为高电平时,在第三个低电平脉冲之后,控制器以X,Y,Z和模式按钮的状态做出响应。
引脚按钮(第三脉冲后SEL = 5V)
引脚 | 定义 |
---|---|
D0 | Z按钮 |
D1 | Y按钮 |
D2 | X按钮 |
D3 | 模式按钮 |
最后,将SEL脉冲从低到高再次完成读操作。