Hacker News 的 Show HN 栏目出现了 deadxwarrior 提交的 ps2-web-recomp 项目,它把 PS2 游戏静态重编译为 WebAssembly。该仓库的目标是让这类游戏能在 WebAssembly 环境(包括浏览器)中运行。提供材料没有给出已支持游戏列表、兼容性范围、性能数据或发行版本,因此这目前更像是一个技术演示或开源方向,而非已经验证可广泛使用的方案。
背景
这类项目走的是静态重编译(AOT)路线:与在运行时解释指令并模拟硬件的传统模拟器不同,它先把游戏的 Emotion Engine 机器码整体翻译成 C++,再编译为 WebAssembly,并链接到对该主机操作系统与硬件的重实现,由 WebGPU 负责绘制(tool-2-1、tool-2-3)。同一作者此前已把相同方法用于掌机:Horizon 10 月 8 日的日报曾报道 snuri00 的 psp-web-recomp,该项目把 PSP《战神》的 MIPS 机器码提前翻译为 C++ 再编译成 WebAssembly,链接到一个小型重实现的 PSP 操作系统和图形层,用 WebGL2 绘制,并且没有提供兼容性清单或性能保证(tool-1-1、tool-2-2)。本次可视为这条路线从 PSP 扩展到 PS2,渲染后端由 WebGL2 换成了 WebGPU。
参考链接
社区讨论
对想尝试的玩家和开发者来说,最直接的行动影响是信任与审查:静态重编译产物不像成熟模拟器那样已有社区审查记录,评论者明确担心其中可能隐藏恶意软件,因此在运行或分发前应检查源码与构建来源。
评论者 aceazzameen 担心,越来越多的静态重编译项目以原生方式运行,但其信任与审查水平还不及模拟器社区,可能带来隐藏恶意软件风险。开发者 kodablah 则报告自己用类似思路为 PS Vita 做了 ARM-to-WASM 转译器,目前只测试了少量游戏,仍处早期,但在旗舰 Android 手机的 Chrome 上运行得相当好。