- 精华
- 0
- 帖子
- 6793
- 威望
- 0 点
- 积分
- 6937 点
- 种子
- 593 点
- 注册时间
- 2012-5-29
- 最后登录
- 2024-11-23
|
楼主 |
发表于 2018-8-30 13:30 · 广西
|
显示全部楼层
本帖最后由 powerh3 于 2018-8-30 13:49 编辑
C大在这贴简单解释了frame slice(帧切割)的原理,可以一帧内轮询(Poll) 输入(Inputs)的信号。普通模拟器是一帧后,即224行扫描完整个屏幕后,才开始轮询输入信号。
http://forum.arcadecontrols.com/index.php/topic,157930.0.html
理论上CPU越快,轮询甚至可以达到扫描的一行内。。1/240x60(行数x帧数)=1/14400(14400就是14.4kHz,即行频啊),0.00006944s(秒)即0.06944ms(毫秒),不到0.1ms啊。
不过又说以现在的电脑性能来说,是科幻小说。。
一帧是16.67ms左右,frame slice若能一帧内切十次,就是1.667ms。也很低的延迟了。。老游戏机实机好像也要2ms以上输入延迟。即1秒要切60x10(帧数x切割数),等于一秒大概切600次了,不知道要多高主频CPU可以胜任哦。。
34楼及以下几楼。。还说了一点frame slice 和 frame delay的区别和关系。。
Frame slice and frame delay implementations are mutually exclusive.
Normal emulation runs the emulated CPU for a whole frame, say 224 scanlines, then it draws the screen and polls inputs.
With frame slice 1, the same cycle is done for scanlines 0-111, then for 112-224. Inputs are polled in the middle and in the end.
The higher you set frame slice, the finer the CPU slices and the input granularity. In theory you could slice at the scanlines level or even more but this is still science fiction on nowadays computers.
|
|