琵琶行论坛

 找回密码
 注册

SEGA Saturn模拟效能研究

热度 5已有 7339 次阅读2020-4-27 10:26 |个人分类:模拟日志| 世嘉土星

       世嘉土星模拟不佳的神话

       关于土星模拟最新状况,现有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芯片。

       
       SS模拟器FM合成器音色和DSP后处理音效之间的区别:
       实机 (10分) = SSF PreviewVer (10分)  > Mednafen Saturn (6分) > Yaba Sanshiro (3分) 
       我先说声音系统仿真结果:
       SSF的高动态范围超过了真正的实机
       Mednafen未实现SCSP-DSP汇编动态链接库这在实机中是不存在的。
       Yabause及其衍生版Yaba Sanshiro、Kronos都没有模拟SCSP这种定制声音处理器的程序。

       与实机同级别的音源采样和效果处理作对比,Yaba Sanshiro、Mednafen仍然仅限于简单的采样和微弱的效果。Mednafen从2016年开始支持SS模拟,在功能仿真上,开发者表示由于SCSP-DSP硬件算法复杂,Mednafen未能实现SCSP-DSP汇编动态目前为止使用传统静态编译处理缺少汇编级性能优化

       土星实机PCM音频是44.1KHz/13bit,bit位深精度约为13。SSF PCM音频是44.1KHz/15bit,bit位深的采样精度略高于实机,接近CD的16bit标准(数据来源SSF_PreviewVer_R28/Document/index.html索引页)
       
       CD数字音频是44.1KHz/16bit的PCM标准。bit位深越大,信噪比和动态范围越好,音色也就越真实、生动。
       由于录音和播放设备都会有一定的底噪,事实上往往有2-3bit是被底噪信号耗掉的,在动态范围上有意义的位深只有13bit,这时实际的动态范围也就80dB左右,听一般轻音乐录音问题不大,但大动态的录音作品,就可能存在一定影响(动态被压缩)了。

       SSF实现土星DSP实时数字音效处理

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

       SSF TestVer自2018/01/03到更高版本的SSF PreviewVer R9有致命1级bug内置声源混响效果无法工作,使用SS回声和混响音效的游戏,音频流在访问SCSP-DSP处理时,声音CPU在游戏启动时不准确地崩溃并破坏了SCSP-DSP寄存器,导致运行中不时发生程序崩溃。

       DSP(数字信号处理),用于对声音信号进行数字化处理。DSP具有高速的运算能力,在上面应用各种快速算法,可进行很多复杂的实时数字音效处理,如信号放大、过滤(有选择地通过或阻塞一定的频带)或均衡(使一定的电学特性平整一些)、混响、回声、3D Sound(定义声音在3D空间中的定位和声响),DSP组采用数字逻辑对数字波形进行以上操作。
       
       在土星DSP编程单元中,世嘉混响效果处理上使用了24位浮点运算,但在实机DSP环形缓冲区中写入的浮点数据是什么格式,世嘉是不公开的,长久以来,开发者不清楚DSP混响效果计算的浮点数据(用于声源相位旋转滚动的横坐标时间计算格式)。SSF只是采用单精度浮点运算,由于世嘉在土星DSP内部对声源相位中心坐标的定位还使用了定点计算,SSF在DSP环形缓冲区模拟上,一直没实现所需要使用的SCSP寄存器功能,环形缓冲区不更新,因为数据没有被写入SCSP DSP使用的环形缓冲器内存,任何试图直接访问环形缓冲器的软件都会产生错误的声音。此类访问会导致一部分旧版SSF运行中随机发生崩溃。真正的实机内置声源定位效果的DSP能自动处理直接访问环形缓冲区的软件声音,这种DSP实时数字音效处理,由于涉及到复杂的数字信号处理算法,开发者过去也认为没有软件可以完成如此棘手的事情。为了纠正旧版中拖了很长时间的各种错误,进一步提升兼容性、速度和准确性,SSF TestVer被放弃修改,版本回退,重新更名为SSF PreviewVer。

       频繁更新至SSF PreviewVer R10,开发者尝试修复SCSP-DSP处理中的bug,该版将单精度浮点运算改为和SS实机处理相同的固定点运算,从SSF PreviewVer R12开始,声音改为使用波形音频播放,并且可以选择切换XAudio2 (动态库处理音频数据) 播放,XAudio2内置效果:混响、音量计量,提供灵活且强大的DSP框架,支持音频信号编程处理,信号是声音编程的基本单位,好比是图形中的像素。DSP(数字信号处理)效果好比是游戏音频的像素着色器,如原始信号缺乏低音,DSP可通过算法为其补偿一些低频。同样也适用于歌曲的人声、中音和高音,动态范围,立体感和清晰度这些,通过数字优化补偿能消除任何不完美的地方,使其相对 "更好"。

       为完整模拟实机SCSP-DSP三维空间声源定位算法,需要解开世嘉在土星DSP环形缓冲区中写入的浮点数据格式,实现PCM脉冲编码调制线性反馈移位寄存功能,由SCSP寄存器(流密匙ON/OFF)组成声源定点坐标交替变换,会在每次采样时更新,至此就将原三维空间的声源定位由线性回归问题转化为非线性分类。

       开发者经过一番努力推导,终于得出了DSP环形缓冲区中写入的浮点数据格式,将此浮点地址转换为定点地址,用于旋转滚动(代表电流采样的正半周)的坐标计算。直到SSF PreviewVer R17终于实现DSP混响算法实时主动处理,提高了音频解码性能和质量,开发者认为现在的SSF声音听起来像一台真正的实机!这一改进提高了声源处理的边缘保真度(基于严密的精确算法),相对于(实机)原始硬件。
