« Neo Geo架构 (index)

Neo Geo架构

Chapter 4: 图形


目录

  1. 设计
    1. 芯片组
  2. 硬件组织
  3. 构造帧
    1. 图块
    2. 固定平面
    3. 精灵图
    4. 结果
    5. 广播发送帧

Neo Geo 是基于图块的图形技术的巅峰之作,其丰富的色彩可与基于帧缓冲的系统 相媲美(后者直到四年之后才变得经济实惠)。 尽管如此,在效果方面,SFC 用较少的资源实现了更多的功能。

设计

图形子系统围绕着典型的视频显示控制器(VDC)模型构建,但这次它被大量的组件所包围。 结果就是这款主机能够显示大量的精灵图像,数量之多以至于标志性的背景层 不再那么重要。 这当然也说得通,因为背景原本就是为了应对有限数量的精灵图像而设计的。

Image
合金弹头 3 (2000).

Image
大联盟高尔夫球 (1996).

Image
Neo甩尾王 (1996).

Image
龙虎之拳3: 斗士之路(1996).

Image
野外飞盘 (1993).

Neo Geo 游戏示例。

话虽如此,该主机以符合 NTSC 和 PAL 信号的标准广播每一帧画面(选择哪种信号取决于地区)。 在这种情况下,画面的尺寸为 320 x 224 像素(对于 NTSC)或 320 x 256 像素(对于 PAL)。

芯片组

负责在电视上绘制图像的组件群随着新版本的发布而不断发展。 多年来,SNK 在制造其集成电路时交替使用了 NEC 和富士通。

Image
'LSPC-A2'芯片。

Image
'NEO-B1'芯片。

在我的主板版本中,这两个组件组成了视频显示处理器(VDC)。 二者均由富士通生产。

为了便于解释,我们先从这套芯片中最显著的部分开始描述:

如果之前的解释过于复杂,请不要担心。 接下来的章节将会更详细地解释这些内容。 现在,让我们继续分析这些芯片处理的信息。

硬件组织

图形数据分布在两个独立的板卡 上。 第一张是游戏机的主板 ,另一张位于游戏卡带中。 您可能会想起NES/Famicom. 中采用的类似模型。

Image
图像子系统的内存架构

在主板区域,我们发现有:

游戏卡带中的相应板卡被称为CHA板,包含以下部分:

构造帧

既然您已经大致了解了最重要的组件,现在让我简要概述一下图形子系统如何将数据转换成图像的过程。 换句话说,它是如何渲染一帧的:

  1. CPU用精灵图层和固定图层所需的引用填充VRAM。
  2. 根据VRAM中的信息,VDC从C ROMs和S ROM中获取图形,并将它们存储在线缓冲区中。
  3. 在获取过程中,VDC使用线缓冲区中的信息来锁定调色板RAM。 这样后者会将颜色像素数据发送给视频DAC。
  4. 视频DAC输出视频信号到电视。

基于这些步骤,现在我将以《龙虎之拳3》为例给您一个详细的解释。

图块

Image
一些在CROM中发现的图块。

传统上被称为8 x 8像素位图,图块是构成第四代游戏机图形的基本元素。 由于其独特的属性,Neo Geo只绘制两种类型的图形:固定图块精灵图。 因此,图块根据图形类型不同而分别进行编码和存储。 在这两种情况下,每个像素使用4位(换句话说,4bpp)进行编码,这意味着它可以选取最多15种颜色加上透明度

就色彩组成而言,调色板RAM允许存储256个色彩调色板。 每个调色板包含十六种颜色,引用16位RGB值。 在所有可用的槽位中,有两个预留条目:一个是"参考颜色",必须硬编码为$8000(纯黑色);另一个是"背景颜色",它编码了一个任意颜色,在没有图块的情况下显示。

CPU可以在任何时候更新调色板RAM,但它应该只在消隐期间这样做。 否则,屏幕上会出现雪花效果。

固定平面

Image
和黑色背景一起的固定平面

固定平面是一个320 x 256像素宽(40 x 32图块)的图层,几乎占据了整个屏幕。 它的图块是完全静态的,并且只能访问16个色彩调色板。 实际上,这个图层用来显示"始终开启"的信息,类似于Game Boy的窗口图层

当在CRT屏幕上播放时,显示区域会更小。 因此,其安全区域为38 x 28图块宽。

固定图块是在VRAM的一个区域中声明的,称为固定图块映射表(Fix map)。 它以一个40 x 32的表格形式存在,每个条目对应屏幕上的一个位置。

S ROM在卡带中存储专用于固定图层的独有图块。 VDC最多只能寻址128 KB,但通过捆绑一个映射器 可以扩展这一限制。

精灵图

Image
精灵图层,注意它是如何用于场景的所有区域的(不仅仅是两个角色)。

如您所知,精灵图是可以自由移动的图块。 然而,在Neo Geo中,用于精灵的图块异常地宽,达16 x 16像素。 考虑到这一点,VDC可以组合由16 x 16像素(1 x 1图块)到16 x 512像素(1 x 32图块)组成的精灵图。 之所以提供这种异常高的组合是因为任何精灵图也可以通过"连接"到前一个精灵图来进行水平组合(尽管它们仍然被计为单独的精灵图)。 总体来说,每行扫描线上最多可以有96个精灵图每帧最多可以有381个精灵图,这个数量与竞争对手相比是非常大的。

就效果而言,精灵图可以翻转和/或缩小。 这些属性存储在VRAM的"快速"区块中,使得CPU可以在不产生显著延迟的情况下更新它们。

由于其复杂性,精灵图像在视讯内存(VRAM)中的四个区域进行编码,这些区域被称为精灵图控制块(SCB),每个区块存储以下属性:

如您所见,出于实用考虑,最后三个区块存储在快速VRAM中,而第一个则存储在较慢的VRAM中。

结果

Image
显示在屏幕上的结果帧。

尽管竞争对手 以与CRT电子束同步渲染而闻名,Neo Geo却采用了一种行缓冲渲染系统。 对于后者,游戏机将渲染的扫描线存储在上述缓冲区中,而不是将它们直接发送到屏幕。 因为视频显示控制器(VDC)具备储存两条扫描线的记忆体容量,这使得VDC可以在显示一条扫描线的同时渲染另一条,从而允许游戏在画面正在显示期间更新图像(除了水平空白期H-Blank 和垂直空白期H-Blank)。

说实话,VDC仍然会同时访问VRAM,因此中央处理器(CPU)必须等待12到16个周期(取决于操作)才能再次访问VRAM,否则下一个操作将被忽略(这也是使用两种VRAM变体的原因)。

广播发送帧

为了发送已渲染的扫描线,这一过程根据主机型号的不同(AES或MVS)而有所变化。

家用版增加了一个视频编码器来生成复合信号和RGB信号。 A/V接口与SMSMD 的类似,但不能互换。

MVS版则没有这样的设置,因为JAMMA协议将这项任务留给了街机柜的显示器。 所以主板发送的是原始RGB+同步信号。


Previous: 3. 中央处理器 (CPU)

Next: 5. 音频


Rodrigo Copetti © 2026 RSS Feed

切换至现代版

主页 · 文章 · 支持 · 关于作者 · 关于此网站