独立开发者 boykopovar 公布了 AnyPS5 项目,目标是在 Windows 和 Linux 上直接运行 PlayStation 5 的二进制文件。传统模拟器需要庞大的硬件资源来虚拟化主机的封闭架构,而这款工具本质上是一个可执行文件转换器加兼容层:它读取 PS5 原生的 ELF 文件,在二进制接口层面适配到现代 PC 架构。
项目的核心是一个完全用 C++20 标准库编写的专用重链接器。它能确定性地重建代码,把主机的数据结构转换为原生可执行文件,包括面向 Windows 的 PE 格式。程序会构建栈展开表、适配系统异常处理,并把 SysV ABI 调用约定转译到 x86-64 执行环境。当前版本在微软平台上使用 MinGW-w64 GCC 15.2.0 工具链构建组件。
与此同时,开发者正在积极编写主机 PRX 格式系统动态库的替代实现。项目中已经出现了内核基础函数 libkernel、标准库 libc、手柄管理子系统 libScePad、系统服务乃至奖杯同步模块 NpTrophy2 的实现。所有尚未实现的系统调用都会向控制台抛出信息丰富的异常,方便在运行时详细追踪游戏代码的需求。
AnyPS5 的图形子系统建立在将主机封闭指令转译到现代开放标准之上。窗口界面与视频输出通过 SDL2 库实现,libSceAgc 和 libSceAgcDriver 库的底层调用则被转发到 Vulkan 图形 API。开发者已报告成功通过一项测试:经由 SPIR-V 渲染出一个三角形,画面无错误地通过了驱动校验并显示在屏幕上。
这款工具已经远远超出合成测试的范围,成功触及了一款真实商业游戏的主渲染循环。根据项目仓库中的描述,测试二进制文件已能顺利越过启动入口点,初始化音频与视频输出模块,走完一条栈帧约 64KB 的深层调用链,并从存储设备完整读取所需的着色器资源。
目前通往完整画面的主要障碍是着色器动态转译子系统。索尼主机采用 RDNA 图形架构,其指令需要实时转换为 PC 显卡可用的格式。商业应用的执行会在首次绘制阶段停下,卡在着色器重编译器模块。仓库中最近的一系列更新正是为了构建图形芯片的向量、标量与空间指令转译器。
AnyPS5 的创作者对程序的分发持强硬立场:在至少一款 PlayStation 5 游戏展示出完整且稳定的运行之前,不会发布首批公开版本和现成构建。该项目以 GPL-2.0 许可证分发,仅用于研究目的,不包含索尼公司的加密密钥、固件或受版权保护的代码。



