如何在光栅线中拥有 9 个精灵

How to have 9 sprites in rasterline

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

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

使用这种技术,您可以在一条光栅线上拥有超过 8 个精灵。对于 left/right 边界中的精灵的情况,该技术类似于 showing sprites in the border。您需要更改精灵的 x 位置,而不是更改寄存器来缩小屏幕宽度。

简短回答:是的。 长答案:是的,但有一些注意事项:

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

如果您在给定的栅格上第二次显示硬件精灵,则该缓冲区在下一个栅格上将为空,因此在下一个栅格上,您最终会在精灵中看到透明条纹。

此外,精灵数据的获取发生在下一个 raster/start 的当前末尾附近,因此您几乎只能复制精灵 #0(因为它的数据首先被获取),甚至那么 CRT 光束在屏幕右侧太远,您必须移除侧边才能看到重复的精灵。