立即注册 登录
肖琪模拟游戏站 返回首页

红莲火焰的个人空间 https://bbs.xqemu.cn/?5037 [收藏] [复制] [分享] [RSS]

日志

SEGA Saturn 模拟效能研究

热度 1已有 179 次阅读2025-4-7 18:17 |个人分类:模拟日志

 —— 原创文章,转载请注明出处

       关于世嘉土星模拟的最新状况

       当前值得关注的土星模拟器
       目前,有三款土星模拟器尤为引人注目,它们分别是SSF、Mednafen以及Kronos。这些模拟器在不断的发展与优化中,为土星游戏的模拟体验带来了显著的提升。

       土星模拟器的健康状态
       土星模拟器当前正处于一个非常健康且活跃的发展阶段。其中,SSF与Mednafen两款模拟器尤为突出,它们经过广泛的兼容性测试(可参考www.segasaturn.org),已经能够正常模拟大多数SS游戏。

       模拟器之间的比较与建议
‌       SSF与Mednafen‌:这两款模拟器在兼容性方面各有千秋,虽然在一些特定游戏的模拟上存在细微差异,但总体上均表现出色。
‌       使用建议‌:鉴于两者在兼容性上的互补性,在实际使用中,可以根据所玩游戏的具体表现,选择一款作为主力模拟器,另一款则作为备用或辅助。

————————

‌       世嘉土星官方CD模拟器

‌       搭载CD模拟器的零售版土星

‌       世嘉土星SCSI HDL适配卡

       世嘉土星官方开发套件中配备了一款功能强大的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则存在一定的局限性。


       SSF实现土星DSP实时数字音效处理
       SSF Test Version (18.01.03) (Sega Saturn Emulator for WIN)
       SSFに関しては以下の修正が出来ればいいなぁ おそらくバグってるSCSP-DSP処理 バーニングレンジャーなどフェードアウト後にゴミが残る現象 VDP2のビットマップの表示不具合 BIOSのエミュレート
テストバージョンを更新しました … 内蔵音源で音程が狂うバグを修正してみました 怪しいソフトは一通り確認したつもりですが、まだ音程の狂っているソフトがあるかもしれません

       【核心缺陷说明】
       2018/01/03的SSF测试版至PreviewVer R9存在致命级错误:
       ◆ 内置声源混响功能失效
       ◆ 当运行依赖SS回声/混响特效的游戏时,音频流访问SCSP-DSP模块会触发异常
       ◆ 声音CPU在游戏启动阶段错误崩溃并破坏SCSP-DSP寄存器
       ◆ 导致运行时随机程序崩溃

       【DSP技术解析】
       数字信号处理器(DSP)凭借高速运算能力,可实时处理复杂音效:
       √ 信号放大/滤波/均衡
       √ 混响/回声/3D空间音效
       √ 通过数字逻辑运算处理波形数据

       【历史技术瓶颈】
       世嘉土星在混响处理中采用24位浮点运算,但:
       × 未公开DSP环形缓冲区的浮点数据格式
       × 开发者长期无法解析声源相位旋转的横坐标计算方式
       × SSF早期版本错误采用单精度浮点运算(实机使用定点计算)
       × 环形缓冲区模拟失效导致:

       ◆ SCSP寄存器功能异常
       ◆ 缓冲区数据无法更新
       ◆ 直接访问缓冲区的软件产生音频错误
       ◆ 旧版随机崩溃问题

       【技术突破历程】
       ▶ PreviewVer R10:
       ◆ 将浮点运算改为实机同款定点运算
       ▶ PreviewVer R12:
       改用波形音频播放
       新增XAudio2动态库支持(含混响/音量计量特效)
       ▶ XAudio2优势:
       ◆ 提供可编程DSP框架
       ◆ 支持实时音频信号处理(类比图形处理的像素着色器)
       ◆ 可动态补偿频段缺陷(如低频增强/人声优化)

       【关键算法破解】
       开发者最终成功:
       ✓ 逆向工程土星DSP浮点数据格式
       ✓ 实现PCM线性反馈移位寄存
       ✓ 建立SCSP寄存器流密钥机制
       ✓ 将声源定位转化为非线性分类问题
       (通过定点坐标交替变换实现采样实时更新)

       【成果验证】
       PreviewVer R17里程碑式改进:
       ★ 完整还原DSP混响算法
       ★ 音频解码性能提升300%
       ★ 边缘保真度超越实机硬件
       ★ 获社区认证"音质媲美真实土星"

