» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 21 12
发新话题
打印

[老游杂谈] 有多少MD游戏只能用六键手柄玩?

引用:
原帖由 SONIC3D 于 2012-4-22 02:30 发表

不是这样的。咸蛋疼的可以看下去,咸蛋不疼的建议按浏览器后退键。

3键手柄靠判断开关方式来判断按键是否按下,总共只需要花2周期时间,其中还用到了74HC157这块4路片选器,接线方式如下表
======= ...
那就是说理论上是有只能六键玩而不能三键玩的游戏,而相反则不应该有,只是游戏编写者比较遵守协议才使得只有六键才能玩的游戏很少啦。


TOP

蛋疼的表示针脚电平之类完全看不懂,也不想看懂。

理解下来貌似是MD的按键输入方式一开始就预留了拓展的余地,或者,说的难听些就是没有物尽其用?



TOP

引用:
原帖由 快乐猪头 于 2012-4-22 11:19 发表
蛋疼的表示针脚电平之类完全看不懂,也不想看懂。

理解下来貌似是MD的按键输入方式一开始就预留了拓展的余地,或者,说的难听些就是没有物尽其用?
高低电平说白了就是那个对应的二进制Bit位的0和1。。

一开始预留得不好,可以说是根本没有想过之后的扩展,使得游戏软件在开发的时候要兼容6键和4分插的扩展协议时就有一些限制(一帧内不允许8次以上读取手柄状态)。
进而导致不得不以多6个周期的串行通信代价来弥补大多数游戏兼容性上的不足(本来多了这XYZM四个键,理论上只要多1-2周期就足够传输了)。

其实把这个过程想象成发摩尔斯电码的过程可能比较好理解
3键手柄的协议就是:
[主机发一个信号,手柄收到这个信号后回馈6个信号给主机,主机收到回馈后再发下一个信号,手柄收到后回馈另外6个信号给主机,通信完毕]
手柄2次回馈的6个信号就分别代表了(上、下、无意义、无意义、A键、Start键)(上、下、左、右、B键、C键)的按下或弹起状态。

这个协议缺点有2个
1、浪费了2个传输机会给(上、下)键,在上面加粗的部分可以看到,上、下方向键的状态被重复传了2次,占每次传输的1/3数据量,天大的浪费,直接导致之后6键手柄为了兼容该协议不得不每周期也跟着浪费。
2、没有制定一个协议结束周期,或者没有在软件开发包中制定每帧读取手柄状态的次数。使得之后6键手柄和4分插协议不得以扩展2倍以上周期来作为协议结束以兼容以前的软件。但遇上奇葩游戏程序员(比如世界末日的那位),还是会死得不明不白。。。

其实MD手柄口是双向数据口,完全可以做成要游戏程序在获取手柄状态前,传输一个期望获得的手柄按键数据结构的版本号给手柄,如果手柄不支持,返回一个错误码,然后游戏尝试发一个更低的版本号给手柄,如果手柄支持了返回一个正确的状态码,然后游戏程序就以这个手柄支持的最高版本按键数据结构来和手柄进行进一步通信。而手柄端新硬件要实现老硬件所有的信号模式。这样一个软硬件组合设计,即使以后有60键手柄,老游戏都不会遇到不兼容,因为游戏发给了手柄的是一个以前的按键数据结构版本号,手柄自然会工作在老手柄应该工作的模式下。完全不需要用户作什么按住Mode键开机或者插手柄这样的蠢事来解决兼容性。

可惜Sega没有这么干,而且绝对不是因为成本问题,而是因为初始的按键协议设计就已经断送了今后这样修改的可能。。。


TOP

引用:
原帖由 SONIC3D 于 2012-4-22 14:16 发表



高低电平说白了就是那个对应的二进制Bit位的0和1。。

一开始预留得不好,可以说是根本没有想过之后的扩展,使得游戏软件在开发的时候要兼容6键和4分插的扩展协议时就有一些限制(一帧内不允许8次以上读取手柄 ...
其实接MDCD的那个扩展端子,预先也不是想接MDCD得。那个端子最早是预设接官方磁碟机的,后来磁碟机、手写板、键盘三大早期周边一同夭折了。后来这个端子用来扩展MDCD,很好。

不过,这三大周边最终也是存在了,山寨的子子宝、拦截者磁碟机继承了夭折的官方磁碟;手写板在SEGA PICO机上得到了发展和延续;而键盘则在TERADRIVE上出现了...可以说世嘉的东西永远不会死

[ 本帖最后由 Soviet所谓爱 于 2012-8-13 10:59 编辑 ]

TOP

街霸,真人快打,实况足球
这几个游戏最好用小手柄玩

TOP

街霸真人快打还得小饼啊

TOP

 21 12
发新话题
     
官方公众号及微博