Sega CD Silpheed 的工程设计:针对受限硬件优化 FMV
Sega CD Silpheed 的工程设计:针对受限硬件优化 FMV
Silpheed 的自下而上工程方法
Sega CD Silpheed 通过从系统的约束条件向上进行工程设计,而不是试图将高分辨率电影移植到受限的硬件上,从而避免了 1990 年代全动态视频 (FMV) 游戏的常见陷阱。虽然那个时代的大多数 FMV 游戏都受到极小的窗口、严重的抖动 (dithering) 和压缩伪影的影响,但 Game Arts 利用平滑着色的多边形、严格的 16 色调色板和极少的抖动,创造了一种视觉上令人信服的体验,常常让玩家误以为他们看到的是实时 3D 渲染。
硬件架构:Genesis 与 Mega-CD 的并行处理
运行 Silpheed 需要 Sega Genesis 和 Mega-CD 扩展组件之间的复杂同步。
- The Genesis 端: 具有 7.67 MHz MC68000 CPU 和 64 KB RAM。它处理背景层 A 上的 HUD (Heads-Up Display) 和前景精灵层。
- The Mega-CD 端: 具有 12.5 MHz MC68000 Sub-CPU、256 KB Word RAM 和 512 KB Program RAM。Sub-CPU 管理背景层 B,使用双缓冲系统将瓦片 (tiles) 渲染到 Word RAM 中,同时主 CPU 向视频显示处理器 (VDP) 提供当前缓冲区。
音频处理采用分路路径。非交互式过场动画依赖 Mega-CD 的 Ricoh PCM 芯片进行高质量音乐播放,而交互式序列则将音乐制作转移到 YM2612 芯片,并偶尔使用 Ricoh 芯片进行 PCM 采样。
克服带宽瓶颈
FMV 本质上是一个带宽问题:数据必须从 CD-ROM 读取、解压缩并传输到屏幕上。Mega-CD 的单速驱动器 (150 KiB/s) 和缓慢的访问时间 (800ms) 使这一任务极具挑战性。Silpheed 的 15fps 视频流,结合 16-bit 16kHz 音乐,每帧仅剩 8 KiB。
为了解决这个问题,Game Arts 实施了三种主要的带宽降低策略:
- 分辨率降低: 瓦片 (tiles) 的顶部和底部行被设置为黑色,从而创造出电影感的宽高比,并减少了需要处理的瓦片总数。
- 帧率调整: 游戏主要运行在 15fps,在复杂场景(例如 Stage 1 和 Stage 10 中的“分形”纹理)时会降至 7.5fps。
- 自定义压缩: 每一帧都是自给自足的(没有增量压缩),但该格式利用了瓦片图 (tilemap) 系统来实现大幅节省。
高级视频压缩技术
瓦片图与纯色优化
Silpheed 的编码器会识别由单一纯色组成的瓦片 (tiles)。编码器不会单独存储每个瓦片,而是仅存储 15 种纯色瓦片的其中一个实例,并在瓦片图中反复引用它们。在某些帧中,这可以将带宽需求降低多达 50%。
利用 Mega-CD ASIC 的 "Font Bit"
对于仅包含两种颜色的瓦片 (tiles),Silpheed 利用了 Mega-CD ASIC 中一个鲜为人知的功能,称为 "Font bit"。该功能最初是为快速渲染 2 色 kanji/文本设计的。
通过将两个调色板索引写入源颜色寄存器,并将 16-bit 位图模式写入 font 寄存器,ASIC 可以将 1-bit 模式扩展为 4-bit 像素数据。这允许系统仅使用三个字节就能生成 8x8 瓦片的两行,从而为这些特定瓦片节省了 37% 的带宽,并降低了 CPU 开销销。
瓦片图压缩
为了进一步减少通常为 768 个瓦片图所需的 960 字节,Silpheed 采用了 768-bit 位图 (96 字节)。'0' 表示瓦片索引的自动递增,而 '1' 表示立即值。这通常可以将瓦片图的空间需求降低近 30%。
视觉效果与调色板循环
为了在不增加调色板颜色的情况下为激光和爆炸效果创造多色效果,开发人员使用了调色板循环 (palette cycling) 技巧。调色板末尾的四种颜色被保留并由主 MC680 000 CPU 每帧进行偏移。因为这些颜色被保留用于游戏玩法中的效果,所以艺术家在实际的游戏序列中只能使用十二种颜色,而过场动画则可以使用完整的 16 色调色板。
社区观点
虽然在技术上因其工程设计而受到称赞,但该游戏在游戏玩法方面的评价是褒贬不一的。一些用户回忆称其为一种令人信服的射击电影感体验,感觉像是在“控制着一部电影”,而另一些人则将其游戏玩法描述为“真的很糟糕”。
"Sega CD 根本没有 3D 能力 (仅有 2D 旋转和缩放)。但 GameArts 如此巧妙地处理了 FMV,甚至连锯齿感都做到了位,以至于很难理解...为什么它不被视为 3D 渲染。"
"Cool article, but Silpheed is a genuinely awful game."