琵琶行论坛

 找回密码
 注册

增强型PS模拟器发展史

热度 1已有 912 次阅读2023-1-20 15:49 |个人分类:模拟日志| PS模拟器

1997年,网上出现了两款名为PSemu Pro和Psyke的PS模拟器软件,但这两款软件兼容性问题严重。

1999年,VGS和Bleem两款商业模拟器软件出现。Bleem是一款完全自主开发的软件,在开发之前,就已经完成了对索尼PS的逆向工程研究,该款新PS模拟器首度提供了画质增强功能,Bleem的出现时间比VGS要稍微晚一些,用Bleem模拟器运行的游戏画面比PS主机上的原版画面还要更好。

2000年,出现了一款增强型PSX模拟器ePSXe(全称:enhanced PSX emulator),应用了当时流行的PSEmu Pro插件系统,即PSEmu Pro在停止测试后该项目就被泄露给了公众,采用该插件架构的包括之后出现的ePSXe、PSeven、SSPSX、pSX、PCSX-R。PCSX2、Project64也是建立在PSEmu Pro架构之上,直到2021年PCSX2 1.7.0开发版才完全摆脱插件,不再支持加载任何外部插件。

2012年以前ePSXe开发组就为避开插件接口,方便移植安卓平台的需要,增加了图形、音频的内核处理(将原插件合并进核心程序后)保持了最大程度的兼容性,支持软件和硬件高清增强型渲染,原插件功能也仍然保留。

2015年ePSXe PC版内核处理功能增加了音频核心。

2016年ePSXe PC版更新以安卓版为样本,内核处理增加了OpenGL2硬件渲染核心。除音频核心、GPU软件渲染核心能正确模拟外,OpenGL2 GPU硬件渲染器在插件接口上延续了PSEmu Pro的帧预测(缺乏IRQ)处理,内核在插件接口上不能正确感知量化视频帧与音频帧(内核通过GPU驱动程序注入插件),对时间敏感的游戏会以各种方式出现帧率问题。

同年,PCSX-Reloaded整合了PGXP (Parallel/Precision Geometry Transform Pipeline) 增强功能。虽然PCSX-R在功能方面早已超越ePSXe,但由于使用PSEmu Pro插件接口来提供大部分功能,同样内核在插件接口上不能正确感知量化视频帧与音频帧。核心问题是,插件的规范没有进一步发展。如果你在核心程序和插件之间定义API,你还需要不时地重新调整规范,因为你不能一次涵盖所有内容。显然ePSXe、PCSXR开发者已经放弃它了,所以不要希望会有任何更新修复。有待于后来者通过创建单一的整体代码库,摆脱插件系统来处理PlayStation模拟的所有方面。

2016年5月31日,一个三方组建的联合团队发布了Mednafen/Beetle PSX HW增强型模拟器,同年为Beetle/Mednafen PSX引入Vulkan PSX渲染器,在图形模拟核心 (硬件OpenGL、Vulkan) 之外内置现代增强功能,如PGXP透视校正纹理和亚像素精度等,2020年开始支持纹理替换。Mednafen/Beetle PSX HW是第一个使用现代图形渲染器,内核整体架构,完全摆脱PSEmu Pro插件架构的增强型PS1模拟器。

2020年,澳大利亚stenzek发布了DuckStation,是继Mednafen/Beetle PSX HW后,第二个完全摆脱PSEmu Pro插件架构的增强型PSX模拟器初期预览 (Preview) 版完成度较高,一般用于给开发者测试Bug以及尝鲜用户的吐槽,目前处于积极开发中,通常一个模拟器持续开发至少5年才比较成熟。

路过

雷人

握手

鸡蛋

鲜花

发表评论 评论 (6 个评论)

回复 zjwkof02 2023-7-2 12:45
我最初用的是Emurayden PSX Emulator v2.2
回复 红莲火焰 2023-7-2 20:43
zjwkof02: 我最初用的是Emurayden PSX Emulator v2.2
VGS改版,在VGS的基础上增加了一些兼容性
回复 zjwkof02 2023-7-2 21:33
DuckStation和xebra是暂时保留的两款模拟器,但是在侍魂武士道列传通关黑屏的问题上,这两个模拟器后期都是负更新……
回复 红莲火焰 2023-7-3 11:12
不是PS模拟器后期都是负更新,如果你阅读xebra221106更新说明,就会知道它有相应的设置来解决你遇到这类问题,包括DuckStation也是如此。
回复 红莲火焰 2023-7-3 11:12
xebra221106 更新了模拟模式中的(CPU)指令缓存速率项。可通过提高(CPU)指令缓存速率(近周期精确)解决黑屏问题。

由于FMV是重复的例行程序,所以在指令缓存命中率很高的假设下,它们很容易被编程。
因此,在某些情况下,每条指令所需的时钟数,或者用XEBRA术语来说,指令缓存速率应该被设定为一个小值。
另一方面,作为FMV来源的CD数据传输可能会占用主内存很长时间。

如果这时没有命中指令缓存,CPU就会停顿很长时间。每条指令所需的时钟数可能会变得非常大。
在某些情况下,即使在处理FMV冻结时,也应该提高指令缓存速率。
由于发现0x28(指令缓存速率22)在某些情况下是不够的,所以可以直接将指令缓存率指定到0x30(指令缓存速率24)。


DuckStation的CPU重编译器 (实现部分动态代码生成和调度功能) 经Amidog PSX CPU基准测试其性能很差,一些游戏会出现中断挂起。
当我发现该问题时DuckStation刚好宣布停更,在复更后没多久作者stenzek加入了I Cache(CPU指令缓存重编译器)来提高指令缓存命中率(默认为不开启),解决了一些游戏的中断挂起。大多数情况下,也可以通过CPU超频运行得更快或更慢来避免。
回复 zjwkof02 2023-7-3 11:17
感谢答疑

facelist doodle 涂鸦板

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

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

GMT+8, 2024-5-10 19:05 , Processed in 0.015672 second(s), 7 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部