如何在rasterline中有9个精灵

时间:2017-05-18 18:37:41

标签: c64 commodore

真正的Commodore 64(不是模拟器)上的栅格线中是否可以有超过8个精灵? 精灵不需要与众不同。

2 个答案:

答案 0 :(得分:8)

简短回答:是的。 答案很长:是的,但有一些警告:

VICII(视频芯片)为每个最大8个硬件精灵中的每一个读取3个字节的精灵数据,并且缓冲的数据将显示在下一个栅格上。

如果在给定的栅格上第二次显示硬件精灵,缓冲区将为下一个栅格为空,那么在下面的栅格中,您将在精灵中找到透明条纹。

精灵数据提取也发生在当前光栅/下一个光栅开始的末尾,所以你几乎只限于复制精灵#0(因为它的数据首先被提取),甚至CRT-光束到目前为止在屏幕右侧,您必须移除侧边框才能看到重复的精灵可见。

答案 1 :(得分:5)

是的,可以在中断中使用汇编。中断将与视频芯片的光栅对齐。在视频芯片渲染第一个精灵之后(使用NOP等待必要的时间),其位置和形状进一步向右变化。然后中断再次等待,直到渲染精灵将其重置为原始位置,因为嵌套栅格需要在那里“看到”它。

使用此技术,您可以在一个栅格线中拥有超过8个精灵。对于左/右边界中的For Sprite,该技术类似于showing sprites in the border。您需要更改精灵的x位置,而不是更改寄存器以使屏幕宽度减小。