R27版本技术更新说明:
加入周期级精确模拟功能。从R27版本开始引入了一种创新性的无限循环程序机制,该机制通过动态调配CPU计算资源来换取更高的浮点运算精度。根据性能测试,要实现满帧流畅运行,至少需要配备主频3.2GHz以上的Intel i3处理器。

开发背景补充:
在R27版本发布后,开发者shima于2021年12月19日发布推文表示:"计划在年底前完成绘制权重的重新校准工作。这个过程类似于求解一个包含5个变量的方程组,寻找最优解颇具挑战性。"

技术细节修正:
后续研究发现,shima对世嘉土星VDP2技术文档存在理解偏差,特别是关于VDP1和VDP2实现单周期VRAM访问能力的描述。这一误解导致其在SSF模拟器当前内存限制条件下进行的全局误差校准产生了系统性偏差。2022年我提醒了shima,在修正时注意有限约束满足问题的特殊性:相关变量只能在有限域内取值,而有限域的特征数必须是某个素数。需要特别指出的是,浮点运算与有限域运算存在本质区别,因为后者要求所有运算结果都必须是精确的整数值。

模拟器开发进展报告

2023年1月28日 - 绘制权重计算优化
在最新版本中引入的绘制权重计算模块存在较大误差波动,经分析发现当前浮点数计算模型过于复杂。计划简化为更高效的整数运算体系,待完成全面运行验证后将发布修正版本。

2023年3月11日 - 内存访问测量突破
成功开发出可准确测量VDP2内部VRAM访问速度的评估程序,初步验证表明该方案能提供符合预期的基准数值,这可能是更合理的测量方法论。

2023年3月13日 - 周期模式模拟进展
随着项目关注度提升,现正式同步技术进展:已实现VDP2RAM访问等待时间的动态模拟,能够根据不同的周期模式差异进行自适应调整。下一阶段将重点验证各兼容软件的运行表现。

2023年3月14日 - 内存访问逻辑优化
开发中发现的VDP2RAM访问异常处理机制问题,根源在于R27版本采用了非最优的循环模式设计,计算逻辑过度复杂化增加了运行负担,讽刺的是,这一设计问题正是由开发者shima自己编写的。

2023年3月21日 - 版本迭代规划
R29版本的核心修正工作已全部完成,剩余优化项将纳入R30版本开发计划。采用阶段性发布策略是为了确保项目能持续产出可用成果。

2023年4月7日 - 项目收尾展望
当前修正工作已进入最后冲刺阶段,虽然具体完成时间尚不确定,但整体开发工作已呈现明显的收尾趋势。

R29~R34版本核心修正工作已全部完成
核心修正:
VDP2的VRAM访问等待
总线等待
总线权重处理
SH2写缓冲
VDP1绘图线程处理

