我如何结识PlayStation 2和PlayStation Portable(扰流器-合并为一个模拟器)的朋友

各位读者好 去年,我发布了我的业余爱好项目Red Omega PS2仿真器 。 这个想法是通过触摸屏使原始PCSX2仿真器的控制适应Surface Pro上的游戏。

原始PCSX2仿真器代码以DLL模块的形式重写,并通过WPF上的图形界面加载到C#代码中。 该项目证明是可行且成功的-最终幻想X和最终幻想XII轰然一跳。 但是六个月前,我在Steam上发现了与《女武神纪事4》的链接。 我购买了光盘上的第一本《女武神编年史》并“打了”我,但有一个问题-第二和第三本在哪里! 很快就找到了答案-这些续集仅在游戏机上出现。 事实证明,通过PPSSPP模拟器,可用于PlayStation Portable的版本是最易于访问的版本。 智能手机还不错,但是在Surface Pro上,我不喜欢通过Touch进行控制。 是的,从Omega Red切换到PPSSPP,反之亦然。 然后出现了一个“疯狂的”想法-以DLL模块的形式重写原始的PPSSPP代码! 并将Omega Red变成适用于PlayStation 2和PlayStation Portable游戏的平台!!!


说起来容易,但要做起来却困难得多。 原始的PPSSPP模拟器正在作为一个开放源代码项目开发,并且可以以完整的代码形式进行研究和修改。 该代码很有趣,可以在各种图形API上运行:OpenGL,DirectX9,DirectX11,Vulkan。 此外,它具有内置的GUI。 但是PPSSPP架构比PCSX2更“清晰”-简化了模块化和依赖性。 实现我的想法的主要关键是能够加载游戏光盘并将其保存为程序的参数。 基本解决方案是将输入的EXE函数重写为EXPORTED DLL函数。 当然,创建第二个“窗口”,将图形渲染器的输出重定向到WPF图形上下文,连接Touch代码等将存在问题。 等等,但是当我重写PCSX2的代码时,我已经决定了所有这一切-可行的模板已经存在。

结果是什么-解决方案有效! 可以在一个解决方案中结合两个如此不同的仿真器,并在不同仿真器的游戏之间进行无缝切换。 可以在视频上评估结果:


此外,与Red Omega PS2模拟器的第一个发行版相比,我还要提到以下更改:

1.更改了配色方案-注释表明界面的配色方案不便-红色。 给您带来不便之处-但我决定添加一个反向范围的“蓝色”:

图片

2.镶嵌-为PCSX2游戏添加了DirectX 11的“镶嵌”功能,此功能可增加模型的多边形数量:

图片

从“渲染模式”选项中选择“镶嵌”:

图片

默认

图片

棋盘格化

图片

默认

图片

棋盘格化

图片

3. FXAA-对于PCSX2上的游戏,已添加“启用FXAA”功能以删除沿多边形边界的台阶-该解决方案无法完美运行,但可以:

图片

4.快速保存-使用一个命令保存仿真器状态:

图片

5.音量控制:

图片

目前,该程序可在以下位置获得: Omega Red,并在GitHub上展示: OmegaRed

Source: https://habr.com/ru/post/zh-CN445022/


All Articles