4

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

4

2 回答 2

8

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

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

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

此外,精灵数据的获取发生在当前光栅的末尾/下一个光栅的开始附近,因此您几乎只能复制精灵#0(因为它的数据是首先获取的),即使这样 CRT 光束也是如此在屏幕右侧很远的地方,您必须删除边边框才能看到重复的精灵可见。

于 2017-09-28T23:55:29.667 回答
5

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

使用这种技术,您可以在一条光栅线上拥有超过 8 个精灵。该技术类似于在左/右边框中显示精灵的情况下在边框中显示精灵。您需要更改精灵的 x 位置,而不是更改寄存器以减小屏幕宽度。

于 2017-05-18T19:09:05.190 回答