全速加载中...
首页
文章
随笔
留言
友链
工具
摄影
关于
更多
湘ICP备2021007748号-4
湘公网安备案湘公网安备43052202000137号
又拍云
加载中...

把PS5装进Windows:二进制重链接如何重写游戏移植的规则

当"不可能"成为可能

游戏移植史上,有一条铁律:主机游戏想在PC上运行,只有两条路——等厂商移植,或者造一个模拟器。前者依赖商业利益驱动,后者则是技术硬骨头。但2026年9月,一个GitHub仓库彻底改变了这个叙事。

独立开发者boykopovar发布了AnyPS5项目,短短数周内星数突破17,700,成为当周GitHub趋势榜第一名。它的承诺很疯狂:让PS5的游戏二进制文件直接在Windows和Linux上原生运行,不靠模拟,不靠虚拟化,只做一件事——二进制重链接。

这不是又一个模拟器尝试,而是一种全新的技术路径。

传统路径的困境

要理解AnyPS5的革命性,先要看传统方案的困境。

模拟器方案需要在软件层面完整模拟PS5的硬件架构:AMD Zen 2 CPU、RDNA 2 GPU、定制的Orbis操作系统。这意味着PC的每一条指令都要经过翻译,性能损耗通常在30%-50%以上,对硬件要求极高。

厂商移植方案则受制于商业逻辑——索尼是否有动力、是否有资源、是否有时间表来适配PC平台。《最后的生还者》等了七年,《神秘海域》等了八年,玩家等得起,但新技术等不起。

AnyPS5的选择第三条路:不模拟硬件,不等待厂商,直接把PS5的二进制文件改写成PC能运行的格式。

核心技术:二进制重链接

什么是重链接?

二进制重链接(Binary Relinking)是一种修改已编译程序的技术。与反编译后重新编写代码不同,重链接器直接操作机器码,修改指令地址、调用约定和数据访问方式,使程序能在目标平台上运行。

传统重链接工具(如Wine、Box86)面向的是x86到x86或ARM到x86这种相近架构的转换。而AnyPS5面对的是完全不同的指令集、不同的ABI(应用二进制接口)、不同的操作系统调用约定。

AnyPS5的重链接器

根据项目文档,AnyPS5的核心是一个完全用C++20编写的专用重链接器。它的工作流程如下:

  1. 读取ELF文件:PS5的二进制文件是ELF格式(Linux/Unix标准),重链接器解析其结构,识别代码段、数据段、导入表、导出表
  2. 重建调用图:分析函数间的调用关系,构建完整的控制流图
  3. 转换指令:将PS5的SPE(Synergistic Processing Element)协处理器指令转换为x86-64等价指令
  4. 适配ABI:SysV ABI(PS5/Linux使用)与Microsoft x64调用约定不同,需要转译参数传递方式、寄存器使用规则
  5. 构建输出:生成Windows PE格式或Linux ELF格式的可执行文件

关键创新在于确定性重建:每次重链接产生相同的输出,这对于调试和验证至关重要。

系统兼容层

光有重链接器还不够。PS5程序会调用大量系统API:内核服务、图形API、手柄输入、奖杯系统等。AnyPS5的做法是提供一套替代实现:

  • libkernel:核心系统服务,已实现基础函数
  • libc:标准C库,已实现基本IO和内存管理
  • libScePad:手柄管理子系统
  • NpTrophy2:PSN奖杯同步模块

未实现的系统调用会抛出包含详细信息的异常,开发者可以快速定位缺失部分。这种"按需实现"的策略避免了全量模拟的沉重负担。

图形子系统:从封闭到开放

PS5的图形栈是一个黑盒:索尼定制了从Vulkan前端到RDNA 2后端的完整渲染管线。AnyPS5需要打通这条链路。

解决方案是分两层处理:

第一层:应用层API转发
libSceAgc和libSceAgcDriver的底层调用被转发到标准Vulkan API。这意味着游戏代码以为自己在调用索尼的专有API,实际上请求被转译成了Vulkan命令。

第二层:着色器转译
这是最困难的部分。PS5使用SPIR-V格式的着色器,但指令集不同。AnyPS5实现了实时着色器重编译器,将主机指令转换为PC显卡可执行的格式。

开发者已经验证了这一流程:通过重编译成功渲染了一个三角形,并且通过了Vulkan驱动校验。这证明图形链路的可行性。

里程碑:进入主渲染循环

根据项目进展,AnyPS5已经超越了合成测试阶段。测试结果显示:

  • 成功越过启动入口点
  • 初始化了音频和视频输出模块
  • 走完了一条栈帧约64KB的深层调用链
  • 从存储设备完整读取了所需着色器资源

目前卡在着色器动态转译子系统。商业游戏的首次绘制阶段需要转译大量着色器,AnyPS5的转译器还需要进一步完善。

这不仅仅是游戏

AnyPS5的技术路径影响深远:

软件考古价值:对于已停产主机的游戏,二进制重链接是唯一可行的保存方式。模拟器可能因为硬件架构失传而无法构建,但只要拿到二进制文件,重链接就能让它在新平台上运行。

互操作性研究:项目明确标注用于"interoperability, research, preservation, and compatibility purposes",不包含任何加密密钥或受版权保护的代码。这种开放性为学术研究提供了珍贵样本。

跨平台部署新思路:值得注意的是,有开发者已经探索将AnyPS5生成的可执行文件部署到Kubernetes集群中。虽然这是实验性质的应用,但展示了技术路径的延展性。

我的判断

AnyPS5的意义不在于"让PS5游戏在PC上玩"——这只是一个引人注目的案例。它真正的价值在于证明了二进制重链接可以成为传统模拟器和厂商移植之外的第三条路。

这条路的优势是明确的:

  1. 性能接近原生:没有虚拟化开销,没有指令翻译层,只是格式转换
  2. 开发周期短:不需要等待厂商,不需要完整模拟硬件
  3. 可扩展性强:技术路径可复用于其他封闭平台

挑战同样明显:

  1. 指令集差异越大越难:PS5到x86-64是相近架构,跨越架构鸿沟(如ARM到x86)难度陡增
  2. 私有API破解成本高:需要逆向工程每个系统调用
  3. 法律和道德边界:虽然项目声明仅用于研究,但任何绕过DRM的工具都面临法律风险

我认为,AnyPS5的出现标志着一个新纪元的开始。当开源社区能够用C++和几行配置,在几个月内打通一个价值500美元的主机到主流PC平台的通道,我们看到的不仅是一项技术突破,更是技术民主化的缩影。

未来的游戏移植市场,可能会分化成三条赛道:厂商官方移植、AI辅助逆向工程、以及类似AnyPS5的二进制重链接工具。这三条路各有适用场景,共同推动着"任何内容在任何平台上运行"这一愿景的实现。

参考链接

AnyPS5 GitHub仓库
开发者打造AnyPS5:让PS5游戏原生运行于Windows和Linux - 18183
不用等索尼移植了!黑科技AnyPS5曝光 - 今日头条
PS5游戏PC运行新解:AnyPS5非模拟直转原生 - Bilibili

✨ 本文来自【张苹果博客】 ✨
🌿 你可以:自由转载到社交网络或个人网站。
🌿 你需要:标注作者并附上本文链接(就像给文章留个回家地址~)。

上一篇
用户头像
小苹果
发布日期:2026年10月09日

在线工具

目录

评论一下

评论列表

 
暂无评论
用户头像
小苹果
发布日期:2026年10月09日