相关影像
型号
主板
图示
简介
世嘉 Dreamcast 与前代产品(Saturn,译注:即世嘉土星)相比推出了许多新功能,以吸引游戏开发商和游戏机玩家。 Dreamcast是世嘉最后一次尝试征服游戏主机市场,上面首创的一些技术延续了下来,并被未来的主流设备所采用。
中央处理器 (CPU)
日立公司的开发一切顺利,其标志性的SuperH系列芯片已经获得了多个客户,现在公司已经准备好推出该系列的第四代产品。 他们的新产品将嵌入式功能与3D游戏的功能相结合。
作为SuperH系列处理器的早期使用者之一,世嘉理所应当地选择了日立的最新产品来为自家的新游戏机提供动力 因此,Dreamcast搭载了一个以高达200 MHz[1] 运行的SH-4 CPU。 此外,这次为了让事情变得顺畅(译注:上一代土星是多cpu,带来了开发中的很大麻烦),将只采用一个更加齐备的CPU。
产品
话虽如此,这款新处理器有什么有趣的地方呢?
好的,首先来说,SH-4作为先前型号的超集,意味着它继承了SuperH系列的所有现有特性,包括32位RISC架构、五级流水线和16位指令集。 不过它也继承了控制危害。
最重要的是,作为下一代CPU,它首次推出了许多超出嵌入式应用程序范围的改进[2]:
- 2路超标量流水线:一种新颖的并行技术,其中CPU可以在流水线的每个阶段处理多个指令(在本例中为两个)。 这使得每秒可以执行更多指令。
- 在幕后,CPU将两条指令分发到两个不同的(可用的)执行单元。 因此,除了一个非常小的组之外,所有指令都必须具有不同的类型(即分支、算术等)才能并行化[3]。 否则,它们只能按顺序执行。 不管怎样,SH-4还展示了一个永远无法并行化的指令子集,因为它们包含太多依赖项而无法使其可并行。
- 8 KB指令高速缓存和16 KB数据高速缓存:这个比例相当奇怪,因为游戏机往往包含比数据高速缓存更多的指令高速缓存。 不过,SH-4允许将数据高速缓存分成两个部分:8 KB的Scratchpad(快速RAM)和8 KB的数据高速缓存。
特别工作
游戏机CPU的常见杂务包括处理游戏逻辑、运行敌方AI以及为GPU提供绘图任务。
您可以看到Dreamcast的GPU仅涵盖光栅化器的任务。 因此,CPU必须参与大多数图形管道。 这意味着CPU将处理大量几何数据(例如计算透视变换)。 现在,为了确保CPU能够承担这一角色,世嘉和日立合作将两个关键的附加功能整合到SH-4中。
第一个添加是专用的64位浮点单元(FPU)。 该组件计算符合IEEE-754标准的32位小数(所谓的“单精度”或“浮点数”)或64位小数(“双精度”或“双精度”类型)。 它的寄存器文件由32个32位寄存器组成,但它们也可以组合成不同的一组16个64位寄存器,这就是该单元能够双倍运行的原因。
如果这还不够,日立在FPU上向前迈进了一步,并采用了额外由八个128位寄存器组成的逻辑来形成另一个寄存器组。 在这其中,每个寄存器现在存储四个32位浮点数,或者换句话说,128位向量。 这种格式最适配图形化处理的相关操作。
为了充分利用新的向量,FPU包括乐操作它们的专门指令,当然也很像土星控制单元提供的那样,只不过行业现在更加标准化了。 这些新指令构成通常称为单指令多数据(SIMD),并且可以执行以下代数运算:
- 点积。
- 平方和。
- 矩阵乘法。
第二个添加是SH-4的外部总线,它现在是64位宽,使CPU能够同时传输32位键值对。 这是另一个改进用以增加这个CPU的整体性能。
内存和访问
Dreamcast包含16 MB的SDRAM,它使用100 MHz总线(CPU速度的一半)直接连接到CPU。
相对的,内存的数据总线只有32位宽[4]。 这是否意味着CPU闪亮的64位总线被浪费了? 并不是,因为RAM是使用两个8 MB存储体安装的。 因此,每个芯片都连接到CPU的一半总线。
为了访问这个内存,CPU包括一个专用的内存管理单元或“MMU”用于虚拟寻址,这是很有效的,因为这个CPU的物理内存地址空间恰好是29位宽。 此外,由于结合了四个地址变换高速缓存(TLB),程序员可以使用32位地址而不会受到性能损失。
现在,由于寻址只需要29位,额外的三位分别控制内存保护、交替内存映射和绕过缓存[[5]][6]。
最终,由程序员决定是否使用这些功能。 这个系统的游戏确实不需要内存保护,并且MMU(内存管理单元)必须在启动时手动启用。
没有UMA,但是…
虽然该系统不像其他知名竞争对手那样围绕严格的统一内存架构(UMA)设计,但它确实将I/O访问委托给GPU。 这意味着,如果CPU必须获取超出其专用RAM或串行接口(已连接)的任何内容,它将不得不请求GPU并在必要时等待。
该CPU还具有称为并行I/O或“PIO”的独特功能,用于同时操作多个I/O位置。 世嘉连接了这些引脚,以便CPU可以操作GPU的视频模式(更多详细信息将在本文“图形”部分中解释)。
终局
即便在描述了所有这些优点之后,恐怕SuperH系列在其最后一位主要用户Dreamcast离开市场后,并没有取得显著的进步。 SH-4普及后,日立(或瑞萨电子,目前的所有者)无法复制同样的成功水准,考虑到嵌入式/手持设备市场此后一直青睐ARM(多亏了StrongARM),我认为瑞萨不会很快在任意近期继续日立的发明。
然而,对于计算这件事的好处是,技术进步往往会超越品牌和公司的界限。 例如,SH的压缩指令技术延续了ARM的Thumb mode(辅助16位ISA)[7]。 此外,在2012年,一个志愿者驱动的项目开始生产与SuperH兼容的现代CPU,称为“J2”[8]。
图形
GPU封装是一个名为Holly的定制芯片,运行频率为100 MHz。 与以前的内部设计不同,世嘉现在与VideoLogic(现称为Imagination Technologies)合作,由他们提供具有竞争力的3D加速器。
在Holly内部,我们可以找到VideoLogic的独家图形电路,称为PowerVR2(也称为“PowerVR Series2”和“CLX2”),它基于他们之前的PowerVR GPU,但是是专为Dreamcast量身定制的。
架构
VideoLogic选择了一种替代方法来构建他们的3D引擎,称为基于图块的延迟渲染(TBDR)。
TBDR不是一次渲染整个帧(如传统的即时模式渲染器或’IMR’做[9]),而是将渲染区域划分为称为“图块”的多个部分。 然后,它对每个图块单独执行渲染过程,并将结果组合起来形成最终帧[10]。
这种创新的设计带来了一些有趣的优势:
- 它可以大大进行并行化,从而显着降低带宽和功耗。
- 它通过自动从前到后对多边形进行排序,然后在管道的第一阶段执行z轴测试,从而实现了对可见性问题的巧妙解决方案。 这些任务的组合不仅解决了原来的问题,而且可以防止多次绘制(隐藏多边形的光栅化),毕竟重绘将会浪费资源并降低性能。
毫不奇怪,Imagination将这项高效技术向前推进,构建了4系列的PowerVR内核,为数量惊人的设备提供动力,包括第一代iPhone、iPhone3G、诺基亚N95和戴尔的Axim x51。
构建
让我们来看看Dreamcast的GPU的两个主要组件[11]:
图块加速器
在渲染过程开始之前,称为图块加速器的组件执行预处理。 它首先分配了几个32x32的图块容器,几何图形将会被渲染到这些容器中。
然后,图块加速器将:
- 获取CPU发出的几何数据和绘图命令(使用DMA或传统传输)。
- 将此数据转换为内部格式。
- 根据其坐标将几何分布到每个容器。 被裁剪的几何图形也会被丢弃。
- 生成生成的显示列表。
然后由3D引擎解释这些显示列表:PowerVR2。
PowerVR2 核心
在这里图形被赋予了生命,从TA(译注:纹理地址单元/Texture Address Unit)接收到的显示列表告诉核心使用内部帧缓冲区 来渲染单个图块的几何图形。 过程如下:
- 图像合成处理器或“ISP”获取基元(三角形或四边形)并执行隐藏表面去除以去除看不见的多边形。 然后,在计算其Z轴缓冲区和模板缓冲区后,数据通过深度测试以避免渲染会出现在其他多边形后面的多边形,如果它们位于2D多边形后面则不可见的几何图形(也称为遮罩),就会通过模板测试以剔除。
- 纹理和阴影处理器或“TSP”在图块区域上应用着色、阴影和多种效果。
- 在导出图块之前不会应用纹理,这意味着出现的重绘(如果有)不会降低填充率。
这些操作完成后,渲染好的图块被写入VRAM中的主帧缓冲区。 这一过程将一直重复直到所有图块都得到处理为止。 一旦完成,生成的帧缓冲区由视频编码器拾取并通过视频信号发送。
全景
除了明显的架构差异之外,纹理和着色处理器还具有许多功能,可以让人们了解这台游戏机与旧的土星差距多大。 以下是一些值得注意的例子:
- Alpha混合:组合重叠图层的颜色以实现透明效果。
- 在这个系统中所使用的实现透明度的方法被称为顺序无关透明度 该算法在混合颜色之前自动对图元进行排序,虽然这减慢了渲染过程,但避免了依赖游戏本身手动进行的所有排序。 也因为如此,Dreamcast游戏擅长显示透明对象。
- 结合基于图块的系统,顺序独立透明度完全解决了以前的显示灾难。
- Mip-Map:根据所需的详细级别自动选择纹理的缩小版本。 这样做是为了防止处理远离相机的大纹理(这将浪费处理能力并产生锯齿现象)。
- 环境映射:对纹理应用反射。
- 双线性、三线性和各向异性过滤:这些是用于平滑纹理和防止像素化的不同算法。 它们按“最差”到“最佳”排序,其中每一个的结果质量与所需的计算量成正比。
- 这是从土星以来一个巨大的进步,因为前者没有提供任何纹理过滤器!
- 凹凸映射:在不额外消耗多边形的情况下模拟表面缺陷。
获取细节
Holly现在可以绘制比其前代多10倍的多边形,这里有一个之前和之后示例,展示了模型设计如何不再受限制。 试着调整他们!
视频模式
视频系统被设计为支持多种类型的屏幕和格式,因此视频编码器输出到一个统一形状的插口,该插口支持以下类型的信号:
- 复合视频接口(译注:就是AV线):将显示视频所需的三个信号(色度、亮度和同步)组合成一个信号,只需要一根单针电缆。
- 这是用于旧的PAL和NTSC电视与RCA连接。
- S-Video:结合亮度和同步,同时保持色度分离(总共两条视频线)。
- RGB:发送单独的红-绿-蓝信号并提供不同的同步类型可供选择(复合同步或从视频合成或S-Video中提取)。
- SCART电缆将使用这种类型。
- VGA:将RGB与两个同步信号(水平和垂直)相结合,总共徐亚五条视频线。 这使得能够在逐行模式下显示尽可能高的分辨率(720x480),因此这种模式通常被称为‘480p’。 VGA在当时实际上已经成为计算机显示器使用的标准格式/介质一段时间了。
- 为了使用这种类型,世嘉提供了一个VGA适配器作为额外的配件。
Dreamcast 无法同时对所有这些信号进行编码,因此 GPU 和音频处理器包含了一个名为 图像模式 的寄存器,用于协调哪些视频/音频总线会被激活以生成所需的信号。 CPU检测插入的电缆类型(通过检查视频连接器的哪些“选择位”处于活动状态)并将所需值写入GPU。 最后,这些值被转发到音频处理器。
由于VGA严格来说是一种逐行信号(与传统的隔行扫描相反),因此仅为隔行扫描视频设计的游戏会出现一些兼容性问题。 这些游戏会在其代码中明确声明不会在VGA上显示,这将让CPU阻止游戏执行,直到用户将VGA电缆换成另一种类型。
音频
音频功能由雅马哈制造的名为AICA的定制芯片处理,它是土星中使用的SCSP的改进版本,由四个组件组成:
- 声音集成电路或“IC”:一组模块(合成器、DSP和混音器),用于生成音频信号并对其施加效果。 它支持多达64个PCM通道,分辨率为16或8位,采样率为44.1 kHz。 总的来说,这是播放音频的最佳质量。
- 此外,它还包括一个ADPCM解码器,用以减轻CPU的部分工作负担。
- 奇怪的是,它还提供了两个MIDI引脚来连接MIDI乐器,尽管这是在开发过程中使用的。
- 2 MB的SDRAM:存储声音数据和程序。 它由主CPU使用DMA填充。
- 运行频率为~2.82 MHz的ARM7DI:控制声音IC。 该CPU通过启动存储在SRAM中的小型软件(称为驱动程序)进行编程,该软件解释音频数据并相应地操作声音IC。
- 如果您想知道的话,在Game Boy Advance中也可以找到类似但更强大的CPU。
- 内存控制器:接口连接2 MB的SDRAM。
为了帮助开发,官方SDK包含多个满足不同需求(排序、解码等)的声音驱动程序。
进化
自从Mega Drive/Genesis(译注:日版和美版MD)问世以来,我们已经走了这么远,为了展示声音合成取得了很大的进步。这里有两个游戏的例子,一个是Mega Drive,另一个是Dreamcast,它们使用了相同的作品:
如果您想在播放乐谱时在两者之间切换,也可以尝试此小部件:
补充说明
索尼克大冒险的作曲家并没有对FM芯片进行编程,而是在内部制作了他们的配乐,然后将其编码为“ADX”,这是一种由CRI中间件开发的有损格式。 因此,它只使用64个PCM通道(立体声)中的两个。
ADX压缩使游戏能够解码并将数据从GD-ROM流式传输到声卡IC,而不会运行内存溢出或带宽。 此外,也可以通过多种方式实现相应的驱动程序,因为有多种方法可以平衡主CPU和ARM7的工作负载。
保持活动状态
不知何故,该芯片还负责为BIOS提供实时时钟(RTC),它还连接到时钟电池以在没有交流电源的情况下继续工作。
操作系统
有2 MB的“系统ROM”存储BIOS。 这是CPU在启动时读取的第一个位置。 ROM中包含的代码指示CPU要么启动游戏,要么显示交互界面。
此外,BIOS还包含游戏可用于简化I/O功能的例程[13],例如从GD-ROM驱动器读取数据。
交互界面
就像世嘉土星一样,如果没有插入有效的游戏光盘,游戏机将启动一个可视交互界面。
界面包含一个简单的图形用户交互界面,使用户能够执行基本但必要的任务,例如:
- 开始游戏,如果它并没有在执行。
- 操作存储在VMU中的保存数据(稍后会解释有关此设备的更多详细信息)。
- 如果插入了音频CD,则播放音乐。
- 更改某些设置,如日期、时间、声音等。
Windows CE
自从Dreamcast宣布之后,就被传成该游戏机是运行Windows CE的。 事实上,您只需查看游戏机的A面即可注意到Microsoft的logo…… 这是怎么回事?
首先,Windows CE到底是什么? 这只是微软在90年代中期开始的众多项目之一,旨在征服传统个人电脑市场之外的领域。 随着比x86更高效的中央处理器架构和手持设备的出现,微软的一个新团队负责将Windows生态系统引入这些新设备[14]。
这导致了Windows CE的诞生:一个完整的操作系统,从头开始开发,同时还提供了现有Windows API、开发工具和服务的子集。
与Windows 95或NT不同,新系统具有以下优点:
- 它运行在各种CPU架构[15] 上,包括SuperH甚至NEC/MIPS VR4300(任天堂64使用)。
- 它的设计考虑了受限的硬件,例如有限的电源(AA电池)、内存(2 MB RAM)和存储(4 MB ROM)。
此外,Windows CE作为一组构建块出售给制造商,允许他们挑选要捆绑的组件。 然后,制造商可以将其集成到各种硬件中(例如手持设备、零售点终端甚至汽车系统里)。 不管怎样,Windows CE作为掌上电脑(PDA的前身)的操作系统获得了重要的关注,有效地与Apple Newton和Palm竞争。
随着90年代后期手机行业的蓬勃发展,微软利用Windows CE的模块化构建了PocketPC,这是另一个完全专注于PDA和手机的操作系统(后来称为“Windows Mobile”)。
那么,所有这些和Dreamcast有什么关系呢? 在那阶段的某个时候,微软和世嘉提出了为Dreamcast[16] 制作Windows CE包的想法。 毕竟,Windows CE已经运行在日立的CPU之上。 最后,这并没有在完整的桌面界面或与微软在线服务的集成中实现。 与之替代的是,它是作为充当可选抽象层以简化硬件操作而存在的。
与任天堂提供的Nintendo 64类似,微软发布了一个基于Windows CE的SDK(通常称为Dragon SDK),用于为世嘉Dreamcast编写应用程序。 这些库包括CE的一个子集,其中包含辅助图形、音频和调试所需的最少组件。 作为“加入微软俱乐部”的一部分,开发人员现在可以利用微软的明星IDE(Visual Studio 6.0)和VisualC++6.0进行开发。
一些开发人员发现这个选项非常有吸引力。 由于CE中包含的音频/图形框架正是DirectX 6,因此理论上,大量PC游戏可以轻松移植到Dreamcast。 然而,Dreamcast和传统PC之间的架构差异太大,不容忽视。 因此最终,程序员必须经过大量优化才能达到最佳性能[17]。 此外,由于Dreamcast的BIOS没有捆绑任何Microsoft的框架,因此SDK必须静态链接到游戏。 因此,与世嘉接近硬件级别的库相比,Dragon SDK增加了游戏的加载时间(毕竟,必须从游戏光盘上加载一个单独的操作系统层),并且在整个游戏运行过程中,Windows CE层消耗了大量的资源。
总之,“Windows CE for Dreamcast”只是开发人员选择的辅助SDK。 尽管如此,相当多的Dreamcast游戏最终还是利用了它。
顺便说下,如果你对Windows CE和Windows Mobile的命运感到好奇,那么可以告诉你,微软在手持设备市场的情况并不特别好。 Windows CE于2013年被放弃。 而在前一年,Windows Mobile基于CE的核心也被Windows NT取代(与基于桌面的Windows 8保持一致)。 尽管如此,Windows Mobile最终宣告了对新平台(安卓和iOS)的败北宣言,并于2019年停产。
I/O
GPU还包括另一个用于处理大部分I/O的模块,称为系统总线。 它提供以下接口:
- G1接口:可以访问BIOS ROM及其保存的配置和GD-ROM内容。
- G2接口:提供对调制解调器和声音控制器的访问。
- Maple接口:在控制器(以及连接到它们的附件)和CPU之间传输数据块。 它是一个串行总线并提供专用的DMA。
- SH-4接口:连接主CPU以进行通用通信。
- DDT接口:控制CPU总线以在DMA传输期间访问其主存储器。
- PVR接口:使用专用DMA将CPU与图块加速器连接起来。
游戏
开发主要用C或C++开发完成。 起初,C是最被推荐的选择,因为可用的C++编译器最初在功能(和质量)上非常有限。
世嘉还提供了开发硬件,形式类似于一台PC塔式机,被称为Sega Katana 开发盒(译注:当年妖刀katana也是DC的开发代号)。 这包含用于开发的增强I/O的Dreamcast硬件。 它还附带一张CD,其中包含要安装在Windows 98 PC上的官方Katana SDK。
如前所述,开发人员还可以选择在Sega之上采用Microsoft的Dragon SDK。 在这种情况下,DirectX 6.0和VisualC++6.0也可以用。
存储介质
游戏存储在GD-ROM中,它们只是具有更高坑密度(达到千兆字节容量)的CD-ROM。 速度是12倍速,与土星的2倍速光驱相比,这至少不算太寒酸。
在线平台
Dreamcast附带安装了调制解调器模块,游戏可以使用该模块“拨号联网”在线游戏的拨号服务。 世嘉提供了两项服务:世嘉网(在美国和日本使用)和梦幻竞技场(欧洲同行)。
玩家使用DreamKey注册服务,这是与一些游戏捆绑在一起的额外光盘。 DreamKey提供了一个网络浏览器来注册一个帐户。 最初,DreamKey是根据地区预设的服务,但后来的修订允许用户更改其ISP设置以连接到其中任何一个。
还有一个Dreamcast品牌的键盘和鼠标可供购买,方便喜欢用PC风格上网的用户。
不幸的是,世嘉网和梦想竞技场在推出两年后就停止服务了。 因此,完全依赖它们的游戏变得无法使用,除非使用额外的工具(如DreamPi,一种在用户社区维护的服务器的帮助下复制它们的树莓派映像)来模拟这些服务。
交互式存储卡
Dreamcast的另一个创新功能是视觉记忆单元或称之为“VMU”。 它连接到控制器上,并且除了作为记忆卡之外,还是一个完全功能的设备,包括[18]:
- ASanyo LC86K87:8位低功耗CPU。
- 具有四个附加图标的32x48单色LCD:使用196 BXRAM(外部RAM)作为帧缓冲区命令。
- 两个串行连接器:一个用于输入,另一个用于输出。
- 六个物理按钮:当VMU与控制器分离时使用。
- A16 KB Mask-ROM:存储BIOS-IPL。
- 64 KB的Flash:32 KB用于存储单个程序(从游戏机传输),另32 KB用于保存Dreamcast的游戏存档。
- RAM的512 B:为系统保留256 B,只留下256 B可用于程序。
VMU有两种操作模式:
- 插在手柄上:官方手柄有两个插槽来连接VMU和其他形状相同的配件,如果VMU插入第一个插槽(从手柄正面可见),它可以在游戏过程中显示图像。 此外,Dreamcast可以在VMU上存储存档和程序。
- 与控制器分离:该小工具变成了带有时钟和保存管理器的类似Tamagotchi(译注:宠物蛋,万代南梦宫出的,俗称拓麻歌子)的设备,并且还可以运行Dreamcast之前传输的任何程序。 两个VMU也可以连接以共享内容。
反盗版&自制
使用专有的GD-ROM格式有助于禁止生产未经授权的游戏副本(并在其他游戏机上运行它们)。 Dreamcast游戏也是区域锁定的,这意味着游戏机将拒绝运行不同区域的游戏。
破解
实际上,由于世嘉留下了一个巨大的后门:MIL-CD,这将导致其反盗版措施完全没用。 音乐互动直播光盘或“MIL-CD”是世嘉创建的一种格式,用于通过互动节目扩展音频光盘… Dreamcast被设计与它兼容[19]。
最终,未经世嘉批准,未经授权的商业光盘(作弊加载器、电影播放器等)伪装成MIL-CD在游戏机上运行。 后来,不同的黑客社区剖析了这个漏洞,并想出了一个使用CD-ROM启动盗版游戏的变通方法。 这引起了一股势不可挡的ISO网上发布浪潮。
之后出现了一些问题:尽管GD-ROM可以存储1GB的数据,但CD-ROM只能容纳大约700MB,那么“破解者”如何才能将较大的游戏压缩以适应CD呢? 最终想出了通过重新压缩音乐和图形,直到它缩减到合适的大小。 他们甚至尝试将其分成两张盘来解决这个问题。 毕竟,游戏数据不再是一个单一的整体(像旧式的卡带那样),而是现在被组织成文件和目录的层级结构。
这就是全部了,伙计们。
对它的年龄来说不算太糟糕!
我希望你喜欢这篇文章。 我在大学最后一年开始时完成了它。
从现在开始我可能会很忙,但是我确实喜欢写这些文章,所以希望你能在几周内收到下一篇文章!
下篇文章见!
Rodrigo