64位版通过GPU渲染和持续缺陷修复(如R33 32位版软渲染的优化)
后续在解决DSP处理问题后将全面超越32位版的软渲染效能,使其失去存在必要性,同时克服了类似世嘉土星因硬件限制依赖DSP的历史矛盾。
剩余优化项将纳入R35版本开发计划。
SSF PreviewVer(开发者预览版)采用阶段性发布策略是为了确保项目能持续产出可用成果。

       世嘉土星硬件环境映射的技术解析
       世嘉土星硬件环境映射

       核心功能解析
       世嘉土星游戏机在纹理坐标处理与硬件环境映射方面,创新性地运用了VDP1的Gouraud着色(高洛德着色)功能。该技术通过巧妙利用Gouraud着色特性,实现了将调色板数据作为纹理使用的特殊效果,其中纹理坐标的映射关系为:红色通道对应x轴,绿色通道对应y轴,这种设计使得色彩渐变能够直接转化为纹理坐标的位移,从而创造出动态的阴影效果。

       技术误解澄清
       关于“土星的VDP1和VDP2能够进行单周期VRAM访问”的论述,需明确以下技术要点:

       术语定义差异‌
       文档中提及的“周期”特指VDP2内部VRAM访问循环的时间单位,与CPU或SDRAM的外部时钟周期无直接关联。这一专业术语常被误读为硬件时钟周期,导致对VDP2性能特性的误解。

       流水线优化机制‌
       VDP2的VRAM访问操作采用深度流水线设计,通过多阶段重叠处理(如地址计算与数据传输并行执行)有效隐藏了内存访问延迟。尽管官方文档在术语表述与图表说明上存在一定复杂性,但已明确记载了这种流水线化访问模式的工作原理。

       性能认知偏差‌
       部分开发者因未能准确理解上述技术细节,错误地将VDP2的流水线化访问能力等同于单时钟周期完成全部操作,进而对SSF(世嘉土星模拟器)等项目的内存约束与误差校准产生系统性误判。实际上,VDP2的访问效率需结合其独特的流水线架构与硬件时序进行综合评估。

       结论
       世嘉土星VDP1/VDP2的硬件设计展现了90年代游戏主机的卓越创新能力,其Gouraud着色与流水线VRAM访问技术至今仍是硬件模拟领域的研究热点。正确理解技术文档中的专业术语与硬件机制,对于精准还原土星游戏画质与性能表现具有关键意义。



       多机种模拟器Mednafen 全称:My Emulator Don't Need A Frickin'Excellent Name
       Mednafen土星是CPU密集型计算,近年在完善土星模拟上作了大量修正和优化,目前还在积极开发中,最新正式版在兼容性和运行效率上较过去的旧版更好。
       
       1、Mednafen土星在VDP2执行VRAM访问循环状况上覆盖了SSF的一些盲点(SSF当前内存约束下的全局误差校准有偏估计)。
       2、对于一些使用CPU指令缓存速率的游戏,存在缓存一致性问题,SCU-DMA可能也受到影响,可通过CPU(近周期精确)指令缓存速率模拟模式修正。

       土星对CPU周期的要求非常严格,改变任何关于解释器的东西都可能需要重写与时序有关的一切,因此在准确性和速度之间的权衡是一个困难的命题,对于时序紧凑和更直接访问硬件的土星系统,精度几乎总是更可取的,而现有PC硬件在软件中模拟主机硬件处理对于周期准确的仿真速度已经非常快了,并且通常包含更严格的时序限制。

       (关于模拟器"准确性"的三种不同状态) 模拟器处理的精准度有不同的质量等级,最高等级是“周期准确”;Mednafen土星未使用回溯算法求解约束满足问题,即通过全局约束相容性检查,土星的每个硬件相对于其它运行组件都被模拟在正确的周期内,周期准确是高精确模拟的一个关键方面,需占用大量CPU时钟周期用样本统计量来推断总体硬件参数,同时还要根据统计量的抽样分布特征,估计出总体参数的一个区间,而不是一个数值,并同时给出总体参数落在这一区间的可能性大小,概率的保证,周期准确的模拟器能产生相对于(实机)原始硬件100%准确模拟。

       Mednafen土星错误报告、兼容性列表:

       另一个多机种模拟器BizHawk在土星模拟上使用了Mednafen内核(阉 割部分功能版本更新晚于官网),在内存和CPU占用率上都比Mednafen原版更高。

       BizHawk 2.6


       Mednafen 1.26.1 x64


       SSF模拟器性能优化解析
       编译架构创新
       SSF PreviewVer采用Clang/LLVM工具链编译,该方案在保持高精度模拟的前提下,实现了当前土星模拟器领域最优的执行效率。其创新性体现在:

       硬件资源占用表现
       基于Zen2架构的Ryzen7 3700X测试数据显示:
       常规游戏场景‌:整体CPU占用率稳定在4%以内
       多核协同负载‌:
       主SH2协处理器负载峰值≤6%
       协SH2与68000协处理器并行运作时仍维持6%阈值
       DSP全负荷测试‌:即便启用所有数字信号处理功能,总占用率仍控制在6%以下
       向下兼容性验证
       在第四代酷睿i7-4771平台(Haswell架构)的测试中:
       最严苛的多处理器协同场景下,CPU总占用率始终低于10%
       证明该模拟器对x86架构具有优秀的跨代优化能力



       Kronos模拟器核心架构演进
       作为世嘉土星(SEGA Saturn)及ST-V基板的开源模拟器,Kronos自2018年12月首发版本以来持续迭代。其重大突破出现在2019年5月发布的2.1.2版本,开发者Francis历时6个月完成OpenGL核心渲染器的彻底重构,成功修复包括纹理映射错误、半透明混合异常等关键图形问题。该模拟器采用独创的SH2缓存解释器技术,虽不同于YabaSanshiro的动态重编译(Dynarec)方案,但相较传统解释器(如Mednafen)仍可降低约30%的CPU时钟需求。

       版本迭代与渲染革新
       2023年12月发布的2.6.0版本具有里程碑意义,移除了遗留的软件渲染器及基于YabaSanshiro的旧版OpenGL渲染器,全面转向现代图形管线。用户可通过项目官网获取详细的游戏兼容性测试报告

       土星图形架构的模拟挑战
       世嘉土星搭载8颗异构处理器,其中VDP1/VDP2双图形单元构成核心渲染体系:
       VDP2:专职背景层与视效处理
       VDP1:负责精灵、多边形及纹理的逐行扫描渲染,其特有的"四边形线"绘制算法需在斜率突变处插入冗余像素,以此消除扫描线间隙

       Compute Shader技术突破
       现代图形API(如OpenGL)的三角形渲染管线难以原生模拟VDP1的渲染逻辑。尽管细分着色器等方案可部分缓解问题,但直到OpenGL 4.3引入Compute Shader技术才实现根本突破。该技术已成功应用于Flycast模拟器的OIT渲染和N64并行处理,其通用计算能力可精准再现VDP1的扫描线特性。通过《世嘉拉力》回放模式的渲染测试可见:正确实现的VDP1模拟应确保赛道无像素缺失,边界过渡平滑(参见图1-3对比效果)。

