超级任天堂编程/如何避免导致速度下降
外观
< 超级任天堂编程
以下是一些避免游戏出现延迟的技术
- 使用直接页面进行对象处理。对于大多数计算机系统,对象处理是通过将对象的变量复制到“本地”内存并从中复制来完成的,以便计算对象的下一个屏幕位置。另一方面,在 SNES 的 65816 上,直接页面寄存器可以指向您想要的任何位置,因此您可以将其设置为指向对象的变量。不幸的是,由于此功能在许多 CPU 上不可用,因此大多数 SNES 程序员没有使用它,而是进行了较慢的块复制。
- 半展开循环。这些是每次重复执行两次工作的循环。在循环中,CPU 使用一定数量的周期进行计数和跳转。使用半展开循环,CPU 完成计数和跳转所花费的时间只有一半。它几乎与完全展开循环一样有效,但工作量要少得多。
- 内联子程序。如果在紧凑循环中调用了一个子程序,则可以通过将“jsr”替换为子程序代码的副本来提高性能。调用子程序需要 12 个周期:6 个用于跳转,6 个用于返回。