AnyPS5
一句话简介
一个面向 PS5 的开源工具项目,基于 C++ 实现,可能用于模拟或操作 PS5 主机功能。
标签
适用应用场景
- PS5 主机功能模拟与测试
- PS5 平台相关工具开发
- 游戏主机安全研究
- PS5 软件兼容性测试
README 中文摘要
项目简介
AnyPS5 是一款自动将可执行文件移植到 Linux 和 Windows 的工具。仅构建重链接器(relinker)时可在 macOS 上运行,包括 Apple Silicon 芯片。
项目提供在线 Web 转换器,文件全程在本地设备处理,不会上传到服务器。其核心思路是:把可执行文件转换为目标系统的原生格式,并提供可在动态链接时使用的系统 prx 库实现,无需模拟器或独立的运行时进程。
状态
项目维护两类实时进度指标:系统函数库的覆盖率和着色器(shader)的重编译进度,均托管在独立的 progress 页面上。系统库百分比统计的是项目已知的 PS5 系统函数数量(声明于 core/libs/prx 目录),而非 PS5 系统函数的总数;随着更多函数被声明,分子分母都会同步增长。
遇到不支持或异常状态时,程序会直接抛出 std::runtime_error,将 what() 输出到 stderr 后终止进程。着色器重编译器能够稳定输出 SPIR-V 字节码;在编译时启用 ANYPS5_ENABLE_SPIRV_TOOLS 宏后,会通过 Spirv-Tools 进行验证。
兼容性
每款游戏的移植进度(所达阶段、未解决的阻碍、库与 GPU 覆盖率)记录在社区维护的 blocker map 上,数据来源于公开的 GitHub Issue 和讨论区。玩家提交测试报告时,应在 Discussions 的 Game bring-up 分类下为每个游戏标题单独开一个帖子。
输入映射
支持 SDL 映射的各类游戏手柄,包括摇杆和扳机等模拟输入。键盘鼠标可通过项目根目录下的 anyps5-input.ini 文件进行配置,详细说明参见 input mapping 文档,其中列出了受支持的设备型号与配置文件格式。
核心子模块
core/relinker:可执行文件格式转换器,将源二进制转换为目标平台的原生可执行格式core/libs/prx:PS5 系统 prx 库的实现,供动态链接使用core/shader/recompiler:SPIR-V 着色器重编译器,入口为Recompiler.cpp3rdparty/SPIRV-Tools:可选的 SPIR-V 验证工具
常用 CLI 与构建选项
# 仅构建 relinker(可在 macOS / Apple Silicon 上运行)
cmake -S . -B build -DANYPS5_RELINKER_ONLY=ON
# 启用 SPIR-V 验证(构建时需要 Spirv-Tools)
cmake -S . -B build -DANYPS5_ENABLE_SPIRV_TOOLS=ON
cmake --build build --parallel
关键文档
- 使用说明:
docs/user/USAGE.md - 输入映射配置:
docs/user/INPUT_MAPPING.md - 构建指令:
docs/dev/BUILD.md - 架构设计:
docs/dev/ARCHITECTURE.md - 技术债务清单:
docs/dev/TechnicalDebt.md - 代码风格规范:
docs/dev/CONVENTIONS.md - 贡献指南:
CONTRIBUTING.md
免责声明
本项目仅用于互操作性、研究、保存与兼容性目的,不包含、不分发也不要求任何受版权保护的软件、固件、加密密钥或专有库。用户须自行确保所使用的二进制文件来源合法,并符合所在司法辖区的法律法规及各许可证条款。
许可证
本项目仅基于 GNU 通用公共许可证第 2 版(GPL-2.0-only)发布。
摘要更新于 2026-10-19 01:21:34
· 原文 3039 字符
· md5 1202b4e35fad…