如何在rasterline中有9个精灵

qwa*_*syx 4 c64 commodore

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

小智 8

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

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

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

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


Pet*_*ler 5

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

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