工具
PS2 Web Recomp 浏览器游戏重编译工具
将 PlayStation 2 游戏静态重编译后在浏览器中运行:eerecomp 把游戏启动程序中的 Emotion Engine 代码转换为 C++,再编译为 WebAssembly;运行时负责仿真主机的其余部分,包括高层仿真的 EE 内核、以解释器运行光盘 IRX 模块的 I/O 处理器、向量单元、SPU2 音频,以及基于 WebGPU 计算着色器的 Graphics Synthesizer。其移植脚本会反复进行无界面运行,找出经指针调用的函数和需要预先编译的向量单元微程序,最后构建网页和原生运行程序。
使用条件与局限
- README 报告目前已移植两款游戏:PAL 版 Gran Turismo 4 可在 Chrome 中全速运行,从启动一直玩到比赛;God of War II 可从菜单进入战斗,它没有用到任何游戏专用代码,但暴露了重编译器中的一个错误和向量单元时序中的一个错误。README 提醒,其他游戏很可能停在尚未实现的系统调用、IOP 库函数或 GS 功能上,而且向量单元的计算结果可能在最后一位与主机不同。
- 使用者需自备所拥有游戏的光盘镜像;仓库不含任何游戏代码或数据。README 说明生成的 C++ 和构建出的 WebAssembly 是对游戏可执行文件的转换,归游戏权利人所有,要求使用者只保留在自己的机器上、不得公开发布,并提醒任何能访问本地服务器的人都可以加载该游戏。
- 移植需要 Git、CMake 3.20+、Ninja、C++20 编译器(首选 Clang)、Python 3,镜像为 .7z 时还需 7-Zip;首次运行会安装 Emscripten SDK 并下载 wgpu-native,原生窗口还需要 SDL2。全部流程均在 x86-64 Linux 上运行过,脚本也能在 Apple 芯片的 macOS 上构建;每款游戏约需 300 MB 磁盘空间。网页需要 WebGPU,Linux 版 Chrome 须开启实验性开关才能使用(软件渲染回退对 3D 而言过慢),还需要跨源隔离响应头和 HTTP Range 支持。
- 项目没有发布版本、标签或 CI 工作流。scripts/test_vu_codegen.py 无需游戏光盘即可测试原生与 WebAssembly 的向量单元代码生成,软件 GS 光栅化器则保留为 GPU 输出的比对基准。帧率数据是作者在一台笔记本上的测量结果。审阅时最后一次提交为 2026-10-19。
- 采用 MIT 许可证;MPEG 解码器中改编自 Play! 的 VLC 表保留其 BSD 2-clause 声明,README 将 PCSX2、Play! 和 ps2sdk 头文件列为行为参考。项目声明与 Sony 及各游戏发行商无关联。本目录未构建或运行该工具,也不代表任何游戏兼容性。
关于此条目
- 类型
- 工具
- 类别
- 游戏分析工具
- 关联
- 基础工具
- 目标
- 二进制 · 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · snuri00/ps2-web-recomp · 修订 6526f48
- scripts/port.sh GitHub · snuri00/ps2-web-recomp · 修订 6526f48
- scripts/test_vu_codegen.py GitHub · snuri00/ps2-web-recomp · 修订 6526f48
- CMakeLists.txt GitHub · snuri00/ps2-web-recomp · 修订 6526f48
- LICENSE GitHub · snuri00/ps2-web-recomp · 修订 6526f48
- runtime/src/ipu/NOTICE GitHub · snuri00/ps2-web-recomp · 修订 6526f48