NES(Nintendo Entertainment System)小游戏的容量远超人们的想象,通常只有几百K的数据,但里面的内容却丰富多样,包括多样的配乐和字体,这些看似不起眼的小程序是如何做到如此之大的呢?
画面分割
组成NES游戏画面的基本单位是“卡通块”,简称CELL,每个CELL是一个8x8像素的点阵,与一个字符一样大,游戏画面是由无数个CELL组成的,每个CELL实际上是由多个CELL组合而成。
《超级马里奥兄弟》中的主角马里奥在红蘑菇前是4个CELL组成,而吃了红蘑菇后变身为16个CELL的马里奥,这些CELL通过不同的组合形成各种图案和图像。
布局与调色板
游戏中的每个CELL都有一个图形字库,被称为CHR,CHR库的大小是16x16,最多可定义256个CELL,每个CELL的序号从0到255,由于每个CELL都来自同一个CHR库,所以游戏中的所有CELL都是重复使用的,仅使用了CHR库的一部分数据。
每个CELL的显示状态可以通过调色板确定,调色板共有53种颜色,但实际游戏中只用了其中的3种颜色,再加上一种透明颜色,总共只有4种颜色供CELL选择。
音乐与声效
为了节省空间,许多NES游戏采用了循环音乐的方式,有些游戏甚至在硬件层面专门设计了额外的音频组件,如用于增强音效的芯片,还有一种称为“PCM”的声音编码技术,可以存储语音信息。
角色与背景
在运动中的角色方面,NES利用了内置的视频RAM来存储角色的动态信息,使得角色可以在屏幕上以整体结构移动,而不是简单的帧跳动,这种技术使得游戏角色能够以更流畅的姿态移动,提高了游戏的真实感。
滚屏机制
滚动屏幕是NES游戏常见的功能之一,它允许玩家通过按键触发,实现画面的快速切换,在滚动操作中,系统会预先储存更多的内容,并在用户触发操作时,将新的内容覆盖旧的内容。
NES的小程序之所以能在有限的空间内展现丰富多彩的内容,得益于其精妙的布局设计、高效的资源管理以及创新的技术应用,无论是游戏界面的设计,还是音效的优化,无不体现了任天堂工程师们卓越的智慧和匠心独运。