‌       不像下图这样:


‌       模拟器渲染效果对比分析
‌       通过四组对比截图(依次为:土星实机、Mednafen/beetle、Kronos Compute Shader版、Kronos旧版OpenGL渲染器),可清晰观察到VDP1模拟精度的关键差异:

‌       核心渲染特征验证
‌       1. 道路边界精度
‌       准确表现:实机、Mednafen及Kronos新渲染器均呈现细微点状边界(需放大观察),完美复现土星VDP1的原始扫描特性
‌       失真案例:旧版OpenGL渲染器产生的平滑边界虽视觉舒适,但属于技术妥协导致的错误表现
‌       2. 几何完整性测试‌
‌       旧版渲染器在山体与道路衔接处出现明显像素缺失(见图4)
‌       其他三种方案均保持几何表面连续,符合VDP1的严格填充规范
‌       技术方案权衡
‌       ◆ 传统OpenGL修补方案虽能消除孔洞,但会引发:
       ◆ 边界点状特征被过度平滑化
       ◆ 引入次级渲染伪影(如《世嘉拉力》道路边缘像素扩散)
‌       Compute Shader方案虽需GPU支持OpenGL 4.3以上,但首次实现:
       ✅ 像素级精准的VDP1线框填充
       ✅ 原生支持四边形扫描线插值
       ✅ 保持所有原始渲染特征不变 
‌       (注:建议配合文末附图1-4进行对比观察,其中图4像素缺失异常)


‌       世嘉土星图形架构解析与模拟器技术演进
       土星图形系统的核心创新
       世嘉土星并未采用传统3D渲染管线,而是开创了独特的"变形2D精灵"技术体系。其VDP1单元通过逐行扫描的"四边形线"算法(Quad Rasterization),实现动态多边形变形与纹理映射,例如标志性的"蝴蝶结四边形"特效。这种非标准渲染模式突破了传统2D图形限制,却给现代模拟器开发带来独特挑战。

       传统3D硬件的模拟困境
‌       早期模拟器尝试通过OpenGL/D3D的三角形拼接模拟四边形渲染,但面临双重技术瓶颈:

       1. 几何精度损失‌:硬件强制的三角形分割导致顶点插值误差,破坏VDP1特有的像素级扫描线特性
       2. 特效兼容性缺失‌:无法复现动态斜率调整、亚像素精度等土星专属渲染特性
       3. 渲染异常频发‌:典型表现为纹理撕裂、多边形边缘锯齿及透明度处理错误

‌       Compute Shader技术突破
‌       OpenGL 4.3引入的Compute Shader为精确模拟提供了新路径:

       ◆ 算法重构‌:通过通用计算管线实现逐行扫描逻辑,规避传统渲染管线的几何限制
       ◆ 并行优化‌:利用GPU并行计算能力,在硬件上实现实时VDP1模拟
       ◆ 特性还原‌:完整支持斜率突变处理、冗余像素插入等土星特有渲染机制

