最新新闻 (CN)

开发人员开发软件将 PlayStation 2 游戏转换为本地 PC 可执行文件

PlayStation
照片: PlayStation - 照片: Tom Eversley / Shutterstock.com

一位名为 ran-j 的开发人员发布了一款名为 PS2Recomp 的开源工具,旨在将 PlayStation 2 游戏转换为计算机的本机可执行文件。系统处理磁盘上的原始文件,并将其转换为与Windows和Linux等现代操作系统兼容的独立应用程序。这种方法消除了对传统模拟器的需求。该软件直接作用于游戏结构。

由于二十多年前推出的硬件老化,数字目录的保存面临直接障碍。新方法解决了对需要高处理能力的物理控制台或仿真软件的依赖。这种范式转变确保了子孙后代仍能接触到电子游戏的文化遗产。以前的逆向工程过程需要整个团队花费数年的时间来翻译单个游戏的代码。

新系统的静态重新编译如何工作

静态重新编译技术的工作原理与传统仿真不同。传统的模拟器创建一个虚拟机,在运行时将来自控制台的指令实时转换到计算机。该过程对处理能力要求较高,且经常出现性能下降的情况。 PS2Recomp 采用了早期的策略。该程序在用户开始游戏之前就执行所有代码转换。

在转换过程中,该工具基于PlayStation 2中使用的MIPS架构分析原始二进制代码,并将其直接翻译为与当前x86-64处理器兼容的C++语言。生成的文件像常规计算机程序一样运行。操作系统直接管理内存和处理资源。中间翻译层不再存在,这大大减少了计算机处理器的负载。配置适中的机器可以流畅运行游戏。

用户必须拥有游戏的合法副本才能提取原始数据并开始转换。该工具从磁盘读取信息并生成一个干净的可执行文件。生成的代码忽略了当时原始硬件所施加的限制。独立开发人员可以访问控制台的源代码并进行在封闭格式中不可能进行的修改。改装社区可以完全访问内部文件。

原主机架构的技术挑战

PlayStation 2 具有复杂的内部架构,以情感引擎处理器为中心。该芯片包含与其他组件同步运行的定制矢量处理单元。这种特定硬件的数据路由逻辑使其难以准确地转换为现代计算机。原始组件之间的时间同步是重建系统的最大技术障碍。 PS2Recomp 通过创建独立的执行配置文件来解决此问题。

该工具使用软件翻译引擎来映射指令并将数学运算合并到当前标准中。开发人员将该项目集成到互联网上的协作平台中。世界各地的程序员在开放存储库中共享破译的代码片段。系统分析用户输入的数据并对编译失败进行自动更正。集体努力加速了该工具的开发。

该软件隔离了无法自动翻译的代码部分,并允许人工干预。专家分析原始逻辑并用 C++ 创建手动解决方案。项目数据库存储修复并将其应用于将来的类似情况。每处理一个新游戏,转换成功率就会增加。随着系统从以前的解决方案中学习,手动调整的需求会减少。

电脑玩家的直接优势

计算机上的本机执行使游戏摆脱了显像管电视和当时内存限制的技术限制。该游戏现在充分利用了现代显卡和处理器的能力。官方功能列出了详细的性能改进。

  • 原生支持 4K 分辨率和超宽显示,界面不会失真。
  • 删除了帧速率锁定,允许以每秒 60 或 120 帧的速度进行游戏。
  • 由于直接从 SSD 存储驱动器读取,加载时间大幅减少。
  • 用粉丝创建的高分辨率三维模型轻松替换旧纹理。
  • 与现代操作系统集成,无需复杂的插件配置。

没有等待时间改变了依赖加载屏幕来管理控制台有限内存的游戏的动态。即时访问 SSD 上的数据可实现场景之间的立即转换。纹理修改发生在程序级别,修改者会在执行期间插入替换原始文件的高清图像。开源代码可以轻松实现现代照明和高级阴影效果。

第一个可玩的游戏以及社区的后续步骤

第一个通过 PS2Recomp 达到完整游戏状态的游戏是 Sly Cooper 和 Thievius Raccoonus。该平台标题作为测试基础,以证明本机执行在复杂的三维环境中的可行性。它运行时没有图形故障或音频同步问题。测试的成功引起了其他具有逆向工程经验的程序员的注意。

用户社区组织投票来决定即将发生的转化的优先顺序。 《古惑狼》和《杰克 II》等经典系列游戏在论坛上的请求列表中名列前茅。任何具有编程知识的人都可以使用 GitHub 平台上提供的文件开始转换游戏。该存储库每天都会收到独立测试人员报告的代码优化和错误修复更新。

项目文档需要熟悉命令行和编译软件以从原始磁盘中提取数据。当前的过程疏远了寻求快速安装解决方案的普通用户。该工具的创建者致力于简化操作步骤并开发用户友好的图形界面。该小组的目标是实现整个工作流程的自动化。

建立软件保存的新标准改变了对硬件公司的商业依赖。现在数字作品的维护依赖于技术知识的分散。静态重新编译方法正在开始研究在其他旧平台上的应用。维护视频游戏遗产的责任转移到了全球技术社区身上。