---------------------------------------------------------------
       多机种模拟器Mednafen(My Emulator Don't Need A Frickin'Excellent Name的首字母缩写词)

       Mednafen土星是CPU密集型计算,近年在完善土星模拟上作了大量修正和优化,目前还在积极开发中,最新正式版在兼容性和运行效率上较过去的旧版更好。

       Mednafen土星在VDP2执行的VRAM访问循环状况上覆盖了SSF的一些盲点(SSF当前内存约束下的全局误差校准有偏估计),但一些使用CPU指令缓存速率的游戏,存在缓存一致性问题,SCU-DMA可能也受到影响。可通过CPU(近周期精确)指令缓存速率模拟模式修正。土星对CPU周期的要求非常严格,改变任何关于解释器的东西都可能需要重写与时序有关的一切,因此在准确性和速度之间的权衡是一个困难的命题,对于时序紧凑和更直接访问硬件的土星系统,精度几乎总是更可取的,而现有PC硬件在软件中模拟主机硬件处理对于周期确的仿真速度已经非常快了,并且通常包含更严格的时序限制。模拟器处理的精准度有不同的质量等级,最高等级是“周期确”;Mednafen土星未使用回溯算法求解约束满足问题,即通过全局约束相容性检查,土星的每个硬件相对于其它运行组件都被模拟在正确的周期内,周期确是高精确模拟的一个关键方面,需占用大量CPU时钟周期用样本统计量来推断总体硬件参数,同时还要根据统计量的抽样分布特征,估计出总体参数的一个区间,而不是一个数值,并同时给出总体参数落在这一区间的可能性大小,概率的保证。周期准确的模拟器能产生相对于(实机)原始硬件100%准确模拟。

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

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

BizHawk 2.6


Mednafen 1.26.1 x64


SSF PreviewVer使用Clang+LLVM编译,在注重准确性模拟器中的执行效率是最高的。最新版在Ryzen7 3700X上模拟大部分SS游戏,CPU使用率都在4%以下,主SH2,协SH2,68000,即使用满DSP,也不会超过6%,4代I7-4771上CPU使用率也不超过10%。

