世嘉土星官方开发套件中配备了一款功能强大的CD模拟器(图)。借助这款模拟器,开发者能够将CD - ROM中的数据精准地拷贝到SCSI硬盘上。在实际操作中,只需将特制的HDL适配卡插入扩展卡槽,便可通过SCSI接口与MPEG VCD端口的I/O通道控制实现无缝连接。
Mirage CD模拟器


官方推出的Mirage CD模拟器,乃是世嘉开发工具部门Cross Products于1995年精心打造的世嘉土星CartDev开发工具包中的关键组件。这一开发平台基于SCSI通信构建,土星硬件需与世嘉CartDev开发套件的主处理器紧密相连,协同运作。
当Mirage CD模拟器与目标机器或土星游戏机成功连接时,它便化身为一个完整且基于硬件的实时CD - ROM模拟系统,能够无缝且透明地替代该机器的CD - ROM驱动器。它具备直接从文件进行模拟的强大能力,可精准复现所有目标CD机制的全部功能与精确时序。尤为值得一提的是,Mirage凭借极高性能的双SCSI总线,不仅能够直接从文件实现全速模拟,还能即时执行CD编码操作。
通过这一I/O通道控制,开发者能够高效地管理和传输CD - ROM的块数据,并完成CD块时序控制的精细处理。值得一提的是,该CD模拟器是在土星主板的Bus总线上加载CD - ROM(模拟光驱)来运行游戏,这种独特的设计使其性能远超物理光驱。
从速度方面来看,这款CD模拟器采用了4倍速设计,而传统的物理光驱仅为2倍速。这意味着在读取和处理游戏数据时,CD模拟器能够显著缩短等待时间,为游戏开发和测试带来更高的效率。
下面,让我们一同聆听土星官方Mirage CD模拟器开发者的一段珍贵回忆:“回溯到1993年左右,我为土星开发了交叉编译器(CodeScape)的硬件接口(卡槽)以及CD模拟器。时光荏苒,25多年后再度审视它,心中满是别样的感慨!事实上,我还为其他游戏机开发了大量ICE和模拟器硬件。当时,我在英国为一家名为Cross Products的公司效力。土星配备了2xSH2 CPU和68K声音处理器,不过如今相关信息已十分稀缺。它基本上采用了一个SCSI2接口,主要用于数据的下载与上传。CD模拟器就如同一个巧妙的开关,能够在个人电脑和土星之间灵活复用SCSI2硬盘。我们将光盘镜像存储在硬盘上,而后由土星启动它。(此处依据记忆所述,可能存在偏差)我借助FPGA/CPLD完成了SCSI2的所有内存映射工作,并选用一些DPRAM作为串行转换器的接口,以便利用RS422缓冲器加载CD。模拟器上配备了FPGA(采用Xilinx3000系列和一个XC95xxxCPLDIIR)、DPRAM,并以一个SH2作为主CPU,此外还设有前面板LCD和按钮。我那些才华横溢的同事们负责开发了模拟器上的固件。我当时的老板是一位在游戏编程领域声名远扬的专家,他是一位杰出的人物,身边汇聚了众多才华横溢之士。在我的职业生涯中,能够与这样卓越的团队并肩作战,我深感自豪。在利兹那栋不起眼的小楼里,可谓是人才济济!如今,我投身于ASIC和高复杂度FPGA的开发工作。”
据原世嘉开发工具部门Cross Products另一位工程师反馈,他们为Mirage CD模拟器提供了SCSI层框架,该框架内置了土星多处理器I/O位移运算操作符,以及总线数据传输与通信控制的块函数调用协议。这一框架有力地保障了土星能够在CartDev开发套件的主处理器上稳定、可靠地运行游戏ROM。
世嘉土星官方开发套件(硬件)
CartDev Rev.A 第一版 Sophia 开发套件

CartDev Rev.B (SNASM2) 开发套件
它最初是制作Saturn软件的第三方替代工具 , 在Cross Products被美国世嘉公司完全收购后,SNASM2被世嘉采用作为官方开发套件。
Cross Products 是一家总部位于英国的公司,专门为各种游戏机打造开发套件,其最成功的产品是世嘉 MegaDrive 系列产品。因此,世嘉土星发布后,他们也积极参与,基于 SNASM2 系列开发套件打造了自己的开发套件,名为 Cross Saturn。 这些系统附带的软件开发工具包也由 Cross Products 提供,并以 SNASM2 SDK 为品牌名称。该工具包提供了创建 Saturn 游戏所需的所有标准库、编译器和其他构建工具。



Psy-Q Sega Saturn 第3方竞争性开发套件。由被索尼收购的Sn Systems & Psygnosis合作开发,使用相同的跨平台开发方法为Sega Saturn和PS1进行开发。


