用Claude在浏览器里跑PS2模拟器:TabStationToo实战

基于PCSX2核心、主要由Claude编写代码的浏览器PS2模拟器TabStationToo。
TabStationToo是一个把PS2模拟器搬进浏览器标签页的实验项目,基于PCSX2(GPL-3.0)核心改造,并配套了新的前端页面,用户加载自己的BIOS和光盘镜像即可游玩。项目最特别之处在于开发方式:绝大部分代码由Claude Opus5.5编写,人类负责决策、测试与规则制定,仓库中的CLAUDE.md/AGENTS.md为AI设定了必须credit PCSX2、未经测试不得声称可用等硬性约束。技术上,它用WebAssembly替代原生JIT翻译PS2代码,并把渲染器移植到WebGPU。优化过程要求像素级一致并完整记录每次尝试。多款游戏已接近满速,但最重场景仍偏慢,所有文件均在本地处理。
一个浏览器标签页里的PS2
把PS2模拟器塞进浏览器标签页,听起来像是个周末玩笑,但TabStationToo这个项目把它做出来了。作者在Reddit上分享了整个过程:他和朋友基于PCSX2(GPL-3.0)的核心,将其改造成能在浏览器中运行,并围绕它构建了新的前端页面。用户打开页面,选择自己的BIOS和光盘镜像文件夹,就能直接开始游戏。