---------------------------------------------------------------
       Kronos从2018年12月推出,至2019年5月作者François在过去6个月中对OpenGL核心渲染器进行了完全重写,它允许和修复了大量图形问题。
       Kronos使用的是高性能SH2缓存解释器,尽管与YabaSanshiro中使用的Dynarec不同,但CPU频率要求仍然比使用经典的SH2解释器(如甲虫土星)的模拟器低约30%。
       2020年5月,发布Kronos 2.1.2,加入了新的OpenGL Compute Shader,这个新渲染组件为OpenGL提供了很大的灵活性,并允许实现逐行渲染四边形例程绘制。准确地再现VDP1的处理行为是这个渲染器的目的,GPU需支持OpenGL 4.3。
       此处提供了兼容性列表

       OpenGL Compute Shader
       土星是怪兽,它有8个处理器,其中有2个自定义图形处理器VDP1和VDP2。VDP2处理背景,VDP1处理精灵、纹理和多边形。

       VDP1是每行绘制一条“四边形”线,其基本思想是沿水平边插值端点,然后在这些端点之间绘制纹理线。它必须在斜率改变的地方用一个额外的像素画线,所以所有的像素都有一个相邻的左、右、上或下。他们这样做是为了防止线之间的空隙。

       像OpenGL这样的现代图形API不知道如何做到这一点,因为它的渲染管道是基于三角形几何体的,所以基本上它不能再现VDP1的行为。有一些技巧,比如细化,但最终它们只是针对特定问题的解决方案,而不是针对这一问题的所有解决方案。不过,这里有一些好消息:在OpenGL 4.3中,引入了一个名为“计算着色器Compute Shader”的新功能,你可能已经通过Flycast的“顺序无关透明度”(order independent transparency)或N64的“并行”(parallel)中听说过它。

       考虑到用现代GPU正确模拟VDP1有多难,它是否被正确模拟了?一个很好的测试是世嘉拉力赛的观赏模式:正确的VDP1模拟在道路上不会有洞,在边界上几乎看不到小点,如图1-3所示:

不像下图这样:


       让我们做一些比较,从第一张到最后一张,分别是土星实机、Mednafen/beetle、Kronos(OpenGL Compute Shader)、Kronos(旧式OpenGL渲染器,基于YabaSanshiro)的屏幕截图。在这些图片中与VDP1处理行为关的两件事值得注意:

       * 道路边界:在土星实机,Mednafen和Kronos的新渲染器上,如果放大,你会注意到它不是一条平滑的线,有点,这是准确的行为;最后一个屏幕虽然平滑线可能看起来更好,但实际上是不准确的。
       * 到处都是孔:如果放大最后一张屏幕截图,你会注意到在山顶,后面的道路上到处都有一些孔,其它屏幕截图中不存在这些孔。

       可以使用OpenGL渲染器解决这些漏洞,但最终最终会在此过程中产生其他问题。直到最近,我们仍使用这种解决方法,但对于世嘉拉力赛而言,它只是放大了道路边界上的点。这种新渲染器的唯一已知缺点是,它将需要一个相当不错的GPU!
---------------------------------------------------------------
       世嘉土星不做3D,而是做3D变形的2D精灵

       土星模拟器从技术上讲,OpenGL可以做四边形,在OpenGL或D3D中将这些四边形绘制为实际的3D对象,硬件上是通过三角形模拟的四边形但这样的3D硬件渲染会产生大量图形渲染错误和其它各种各样问题,并且无法再现土星可以做出许多奇怪的效果(比如“蝴蝶结四边形”)。主要是API的一个限制影响3D加速,老实说,它需要至少有OpenGL 4.3能力的GPU硬件,在OpenGL 4.3中,引入了一个名为“Compute Shader计算着色器”的新功能,这个新组件为OpenGL提供了许多灵活性,并允许实现按行渲染四边形的例程。Kronos新的OpenGL CS渲染器在着手解决基于Yaba Sanshiro旧OpenGL渲染器上的问题,精确地再现VDP1处理行为是OpenGL CS渲染器的目的。

       当主机硬件和PC硬件非常不同,并且PC硬件速度足够快,可以在软件中模拟主机硬件处理,一开始就这样做的有SSF。不过,SSF开发者也使用了DX11 GPGPU加速,在GPU上运行Saturn模拟器虽然仍然无法获得更高的分辨率,但你的CPU会被完全释放。
