已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
引用 坚持and突破:
我到现在还好奇那个光枪是怎么作的....
百度贴吧这里有解释:
XXXXXXXXXXXXXXXXXXXXXX/p/1230684304


之前在各处的网站看到关于红白机上光枪原理的各种解释,它们大多是转载,且内容基本相同。
我对FC红白机的硬件和模拟有一定的了解,认为上述帖子讲解的内容是错误的,在这里为大家讲解我所了解的光枪工作原理。

FC红白机光枪的工作原理很简单,这归功于FC游戏厂商的巧妙设计。
首先我们先来认识FC的光枪。图片就免了。
FC的光枪有三个关键部分:
第一个是枪头,它的内部有有感光芯片
第二个是光枪上唯一的按钮,就是扳机,在游戏的过程中,瞄准的同时需要按下扳机进行射击。
第三个是接头,这个和2P手柄的位置是相同的。
在理解光枪工作原理之前,首先需要让大家了解到,红白机的手柄和光枪都是串行设备。撇开手柄不谈,光枪接口的7个口中,有两个口用来提供状态信息。这7个口的定义如下:
1    Out GND        GND        Ground
2    Out PORT0-CLK PORT1-CLK Joystick Clock (CPU Port Read)
3    Out OUT0       OUT0       Joystick Serial-Start
4    In  PORT0-0    PORT1-0    Joystick Serial-Data
5    Out +5VDC      +5VDC      Supply
6    In  PORT0-3    PORT1-3    Zapper Light
7    In  PORT0-4    PORT1-4    Zapper Button
我们可以看到,第6bit和第7bit是光枪提供的信息。第6位表示光枪检测到的光的强弱。第7为表示玩家是否扣下了扳机。
光枪游戏就通过检测扳机的状态以及检测到的光的强弱来判断玩家是否击中了目标。需要注意的是,这个光的强弱只能用0和1表示,所以光枪游戏要求电视或者屏幕的对比度要高,否则光枪不容易区分光到底是强的还是弱的。典型的,白光是强的,黑色就是弱的。

这里以《打鸭子DUCK HUNT》为例,游戏正常的情况下如图1所示,图中有两只鸭子。


当玩家按下扳机,游戏画面会变黑,如图2所示。这个画面的切换比较快,大概在30ms左右。
这屏幕变黑的这段时间中,游戏可以检测光枪返回的光枪,看是否为弱。
之后,第一只鸭子的位置会用白色块显示,如图3所示,从图2到图3在30ms左右。
如果这个时候游戏发现检测到的光强很强,那就说明玩家击中这只鸭子了。
大概过50ms左右,画面会切换到图4,白色块显示在第二只鸭子的地方,如果游戏此时发现光强为强,那么就说明玩家击中第二只鸭子了。
再过50ms左右,游戏会返回到正常画面。以上就是光枪的工作过程了。

由于屏幕会一瞬间变黑,玩家还是可以感觉到的。
其他游戏的检测方式大体相同,当画面的可击中物体较多时,画面闪烁的延迟也会加大。
很多人可能也知道,在射击的时候突然将枪对准灯泡,可以让游戏百发百中……

我以前买过一本介绍红白机维修的书,上面也讲过光枪的原理,基本上和这个类似

只能说昭和时代的鬼子工程师厉害,用低成本就搞出了一样一个东西。现在的电子产品,动不动就上高采样率,高成本的sensor、高成本的外设,但其实总体的体验并不高
文号 / 755073

千古风流
名片发私信
学术分 4
总主题 184 帖总回复 2277 楼拥有证书:学者 机友 笔友
注册于 2015-01-11 13:58最后登录 2024-04-25 17:43
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:广东

个人简介

收音机爱好者

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}