世嘉土星民间ODE(CD模拟器)
Saroo ODE:世嘉土星开发工具SNASM2中SCSI HDL适配卡的模仿与探索
在硬件开发领域,Saroo对世嘉土星开发工具SNASM2中的SCSI HDL卡进行了抄板尝试,旨在探索世嘉土星的光驱模拟技术,为开发和模拟提供更高效的解决方案。
硬件基础与CD模拟机制
Saroo v1.2版本选用了STM32H750 Cortex - M7 MCU,其主频高达400MHz。该版本创新性地将STM32H750的MCU SRAM作为接口,用于利用CDC缓存加载CD数据。在土星CD模拟方面,借助Yabause公布的SMPC(土星微控制器系统管理和外设控制,内置程序ROM的日立4位MCU)文档信息,Saroo成功完成了SMPC配置下的I/O内存资源映射表与总线结构的构建,同时对FPGA内部也进行了重新配置。然而,尽管取得了这一重大进展,MCU的嵌入式SRAM却存在一个关键问题。它无法像世嘉土星实机CD Block那样提供相同的低延迟,难以满足所有请求,这导致数据在传输过程中经常会出现损坏的情况。
软件优化与改进尝试
面对数据损坏的问题,Saroo积极寻找解决方案,并将目光投向了Satiator开发者詹姆斯·莱德温的方案,在软件优化上,对于时钟要求高(低延迟定时信号处理)的游戏,Satiator采用外挂方式为镜像添加读取延时文件,并对ROM固件库函数、程序以及数据结构进行了优化。这些举措在一定程度上改善了缺少SCSI层框架情况下的数据传输与通信控制,使得该版本被认为“近乎完美”。
技术瓶颈与兼容性问题
Saroo在发展过程中仍面临着诸多技术瓶颈。在SMPC配置下的I/O内存资源映射表与总线结构中,由于缺少必要的SCSI层框架(多处理器I/O位移运算操作符、总线数据传输与通信控制的块函数调用协议),在一致性处理上无法自适应地根据多处理器I/O应用进行动态调整,存在指标失灵的技术盲点。这使得始终会有一些游戏运行效果不佳,甚至无法运行。
世嘉土星总线规范,首度揭秘!
从世嘉土星开发文档来看,土星的系统总线采用的是SCSI规范,SCSI定义了一种并行协议,主要是用于数据传输和通信控制的块协议。
世嘉开发工具部Cross Products为Mirage CD模拟器提供有SCSI层框架,该框架内置了土星多处理器I/O位移运算操作符,以及总线数据传输与通信控制的块函数调用协议。这一框架有力地保障了土星能够在CartDev开发套件的主处理器上稳定、可靠地运行游戏ROM。
从框架层面来看,视图层负责以给定的样式展现数据并反馈事件给逻辑层。逻辑层由土星总线仲裁器(由一个带有cpu_dma的XOR门组成,当CPU繁忙时为“1”,on_off开关作为输入,仲裁器是通向内存模块的通道)通过异或可逆运算(XOR)指令(按位异或:对应的二进制位相同时出0,不同出1)负责添加等待状态,用于控制内存和处理器I/O位移之间的数据路径流。通过IPL内部控制链路代码进行交互及传输数据,视图层总线数据传输与通信控制的块函数调用协议则作用于软硬件之间状态融合。
土星时序处理与总线规范挑战
土星的时序处理是由多处理器时钟共同完成的。在总线主循环中,时钟会按照SCU、SH2、DSP、SCSP、68000、CD区块的顺序进行处理,时钟变化由系统库提供。当加大单指令块循环处理的时钟数时,数据传输速率会有所上升,但兼容性却会降低。对于开发者而言,土星总线规范虽然为他们指明了最终的路径优化方向,但难点在于需要精确模拟总线仲裁功能,对多处理器时钟周期全局变量进行精确仿真,实现一致性处理基于数据自适应动态调整,以解决余下运行不好或仍无法运行的游戏,从而实现100%完全兼容。
与官方方案的差异及功能局限
在零售版土星上,官方HDL适配卡使用MPEG Vidio CD端口I/O通道控制传输CD - ROM块数据。Satiator开发者詹姆斯·莱德温凭借对CPU工作原理的深入了解,找到了CD Block ROM带有的SH - 1通道指令代码(位移运算非对称密钥)。该指令用于从土星MPEG Vidio CD端口(传输未压缩视频和CD数字音频)解码和加载SH - 1代码时使用,通过MPEG VCD端口I/O通道控制(位移运算,变量基于问答符交换)管理、传输CD - ROM块数据,完成CD块时序控制处理(为指令的执行提供定时信号)。
Saroo不兼容土星MPEG Vidio CD端口I/O通道控制,能直接从块数据文件进行全速加载,但不能即时执行所有CD编码,仅官方CD模拟器SCSI HDL适配卡能够精确模拟土星所有目标CD机制的功能和时序。本质上Saroo是对官方方案的模仿和探索。
位运算优化与现状总结
位运算作为一种对二进制数据进行操作的技术,能够实现对单个位或一组位的操作,对于处理各种硬件设备和通信协议非常有用。在一定程度上,它可以优化CD Block ROM块的定时信号处理。对于时钟要求高(低延迟定时信号处理)的游戏,Satiator以外挂方式为镜像添加读取延时文件,并优化ROM固件库函数、程序、数据结构,略微改善了缺少SCSI层框架情况下的数据传输与通信控制。然而,其基本性质并未改变,一致性处理仍然无法自适应地根据多处理器I/O应用进行动态调整,兼容性方面始终存在一些问题,部分游戏运行效果不佳甚至无法运行。
扩展阅读:通道控制
通道控制是一个独立于CPU的专管输入/输出控制的处理机,它负责控制设备与内存直接进行数据交换。引入通道的目的是使数据的传输独立于CPU,让CPU从繁重的I/O工作中解脱出来。通道控制有自己的通道指令,这些指令受CPU启动,并在操作结束时向CPU发中断信号。通道控制方式与DMA控制方式类似,是一种以内存为中心,实现设备与内存直接交换数据的控制方式。与DMA控制方式相比,通道方式所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了CPU负担。I/O通道控制方式是对DMA控制方式的发展,它进一步减少了CPU参与到数据传输的控制,将对一个数据块的读/写为单位的干预,减少为对数据块的读/写及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备的并行操作,从而更有效地提高整个系统的资源利用率。在通道控制方式中,CPU只需发出启动指令,指出要求通道执行的操作和使用的I/O设备,该指令就可以启动通道并使该通道从内存中调出相应的通道程序执行。
问题同样适用于MiSTer FPGA Saturn内核
根据FPGA解决方案,在土星上实现起来更加困难,FMV出现流媒体问题及同步中断、BGM、显示效果有问题或无法运行,不存在完美的兼容性,因为都需要编程,如果程序不正确,自然就不能正常工作。
——————
SS模拟器的声音表现
土星在音频系统上具备高度技术性,其核心组件包括采样器、合成器和效果器,这些均由摩托罗拉68k CPU与一个定制的32通道雅马哈FM/PCM声音处理器YMF292(SCSP)协同工作。SCSP声音处理器还内置了一个DSP(数字信号处理器),该DSP拥有独立的RAM和DAC(数模转换器)芯片,进一步增强了声音处理能力。
SS模拟器音频系统仿真分析
FM合成器音色与DSP后处理音效的区别
在模拟土星声音系统的过程中,FM合成器音色与DSP后处理音效的再现程度是衡量模拟器性能的重要指标。根据相关资料,不同模拟器在这方面的表现如下:
SSF PreviewVer:获得了与实机相当的高分(10分),并且在高动态范围方面甚至超越了实机。
Mednafen Saturn:得分为6分,未能实现SCSP-DSP汇编动态链接库,这在一定程度上影响了音效的仿真效果。
Yaba Sanshiro:得分为3分,其及其衍生版本(如Yabause和Kronos)均未能有效模拟SCSP这种定制声音处理器。
音源采样与效果处理对比
与土星实机相比,模拟器在音源采样和效果处理上的表现也存在差异:
SSF PreviewVer:PCM音频采样率为44.1KHz,位深为15bit,略高于实机的13bit,接近CD标准的16bit,从而提供了更优质的音色表现。
Mednafen Saturn:虽然自2016年开始支持SS模拟,但由于SCSP-DSP硬件算法的复杂性,其开发者表示尚未实现SCSP-DSP汇编动态库,目前采用传统静态编译处理,导致音效仿真受限。
Yaba Sanshiro与Mednafen Saturn类似,在采样和效果处理上均较为简单和微弱。
位深与音色真实性的关系
位深对音色的影响:位深越大,信噪比和动态范围越好,从而能够呈现出更真实、生动的音色。例如,SSF PreviewVer的15bit采样精度相较于实机的13bit,提供了更宽的动态范围和更细腻的音色表现。
实际动态范围的考虑:尽管理论上位深越大越好,但录音和播放设备通常会有一定的底噪,导致实际有意义的位深可能低于理论值。在实际应用中,80dB左右的动态范围对于一般轻音乐录音已足够,但对于大动态录音作品可能存在一定的动态压缩影响。
综上所述,SS模拟器在声音表现方面存在显著的差异,其中SSF PreviewVer在仿真效果上较为出色,而Mednafen Saturn和Yaba Sanshiro则存在一定的局限性。