---------------------------------------------------------------
       Yaba Sanshiro重新开始编写新的Vulkan图形仿真核心


       Yaba Sanshiro 源自Yabause代码库,由日本devMiyax开发,原名uoYabause,其中的uo代表 "Un official"非官方,uoYabause为Yabause的非官方移植【uoYabause网站已声明】,是合并了OpenGL ES 3.0硬件加速的Android版Yabause,于2015年底推出,因为它适用于Android,所以引起了轰动。2017/09/08更名为Yaba Sanshiro并发布了Windows版,与Android版同步定期更新。如果不熟悉Sega Saturn,可能觉得新的“Yaba Sanshiro”名字听起来像是胡言乱语,其实这是开发者对Sega Saturn官方吉祥物Segata Sanshiro世嘉三四郎的致敬。

       Yaba Sanshiro 2015年作为Yabause的一个分支开始开发,Yabause是一款已停止开发的模拟器,Yabause代表"Yet Another Buggy And Uncomplete Saturn Emulator"又一个漏洞百出不完整的土星模拟器;2003年发布,2016年开发团队在其官网宣布Yabause不再继续开发和维护。作为分支版的YabaSanshiro Windows版也一度停更,都因为不恰当使用OpenGL受API限制,硬件渲染不能再现土星VDP1的处理行为,产生出大量错误和其它各种各样的问题。SH2 Dynarec在4代i7上能达到70%的CPU使用率。Yabause及其衍生版uoYabause、Yaba Sanshiro硬件渲染看似有着更快、更好的视觉改进,实际是以严重缺陷为代价提供的。Yaba Sanshiro基于Yabause架构,devMiyax断断续续做着修复,至今仍未有根本性改善(图形和其它方面模拟不完整)兼容性表现一直很烂。

       Yaba Sanshiro原名uoYabause,作为Yabause非官方移植版uoYabause上架谷歌商店后,于2017年8月遭谷歌下架原因是uoYabause该名称与Yabause太相似了,有购买用户向谷歌投诉uoYabause该移植付费版是一个欺诈项目,稳定性、兼容性差评不断,有人在推特发文,认为该模拟器在VDP1、SH2、SCU 、SCSP这些部分上可能需要重做

       从谷歌将uoYabause从Play商店下架后该项目被devMiyax改名为Yaba Sanshiro,重新上架谷歌Play商店,不久又因包含Action Replay作 弊功能涉嫌违反谷歌Play商店的设备和网络滥用政策(作 弊功能可能会导致自动过滤器出现故障),2020年10月谷歌将包含Action Replay作 弊功能的Yaba Sanshiro列入黑名单之后它的名字更名为Yaba Sanshiro 2,重新上架谷歌Play商店,作 弊功能已被删除,而为之前Yaba Sanshiro专业版付费的用户由于失去了他们的许可证,所以必须再次为此版本付费。

       2018年12月由法国François开发适用于Windows、Linux端的Kronos(试图协调Yabause、Yaba Sanshiro的分支版),此分支以准确性为导向,以现代OpenGL为目标,同时实施急需的修复,其图形仿真水平在很大程度上高于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选择了Vulkan来初步实现新的图形仿真核心,devMiyax在4年前告知用户Vulkan不支持四边形渲染,只能通过镶嵌来处理。这里我查了下资料,PC端早在多年以前nVidia Maxwell GPU、AMD Radeon R7 250、intel MESA iGPU对于Vulkan的支持都可以实现ParaLLEl逐行渲染四边形例程绘制。Vulkan在Android下完全支持Compute Shader。

      由于土星模拟的瓶颈是多个VDP系统,硬件仿真必须分开来实现。此外,世嘉土星对CPU周期的要求非常严格,改变任何关于解释器的东西都可能需要重写与时序有关的一切。devMiyax接手Yabause开发有10年以上,考虑到硬件渲染造成的弊端矛盾,开发中在解决新bug的同时又会造成其它问题,顾此失彼陷于技术矛盾的问题处理。新版Yaba Sanshiro较旧版在兼容性、稳定性难有明显改善下,除UI界面优化调整不错外,其它方面变得更糟,若非自身程序Bug太多影响到付费用户与谷歌Play平台网络管理,招致两次除名下架在EMU圈子影响较大,开发者可能不会想办法从其它方面进行弥补。

      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上仍然存在问题...   此处提供了兼容性列表。


1

路过

雷人

握手

鸡蛋
3

鲜花

刚表态过的朋友 (4 人)

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

回复 zjwkof02 2023-7-3 10:48
mame只有mess0.148u1可以模拟kof95

facelist doodle 涂鸦板

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

小黑屋|手机版|Archiver|琵琶行论坛 ( 赣ICP备12000882号 )

GMT+8, 2023-12-8 21:18 , Processed in 0.024063 second(s), 7 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部