‌       Kronos的Compute Shader渲染器通过以下创新解决历史遗留问题:
       ✅ 修复YabaSanshiro旧渲染器的几何失真
       ✅ 精确复现道路边界的"点状纹理"特征
       ✅ 消除山体与道路衔接处的像素孔洞
       ✅ 支持所有土星专属图形特效(含动态变形四边形)

       模拟器架构演进趋势
       早期软件模拟方案(如SSF)通过DX11 GPGPU加速释放CPU负载,但受限于:
       ◆ 无法突破原始主机分辨率
       ◆ 难以处理复杂图形特效
       ◆ 依赖特定硬件架构
       现代Compute Shader方案在保持软件模拟灵活性的同时,通过GPU加速实现:
       ◆ 像素级渲染精度
       ◆ 完整特性兼容性
       ◆ 动态分辨率扩展能力
       (技术注解:建议结合《VR战士》等游戏的实际对比截图,重点观察角色轮廓的平滑度、背景层的像素排列特征以及动态变形特效的完整性)

       Kronos 2.7.0后续将不再更新?
       项目公告:Kronos 开发团队招募紧急通知‌
       令人遗憾的消息:Kronos 项目目前面临人手不足的困境。为确保项目持续发展,现急需招募一名新的开发者加入核心团队。若无新成员支援,项目后续更新将被迫停滞,或仅能维持极低频率的维护性更新。
       Francis 作为项目核心开发者,在模拟技术与渲染优化方面取得了突破性进展,为 Kronos 奠定了坚实的技术基础。然而,随着用户反馈与功能需求的快速增长,单靠 Francis 一人已无法高效应对日益繁重的工作量。
       在此,我们诚挚邀请有志之士加入,共同推动 Kronos 项目的未来!


       Yaba Sanshiro重新开始编写新的Vulkan图形仿真核心

       Yaba Sanshiro 的起源可追溯至 Yabause 代码库。Yabause,全称:Yet Another Buggy And Uncomplete Saturn Emulator(故障百出且不完整的土星模拟器),这款模拟器于 2003 年发布,然而其发展历程却颇为坎坷。到 2016 年,开发团队在官网宣布不再对 Yabause 继续进行开发和维护,使得它在模拟器的发展进程中逐渐成为了历史的一部分

       日本开发者 devMiyax 基于 Yabause 的代码,开启了新的项目。最初,该项目名为 uoYabause,其中“uo”代表“Unofficial”(非官方),明确表明它是 Yabause 的一个非官方移植版本【此信息在 uoYabause 网站上已有明确声明】。uoYabause 巧妙融合了 OpenGL ES 3.0 硬件加速技术,打造出了适用于 Android 平台的 Yabause 版本,并于 2015 年底正式推出。由于其成功适配 Android 系统,在当时引起了不小的轰动。

       2017 年 9 月 8 日,该项目迎来了重大变革,更名为 Yaba Sanshiro,全称:Yet Another Buggy And Sanshiro(故障循环三四郎),并同时发布了 Windows 版本,此后 Android 版和 Windows 版保持同步定期更新。对于不熟悉 Sega Saturn(世嘉土星)游戏机的用户来说,“Yaba Sanshiro”这个名字或许有些令人费解,但实际上,这是开发者向 Sega Saturn 官方吉祥物 Segata Sanshiro(世嘉三四郎)致以的独特敬意。

       2015 年,Yaba Sanshiro 作为 Yabause 的一个分支项目开始研发。然而,在其发展过程中,Windows 版本曾一度陷入停更的困境。这主要是因为不恰当的 OpenGL 使用方式受到了 API 的限制,导致硬件渲染无法准确模拟出土星 VDP1 的处理行为,进而引发了大量错误和其他各种问题。尽管 Yabause 及其衍生版本 uoYabause、Yaba Sanshiro 在硬件渲染方面看似带来了更流畅、更美观的视觉体验,但实际上,这些改进是以牺牲稳定性和兼容性为代价的。Yaba Sanshiro 基于 Yabause 架构,SH2架构的动态重编译(Dynarec)实现效率低下,在第四代Intel Core i7处理器上运行时占用高达70%的CPU资源,devMiyax 团队虽然断断续续地进行着修复工作,但截至目前,在图形模拟和其他方面仍存在诸多不足,兼容性表现一直不尽如人意。

       uoYabause 作为 Yabause 的非官方移植版上架谷歌商店后,却在 2017 年 8 月遭遇了下架危机。原因是其名称与 Yabause 过于相似,导致部分购买用户向谷歌投诉,称该移植付费版存在欺诈行为,稳定性和兼容性方面差评如潮。甚至有人在推特上发文指出,该模拟器在 VDP1、SH2、SCU、SCSP 等关键部分的模拟上可能需要重新设计。

       自谷歌将 uoYabause 从 Play 商店下架后,devMiyax 团队将该项目更名为 Yaba Sanshiro 并重新上架。然而,好景不长,由于其中包含 Action Replay 作弊功能,涉嫌违反谷歌 Play 商店的设备和网络滥用政策(作弊功能可能会导致自动过滤器出现故障),2020 年 10 月,谷歌将包含该作弊功能的 Yaba Sanshiro 列入黑名单。随后,项目更名为 Yaba Sanshiro 2 重新上架,此次作弊功能已被删除。但这一变动给之前为 Yaba Sanshiro 专业版付费的用户带来了困扰,他们由于失去了原有的许可证,不得不再次为此版本付费。

       2018 年 12 月,法国开发者 François 推出了适用于 Windows、Linux 端的 Kronos。这是一个试图协调 Yabause、Yaba Sanshiro 分支版的项目,以准确性为导向,以现代 OpenGL 为目标,同时实施了一系列急需的修复工作。Kronos 在图形仿真水平上在很大程度上超越了 Yaba Sanshiro,其兼容性和功能堪称 Yabause 的最佳分支版。

       Yaba Sanshiro没有像Kronos引入OpenGL Compute Shader来准确模拟VDP1处理。
       SSF Android同样引入了OpenGL Compute Shader,兼容OpenGL ES 3.1。
       以下是SSF Android特有选项   
       ◆ CS组线程Y    
       指定计算着色器组线程的数量     
       数字越大,处理速度越快,但有些设备可能无法在高线程数下工作。
       ——————————
       Compute Shader是在OpenGL 4.3(OpenGL ES 3.1)开始支持的一种专门用于并行计算的着色器。
       Android在Android 5.0(API 21)引入了OpenGL ES 3.1支持。

       2020年12月27日,Yaba Sanshiro开发者devMiyax推特发文称准备重新编写新的Vulkan图形仿真核心,以便准确模拟VDP1、VDP2。
       开发者重新开始使用Vulkan实现新的图形仿真核心,到目前为止,好处是:
       ◆ 可以分离VDP2和VDP1
       ◆ 最大限度地减少和简化了仿真的实现。
       ◆ 快速

       Yaba Sanshiro的技术演进历程
       在图形渲染技术的选择上,Yaba Sanshiro团队采用了Vulkan API作为新一代图形仿真核心的基础架构。值得注意的是,项目主导者devMiyax曾在2021年向用户说明Vulkan原生不支持四边形图元渲染,需依赖曲面细分技术实现类似效果。但根据Vulkan官方技术文档显示,Android平台实际上完整支持Compute Shader功能,这一技术细节值得开发者重新评估。

       技术瓶颈与开发困境
       世嘉土星模拟面临的核心技术挑战主要来自其复杂的VDP(视频显示处理器)系统架构。由于该系统采用多芯片协同工作的特殊设计,硬件仿真必须采用模块化实现方案。更关键的是,土星主机对CPU时序精度的要求极为严苛,任何解释器层面的修改都可能引发连锁反应,需要同步调整整个时序系统。devMiyax团队在维护Yabause代码库十余年的过程中,始终面临硬件渲染带来的技术悖论:每个bug修复都可能引发新的兼容性问题,这种"修复-衍生"的循环严重制约了项目进展。

       版本迭代与功能改进
       2022年3月的1.8版本更新引入了多项重要改进:
       ◆ 实现了SH2缓存模拟系统
       ◆ 新增Vulkan渲染后端(初期仅支持部分游戏)
       ◆ 改进了Android版的UI交互设计

       Yaba Sanshiro模拟器在关键硬件组件的仿真方面仍存在明显不足,特别是在VDP1(视频显示处理器)、SH2(主CPU)、SCU(系统控制单元)和SCSP(音频处理器)等核心模块的模拟精度上。项目开发者devMiyax在Google Play商店的官方说明中坦诚表示:"硬件模拟确实极具挑战性,Yaba Sanshiro目前仍不完善,用户可以通过项目网站查看当前的具体兼容性列表。"

       音频子系统模拟现状
       从1.8版本开始,项目转向软件模拟方案,实现了SCSP-DSP音频处理单元的模拟,实测数据显示:
       ◆ 《露娜2》等游戏的ADX音频解码存在明显计时误差
       ◆ 音频循环播放时出现严重卡顿
       ◆ 与Kronos项目相比,音频流处理失真更为明显

       作为对比,Kronos项目虽然宣称实现了95%的音频模拟完整度,但在处理连续音频流时仍会出现间歇性杂音,反映出SCSP模块模拟的技术难度。


       《世嘉土星模拟器Ymir开发现状:开发中的文档缺乏问题》

       一、背景概述
       在开发世嘉土星(Sega Saturn)模拟器的过程中,开发者遇到了诸多挑战,其中最为显著的是缺乏详尽的技术文档。这一问题极大地增加了开发的难度和时间成本,使得开发者在理解和实现模拟器功能时面临重重障碍。

       二、当前文档状况
       1. 文档质量参差不齐
       目前可用的世嘉土星技术文档质量不一,有的内容陈旧、信息不全,有的则表述模糊、难以理解。这些文档对于开发者来说,难以提供足够的参考和指导,使得开发过程充满了不确定性和试错成本。
       2. 理解难度大
       由于文档的缺乏和质量的参差不齐,开发者在理解和实现世嘉土星硬件功能时遇到了极大的困难。这不仅要求开发者具备深厚的硬件知识,还需要他们花费大量的时间和精力去摸索和验证。

       三、影响分析
       1. 开发难度增加
       缺乏详尽的技术文档,使得开发者在开发过程中需要自行摸索和解决一系列复杂的技术问题。这不仅增加了开发的难度,还可能导致开发进度缓慢,甚至项目失败。
       2. 时间成本提高
       由于需要花费大量的时间和精力去理解和实现世嘉土星硬件功能,开发者的时间成本显著增加。这不仅影响了项目的开发进度,还可能对开发者的身心健康造成不利影响。

       四、未来展望
       为了解决这一问题,开发者们正在积极寻求解决方案,如结合现有的研究资料、参考其他类似项目的文档以及直接分析世嘉土星硬件等。同时,也有开发者提出编写一份详尽的技术指南,以帮助更多的开发者理解和开发世嘉土星模拟器。这一举措有望为未来的开发工作提供有力的支持,降低开发难度和时间成本。
       世嘉土星(Sega Saturn)模拟器开发面临的主要挑战之一就是缺乏系统性的官方技术文档。这种情况在开源模拟器开发社区中相当常见,但世嘉土星由于其复杂的双CPU架构和独特的硬件设计,文档缺失问题尤为突出。
       当前开发者主要依赖以下几种资源:
       1.零散的逆向工程资料
       2.其他模拟器(如Mednafen)的源代码
       3.少量第三方技术分析文章
       4.硬件爱好者社区的经验分享
       这种状况导致每个新开发团队都需要重复进行大量基础研究工作,极大地增加了开发门槛和时间成本。一个系统性的技术文档集将能显著降低开发难度,促进更多开发者参与世嘉土星模拟器的开发与改进。

       Ymir土星模拟错误报告:https://github.com/StrikerX3/Ymir/issues

       Ymir在开发初期选择了优先完善硬件技术文档,这是保障长期开发、维护和修复的基础。目前YabaSanshiro和Kronos(Yabause系列土星模拟器)因为缺乏完整的技术文档导致难以为继,开发工作已陷入实质性停滞状态,短期内难以实现有效的功能迭代与维护更新。


(待续,本稿尚在增改中)


路过

雷人

握手
1

鲜花

鸡蛋

刚表态过的朋友 (1 人)

发表评论 评论 (1 个评论)

回复 魂斗罗 2025-6-18 13:15
你应该把文章也发到模拟器相关的板块里,这么厉害的东西藏在日志里他人根本看不到

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|肖琪模拟游戏站 ( 沪ICP备2023018581号-5|沪公网安备31011702888952号 )

GMT+8, 2025-6-26 11:13 , Processed in 0.086175 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

返回顶部