这个项目最特别的地方不在于“浏览器跑模拟器”本身,而在于开发方式:绝大部分代码由Claude(Opus5.5)编写,人类负责决策、测试和反馈。作者坦言:“我们决定要构建什么、测试游戏并报告问题,Claude完成了大部分编程工作。”
当AI成为主要程序员
项目仓库里有一个CLAUDE.md/AGENTS.md文件,Claude每次会话开始时都会读取。这个文件说明了项目背景、浏览器限制、构建与测试方法,以及两条硬性规则:必须 credit PCSX2;未经测试不得声称功能可用。
这种协作模式的关键在于把AI放进一个有约束的工程流程里,而不是让它自由发挥。作者没有把Claude当作“代码生成器”,而是当作一个需要规则、需要验证、需要迭代的团队成员。
CLAUDE.md / AGENTS.md 是什么
AGENTS.md(以及Claude专用的CLAUDE.md)是近年AI编程工具生态中形成的一种约定:在仓库根目录放一个Markdown文件,用自然语言写明项目背景、构建命令、测试方式、代码风格和硬性禁忌。Claude Code、Cursor等工具会在每次会话开始时自动读取该文件,把它作为系统级上下文注入。
它的意义在于把“提示词”从一次性输入变成版本化的工程资产:规则随代码一起提交、一起评审、一起演化。TabStationToo里的两条硬性规则——必须credit PCSX2、未经测试不得声称功能可用——就是通过这种机制持续约束AI行为,而不是靠人每次口头提醒。这也是文章所说的“把AI放进有约束的工程流程”的具体载体。
技术难点:从机器码到WebAssembly
PCSX2在PC上快,是因为它把PS2代码翻译成PC原生机器码,而浏览器不允许这么做。作者用Claude写了替代方案:在游戏运行时把PS2代码翻译成WebAssembly,并与PCSX2原始代码逐项对比,确保结果完全一致。
图形渲染器也被移植到了WebGPU。这部分工作量不小,因为PCSX2的渲染管线积累了大量平台相关逻辑,移植到WebGPU需要重新设计不少环节。
PCSX2的JIT与动态重编译
PCSX2模拟PS2的核心依赖JIT(即时编译,Just-In-Time compilation)技术。PS2的CPU(Emotion Engine,MIPS架构)执行的是MIPS机器码,而PC是x86或ARM架构。PCSX2采用“动态重编译”策略:在游戏运行时,把遇到的MIPS指令块即时翻译成宿主机的原生机器码,并缓存起来反复执行。这种方式比逐条解释执行快一到两个数量级,这也是PCSX2能在PC上流畅运行的前提。
但浏览器环境禁止生成并执行任意原生机器码,JIT的这条路径被彻底堵死。作者选择把PS2代码翻译成WebAssembly,这仍然是“编译”思路,只不过目标换成了浏览器沙箱内可执行的字节码。难点在于:WebAssembly的语义与原生机器码不同,寄存器、内存模型、指令粒度都要重新映射,还要保证翻译结果与PCSX2原始代码“逐项一致”,否则会出现游戏逻辑错误或画面异常。
WebGPU是什么
WebGPU是新一代浏览器图形与计算API,由W3C GPU for the Web工作组制定,Chrome、Edge、Firefox、Safari等主流浏览器已陆续支持。它取代了WebGL,直接映射到现代图形后端(Vulkan、Metal、Direct3D 12),提供更低的开销、更灵活的资源绑定和计算着色器能力。
PCSX2的图形渲染器原本基于GSdx插件,内部大量使用Direct3D/OpenGL/Vulkan的平台相关逻辑,包括纹理格式转换、着色器生成、状态管理等。把这些逻辑搬到WebGPU并非简单替换API:WebGPU的管线状态需要预先创建、绑定组布局要显式声明、着色器语言使用WGSL,很多在原生图形API中“顺手”的操作在WebGPU里要重新设计。这也是作者说“工作量不小”的原因。
让模拟器在标签页里跑顺
优化占据了最多时间。作者对每个优化想法都要求Claude检查画面是否保持像素级一致,并记录每一次尝试——包括大量最终被放弃的方案。这种“像素一致+完整日志”的纪律,让优化过程可追溯,也避免了为了速度牺牲正确性。
测试覆盖了《吉他英雄》《GTA San Andreas》《最终幻想XII》《龙珠Z 电光火石3》《火影忍者疾风传:究极忍者风暴5》和《生化危机4》。主要测试机是一台M1 Max Mac和一台Ryzen 7 7840U的Linux系统。作者表示,许多游戏现在已能接近满速运行,但最重的场景仍然偏慢。
像素级一致为什么是优化的安全网
模拟器优化的最大风险是“看起来更快了,但某些画面悄悄变了”:贴图错位、纹理过滤偏差、帧混合顺序不同,往往只在特定场景或特定游戏里暴露,靠肉眼抽查很难发现。要求每次优化后画面与基线逐像素一致,相当于给每次改动加了一道自动化回归测试——只要像素有差异,就说明这次优化改变了渲染语义,需要回退或重新设计。
配合“记录每一次尝试(包括被放弃的方案)”,这套纪律还解决了AI协作中的一个隐性问题:AI容易重复提出曾经失败过的思路。完整的尝试日志让被否定的方案有据可查,避免在同一个坑里反复打转,也让后来者能看到哪些优化方向已被证伪。
隐私与独立性
所有文件都留在用户电脑上,不会上传。游戏直接从用户自己的光盘镜像读取。项目独立于Sony和PCSX2团队,作者特别强调不要把TabStationToo的bug报给PCSX2。目前项目仍处于早期实验阶段,作者在收集哪些游戏能跑通的反馈。
对AI辅助开发的启示
TabStationToo展示了一种正在成形的开发范式:AI承担大量编码,人类负责架构决策、测试验证和规则制定。难点不在于让AI写出代码,而在于建立一套让AI代码可信的流程——规则文件、自动测试、像素对比、尝试日志,这些都是让“AI写的代码”变成“可用的软件”的关键。
对于想尝试类似路径的开发者,这个项目的经验很直接:给AI明确的边界和验证手段,比给它更长的提示词更有用。
相关推荐

大模型应用开发:普通人的高薪入行指南
大模型应用开发岗位应届生薪资高达3万5,SP Offer可达60万,且不看出身。本文解析这一高薪岗位的核心能力、入行方法,并分享普通人如何通过“干中学”抓住AI时代机遇。

告别AI网红脸:零基础漫剧视觉资产制作全攻略
B站UP主分享零基础AI漫剧视觉资产制作全流程:用豆包工作skill通过剧本先行、视觉参考、注入活人感三种方法摆脱AI网红脸,再用资产版排版、武器细节图、场景九宫格和电影色版锁定角色与场景一致性。

好视频背后的AI制作流程:从调研到智能体验证
AI视频制作不只是模型竞赛。本文拆解一套可迁移的四步流水线:调研专业流程、整理技能清单、配置智能体、实验验证,并说明如何用DeepSeek等通用大模型替代付费工具跑通全流程。