热度 5||
关于土星模拟最新状况,现有3个土星模拟器值得一看,SSF (由同一个作者积极维护了20多年这可能是一个记录)、Mednafen和Kronos。
土星模拟器当前处于非常健康的状态,至少有两个模拟器SSF、Mednafen经兼容测 试 http://www.segasaturn.org/ 可正常模拟大多数SS游戏。SSF、Mednafen是目前最好的土星模拟器,尽管在个别游戏兼容上互有短长,使用上建议一主一备或互为主备。
世嘉土星总线规范,首度揭秘!
从世嘉土星开发文档来看,土星的系统总线采用的是SCSI规范,SCSI定义了一种并行协议,主要是用于数据传输和通信控制的块协议。
世嘉土星官方开发套件包含CD模拟器,可将CD-ROM拷贝到SCSI硬盘驱动器,在总线上模拟光驱加载CD-ROM来运行游戏,比物理光驱快的多,CD模拟器是4倍速设计,物理光驱是2倍速。
土星官方CD模拟器,由世嘉开发工具部门Cross Products编写,可精确模拟所有目标CD机制的所有功能和时序,能够直接从镜像文件进行全速模拟,并即时执行CD编码。开发者工具包提供了SCSI层框架(内置土星多处理器I/O位移运算操作符、总线数据传输与通信控制的块函数调用协议),能让土星在CartDev开发套件的主处理上可靠运行游戏ROM。
民间ODE(光驱模拟器)
https://tieba.baidu.com/p/8560966004
https://tieba.baidu.com/p/8626024331
目前民间的土星ODE(光驱模拟器)包括Saroo,最基本的问题是缺少必要的SCSI层框架(多处理器I/O位移运算操作符、总线数据传输与通信控制的块函数调用协议),框架中视图层以给定的样式展现数据并反馈事件给逻辑层,需要模拟土星的总线仲裁,添加等待状态,用于控制内存和处理器之间的数据路径流,否则一致性处理没法自适应地根据多处理器I/O应用进行动态调整,要么始终会有一些游戏运行不好,或仍无法运行。
问题同样适用于MiSTer FPGA
https://tieba.baidu.com/p/8691569883
根据FPGA解决方案,在土星上实现起来更加困难,FMV出现流媒体问题及同步中断、BGM、显示效果有问题或无法运行,不存在完美的兼容性,因为都需要编程,如果程序不正确,自然就不能正常工作。
土星时序处理是由多处理器时钟完成的,它们一起运行的时钟数,在总线主循环里将按照SCU、SH2、DSP、SCSP、68000、CD区块的顺序处理,当加大(一个数据块)循环处理的时钟数,游戏速度会有所上升但是兼容性会降低。对于开发者来说,土星总线规范能为其找到最终的路径优化,解决有问题运行不好或仍无法运行的游戏。
Satiator开发者詹姆斯·莱德温因为熟悉CPU工作原理,他找到并利用了CD Block SH-1通道指令,通过MPEG VCD端口的I/O通道控制来管理、转移CD-ROM块数据,完成CD块时序控制处理(为指令的执行提供定时信号)。土星CD Block ROM字符包含日立SH-1的非对称密钥位移运算、异或可逆运算(xor)指令(按位异或:对应的二进制位相同时出0,不同出1) ,位运算是一种对二进制数据进行操作的技术,它可以实现对单个位或一组位的操作,对于处理各种硬件设备和通信协议非常有用。借此方式一定程度上起到优化CD Block ROM块的定时信号处理,略微弥补在缺少SCSI层框架(多处理器I/O位移运算操作符、总线数据传输与通信控制的块函数调用协议)的情况下,一致性处理没法自适应地根据多处理器I/O应用进行动态调整。
通道控制是一个独立于CPU的专管输入/输出控制的处理机,它控制设备与内存直接进行数据交换。它有自己的通道指令,这些通道指令受CPU启动,并在操作结束时向CPU发中断信号。通道控制方式与DMA控制方式类似,也是一种以内存为中心,实现设备与内存直接交换数据的控制方式。与DMA控制方式相比,通道方式所需要的CPU干预更少,而且可以做到一个通道控制多台设备,从而进一步减轻了CPU负担。
I/O通道控制方式是对DMA控制方式的发展,它进一步使CPU参与到数据传输的控制减少,即把对一个数据块的读/写为单位的干预,减少为对数据块的读/写及有关的控制和管理为单位的干预。同时,又可实现CPU、通道和I/O设备的并行操作,从而更有效地提高整个系统的资源利用率。在通道控制方式中,CPU只需发出启动指令,指出要求通道执行的操作和使用的I/O设备,该指令就可以启动通道并使该通道从内存中调出相应的通道程序执行。
SS模拟器的声音表现
土星在技术上拥有强大的声音系统,有采样器、合成器和效果器,由包括摩托罗拉68k CPU和一个定制的32通道雅 马 哈FM/PCM声音处理器YMF292(也称为SCSP)组成,该声音处理器带有一个集成的DSP,它有自己独 立的RAM和DAC芯片。
不像下图这样:
2022/3/15 开发者devMiyax在推特发文:“关于SH2缓存,它将在Yaba Sanshiro 2 Pro 1.8版本中提供。在1.8版本中加入了SH2缓存模拟,通过缓存命中率修正某些游戏bug,略微提升SH2准确性以此改善一些兼容性。 经测试OpenGL下缺失图层问题严重,可通过调整设置解决,但会造成屏幕图层闪烁。新加入的Vulkan核心目前只能支持个别游戏。2022/3/27发布Windows版 1.8更新,测试运行情况比安卓版要好,仍然存在很多严重bug:切换全屏会使窗口上下黑边不断延长导致窗口/全屏切换失效,整体情况落后另一分支版Kronos。
Yaba Sanshiro对VDP1、SH2、SCU 、SCSP的仿真还不完善。开发者devMiyax在谷歌Play向用户坦言:“硬件模拟真的很难,Yaba Sanshiro并不完善,你可以在这里检查当前的兼容性。”
有别以往的是,开发者devMiyax从Yaba Sanshiro 2 Pro 1.8开始转为在软件中来实现模拟土星的硬件处理(包含Android版在内)SCSP-DSP已被模拟,可以对各种效果、ADX等进行高精确模拟。最新版在露娜2中动画音乐ADX解码计数误差较大导致循环卡顿。
Kronos似乎也实现土星SCSP-DSP模拟,开发者François在Kronos的比较表中估计音频模拟实现了95%(和YabaSanshiro2一样)。最新版在露娜2动画音乐ADX解码计数上略好于Yaba Sanshiro 2 Pro,可正常播放一段后面还是会卡死。
[Emulation General Wiki] 世嘉土星模拟器比较
表格下的比较说明 (关键点摘录):
SSF:
由于最近在最新版本中检测到病毒,不建议使用。
P.S.释疑:R27开始一些杀软会误报。因开发者创建的无限循环程序从CPU中提取资源换取浮点精度的缘故,被一些杀软误标记包含木马。确切地说,对于许多时序紧凑和更直接访问硬件的系统,尤其是较旧的系统,周期准确是高精确模拟的一个关键方面。 (关于模拟器"准确性"的三种不同状态)。
Yaba Sanshiro 2:
它远不如SSF和Mednafen那么成熟,仍然存在许多兼容性问题,开发似乎已经停止...
Kronos:
大多数游戏在Windows上仍然存在问题... 此处提供了兼容性列表。