|
1
33
是的,你需要汇编程序。这是一个中断计时技巧。受害者可以在边界上显示精灵,但画面只是隐藏了它们,所以精灵可以在它后面滑动。它连接到受害者显示的扫描线。对于下/上边框,它非常简单:
对于左/右边框中的精灵,它更复杂,因为必须对每个扫描行重复该过程:
|
|
2
10
这一切都取决于时机。C64有一种方法可以在绘制屏幕时查询电子束的准确垂直位置。 当新行开始时,您必须等待几个周期(您可以使用NOP指令计时),然后您必须设置负责设置屏幕模式(和边框宽度)的视频芯片的硬件寄存器。 通过精确地调整时间,并且每扫描一次,整个侧边消失了。 底部边界用类似的技巧消失了。在垂直边框开始的确切扫描线上,您也必须设置视频模式,该模式禁用该帧的底部边框。
作为旁注,我认为侧边技巧归功于1001名船员(一个荷兰团队)。我不知道是谁耍了第一个底边把戏。 |
|
|
3
9
有关在C64上打开边框主题的良好教程, 查看Pasi Ojala在中的精彩文章 C=Hacking Issue 6 . 芯片使您可以在25/24行和40/38列文本/图形之间切换,以及 认为它已经打开了边界,而事实上它 没有。查看上面的文章以获得更全面的解释 使用代码示例。 |
|
|
4
1
我知道有一种解决方案依赖于监视器的频率。 对于CRT,即使当前像素在正常屏幕之外,也可以知道它。 在我的垃圾堆里一定有一些C64的书。
|
|
|
5
1
如前所述,你必须愚弄受害者认为边界已经开始,但我写这篇文章的原因是因为上面的答案有点不准确:我完全无法找到一个登记簿来缩小边界,所以这就是你做这件事的方式(至少在顶部和底部):你等到受害者到达第25个字符行,然后你 启用24行 |
|
|
6
-1
时间是关键。当CRT的光束从左向右移动时,通过改变过扫描(边框)颜色在边框中创建图像。产生图像需要两个定时信号——垂直刷新和水平刷新。通过检测何时发生水平和垂直刷新,您可以启动一系列汇编指令来更改边框颜色以生成图像。您需要计算出每个边框像素的CPU时钟滴答数,并使用它来创建在正确点更改边框颜色的代码。 当涉及到编写游戏时,它的工作不是很好,因为CPU开销太大,没有时间处理用户输入和游戏状态。 |