Sega CD 上的 Silpheed 在当时有着惊艳的 3D 引擎技术,但背后却是运行在 16 色、150kb/s 读取速度的硬件上。Game Arts 将画面转为影视级横幅比例,以减少渲染上下两边像素;通过网格划分复用单色的色块,双色的色块则借用硬件中原本就有的 ASIC 字体寄存器来渲染等方法,巧妙地维持了画面一定的帧率,而又不失艺术质感。
Sega CD 上的 Silpheed 在当时有着惊艳的 3D 引擎技术,但背后却是运行在 16 色、150kb/s 读取速度的硬件上。Game Arts 将画面转为影视级横幅比例,以减少渲染上下两边像素;通过网格划分复用单色的色块,双色的色块则借用硬件中原本就有的 ASIC 字体寄存器来渲染等方法,巧妙地维持了画面一定的帧率,而又不失艺术质感。
文章中的 Mega-CD(世嘉 CD)是挂在 Genesis 上的 CD-ROM 扩展,约有近 200 款游戏。其 640 MiB 容量远超卡带,但寻道约 800ms、单倍速约 150 KiB/s,读写极慢。它与主机并行:副 CPU 为 12.5MHz m68k,含 Word/Program RAM、Ricoh PCM、带旋转缩放与“Font bit”的 ASIC,以及 CD 光驱;双方靠扩展口共享内存并混合音频。大量粗制 FMV 令平台口碑不佳,而《Silpheed》正是在这套受限架构上做出高质量全屏级影像的代表作。
文章将 Genesis(Mega Drive)描述为与 Mega-CD 并联的主机侧:主 CPU 为约 7.67MHz 的 MC68000,配 64KB 主 RAM 与 Z80 音效子系统,画面经 VDP 以两层 8×8 图块背景加精灵层输出到电视。在《Silpheed》中,主 CPU 负责背景 A(HUD)与前景精灵,并把副侧渲染好的 Word RAM 帧送给 VDP;Model 1 还需用混合线把主机音频接到 CD 侧再输出。整机双系统同步被作者视为开发噩梦。
《Silpheed》是 Game Arts 在 Sega CD 上的射击作,以接近全屏的过场与背景影像著称,令当时媒体与玩家难辨实时 3D 与预计算。约束极苛:12.5MHz m68k、总共 16 色、约 15fps(复杂关可降至 7.5fps),在 16-bit/16kHz 音乐后每帧视频预算仅约 8 KiB。副 CPU 双缓冲渲染背景 B,主 CPU 管 HUD/精灵;每帧自包含图块与 tilemap,并靠纯色复用、ASIC 双色“Font bit”、tilemap 位图自增等压缩,部分关卡还有四色调色板循环做激光爆炸。作者用两周逆向其 FMV 格式并制作了分镜。
文中 FMV 指 CD 时代把预录影像搬上主机的做法;Sega CD 上大量依赖 FMV 的作品因小窗口、伪影与抖动声名狼藉。核心瓶颈是从光驱读出、CPU 解压再喂给显示的带宽链,且 Genesis 无帧缓冲,需经 8×8 图块与 nametable 拼出约 256×224 画面。《Silpheed》的 FMV 每帧独立、无帧间差分,却用纯色图块复用(示例帧约半数引用 15 块纯色)、ASIC 双色展开、tilemap 约 30% 压缩与降帧等手段把约 8 KiB/帧做到接近全屏、观感接近实时 3D,成为全文逆向与分析的主题。
Motorola 68000(文中 m68k)在架构里出现两颗:Genesis 主 CPU 约 7.67MHz,Mega-CD 副 CPU 12.5MHz。文章强调近全屏过场就是在这颗 12.5MHz 副核上、配合 16 色与极低每帧带宽跑起来的;副核写入 Word RAM 图块与背景 B,主核负责 HUD/精灵并驱动 VDP 显示双缓冲的另一侧。主侧 m68k 还每帧轮换调色板末尾四色,做出激光与爆炸的彩色闪烁。双 68000 并行与同步是理解该作影像管线的基础。
文中架构图显示 Genesis 侧配有 8KB 音频 RAM,并由 Z80 与 YM2612、SN76489 共同构成主机音频通路。Silpheed 的音频最终要经混音线送入 Mega-CD 再输出到电视;Z80 作为主机声部控制单元参与这一链路,交互段落里音乐主要由 YM2612 承担,Z80 侧通路仍是整体混音架构的一部分。
YM2612 是 Genesis 内置 FM 音源。文章指出非交互过场完全依赖 Mega-CD 的 Ricoh 做 PCM 品质配乐;进入可操作段落时,音乐改由 YM2612 负责,Ricoh 仅零星播放 PCM 采样。其输出经主机前插口混音线接入 Mega-CD 混音器,再与 CD/PCM 信号合并送往电视,体现双机音频分工。
Ricoh PCM 是 Mega-CD 侧 PCM 芯片,直接参与混音。Silpheed 非交互过场仅靠它输出 PCM 品质音乐;交互关卡中它被间歇用于音效采样,背景音乐则交给主机 YM2612。文章强调它与 CD-DA、经 RCA 混音线进来的 Genesis 信号在混音器中合并,是该作音频策略在过场与可玩段落间切换的关键硬件。
Mega-CD ASIC 除旋转/缩放等加速外,还提供鲜为人知的 Font bit 功能。Silpheed 用它解压双色 8×8 图块:向源色寄存器写入两个 4 位调色板索引,再写入 16 位位图,由 ASIC 展开为 4 位像素并从寄存器读回,约 3 字节生成两行图块数据。示例帧中约 234 个双色块由此生成,在已省掉纯色块后的剩余数据上再省约 37% 带宽,并减少 CPU 位操作。
VDP 是 Genesis 视频显示处理器,带 64K 显存,负责把画面送到电视。Silpheed 仍走三层结构:背景 A/B 为图块层、前景为精灵。主 CPU 把 Word RAM 双缓冲之一交给 VDP 显示背景 B,同时绘制 HUD 所在的背景 A 与精灵层;无帧缓冲,必须按 8×8 图块与 tilemap(nametable)铺屏,这既是带宽瓶颈,也是该作压缩利用的基础。
Word RAM 是 Mega-CD 上 256KB 共享内存。Sub-CPU 在 L1 模式下对其做双缓冲:一边由主 CPU 送往 VDP 显示,一边在另一缓冲里渲染下一帧的图块与 tilemap。它是背景 B(过场与关卡背景视频)的写入与交接中枢,使 12.5MHz 子 CPU 能与主机 VDP 流水线式协作,支撑约 15fps 的 FMV 输出。
本文中,Mega-CD/Genesis 无帧缓冲,画面由 8×8 图块经 tilemap(nametable)按 32×28 铺成 256×224。Silpheed 每帧自带全部图块与 tilemap;编码器把纯色图块只写一份再在 map 中反复引用(如某帧 896 格中 456 格共用 15 种纯色,约省一半带宽)。tilemap 本身再压缩:768 位位图标出“自增索引”或“读立即数”,相对原本约 960 字节可压到约 652 字节(近 30%)。
文章明确指出 Silpheed 的 FMV 不用帧间差分(delta compression)。每一帧自给自足,完整携带本帧所需图块与 tilemap,解码不依赖前一帧。带宽节省主要靠图块复用、ASIC 双色字模展开与 tilemap 自增编码等帧内手段,而非跨帧差分。
本文称其为 palette trick:游戏过程中激光与爆炸呈多色流动,靠主 CPU 的 m68k 每帧轮转调色板末尾预留的 4 个颜色实现。因此可玩段落美术实际只能用 12 色作画;过场则无此动效,可占满 16 色。该技巧在极低色数与带宽下增强动感,而不增加图块数据量。
Game Arts 是《Silpheed》开发商。文章强调他们没有像多数 FMV 游戏那样自上而下硬塞真人影片,而是从主机带宽、图块与色数等硬限制自下而上做取舍:平面着色多边形、全机 16 色、无高洛德、极少抖动。美术在极简色板下仍做出高品质影像,过场可用满 16 色,可玩段落因激光特效只剩约 12 色可用。作者认为正是这种工程与艺术的配合,使作品在劣迹斑斑的 Sega CD FMV 浪潮中脱颖而出。
文章中的 Mega-CD(世嘉 CD)是挂在 Genesis 上的 CD-ROM 扩展,约有近 200 款游戏。其 640 MiB 容量远超卡带,但寻道约 800ms、单倍速约 150 KiB/s,读写极慢。它与主机并行:副 CPU 为 12.5MHz m68k,含 Word/Program RAM、Ricoh PCM、带旋转缩放与“Font bit”的 ASIC,以及 CD 光驱;双方靠扩展口共享内存并混合音频。大量粗制 FMV 令平台口碑不佳,而《Silpheed》正是在这套受限架构上做出高质量全屏级影像的代表作。
Game Arts 是《Silpheed》开发商。文章强调他们没有像多数 FMV 游戏那样自上而下硬塞真人影片,而是从主机带宽、图块与色数等硬限制自下而上做取舍:平面着色多边形、全机 16 色、无高洛德、极少抖动。美术在极简色板下仍做出高品质影像,过场可用满 16 色,可玩段落因激光特效只剩约 12 色可用。作者认为正是这种工程与艺术的配合,使作品在劣迹斑斑的 Sega CD FMV 浪潮中脱颖而出。
可左右滑动查看