We used Claude to get a full PS2 emulator running in a browser tab: TabStationToo
PCSX2 기반 PS2 에뮬레이터, 브라우저 탭에서 게임 실행
TabStationToo는 PCSX2를 WebAssembly로 빌드하고 브라우저용 실행 환경을 더해 PS2 게임을 구동하는 프로젝트입니다. 제작자들은 Claude를 개발에 활용했다고 밝혔으며, 저장소는 Chrome에서 일부 게임이 원래 속도에 가까이 실행된다고 보고합니다.
- 주제
본문
TabStationToo는 PCSX2를 WebAssembly로 빌드해 브라우저에서 PS2 게임을 실행하는 독립 프로젝트입니다. 브라우저에서 PCSX2의 기존 재컴파일 방식을 쓸 수 없는 조건에 맞춰 WebAssembly용 JIT를 구현하고 그래픽 렌더러를 WebGPU로 옮겼습니다. 사용자는 자신의 PS2 BIOS와 게임 디스크 이미지를 준비해야 합니다. 프로젝트가 공개한 테스트에서는 일부 게임과 장면이 Chrome에서 원래 속도에 가까이 실행됐지만 성능은 게임과 기기 환경에 따라 달라집니다.
PCSX2를 브라우저에 맞추다
TabStationToo는 PCSX2의 C/C++ 코어를 Emscripten으로 WebAssembly에 빌드하고 브라우저용 페이지를 붙였습니다. 저장소는 데스크톱 Chrome과 Edge를 안내하고 Firefox에서도 작동한다고 설명합니다.
성능을 좌우하는 한 부분은 PS2 CPU 명령어 처리입니다. PCSX2는 데스크톱에서 PS2 코드를 x86이나 ARM 기계어로 다시 컴파일하지만, 브라우저에서는 그 방식으로 생성한 코드를 실행할 수 없습니다. TabStationToo는 이 제약에 대응해 EE, IOP, VU0, VU1 처리용 JIT를 구현했습니다. 실행 중에 코드를 WebAssembly 모듈로 만들며, 프로젝트 설명에 따르면 결과를 PCSX2 인터프리터와 비트 단위로 대조합니다.
그래픽에는 PCSX2 하드웨어 렌더러를 옮긴 WebGPU를 사용합니다. WebGPU를 사용할 수 없는 환경에서는 PCSX2 소프트웨어 렌더러로 전환해 2D 캔버스에 그립니다. 저장소는 Linux의 일부 Chromium 환경에서 WebGPU가 비활성화돼 소프트웨어 렌더링을 사용할 수 있다고 안내합니다.
공개된 실행 범위와 파일 처리
저장소는 프로젝트를 초기·실험 단계로 규정하고 Dragon Ball Z: Budokai Tenkaichi 3, Guitar Hero, Grand Theft Auto: San Andreas, Final Fantasy XII 등 테스트한 게임을 공개했습니다. 프로젝트 측 측정 사례로는 Chrome에서 Guitar Hero 한 곡이 드물게 속도가 떨어지는 구간을 제외하고 100%, GTA: San Andreas의 도보 구간 평균 약 99%, Final Fantasy XII 컷신 100%가 제시됐습니다. WWE SmackDown vs. Raw 2011의 경기 장면은 전력 제한이 없는 Ryzen 7 7840U 노트북에서 원활히 실행됐다고 설명합니다. 무거운 장면은 빠른 CPU가 필요하고, Linux에서는 전원 관리 설정이 CPU 성능을 제한할 수도 있습니다.
실행하려면 PS2 BIOS와 게임 디스크 이미지가 필요합니다. TabStationToo는 이 파일을 포함하거나 내려받지 않으며, 게임 이미지는 사용자가 준비한 파일에서 필요한 부분을 읽습니다. 저장소에 따르면 BIOS는 브라우저의 IndexedDB에 보관되고, 메모리 카드 저장도 브라우저에서 처리합니다. Chromium 계열 브라우저에서는 메모리 카드를 파일로 저장할 수 있습니다.
제작자들은 Reddit에서 Claude를 개발에 활용했다고 밝혔습니다. 이들의 설명으로는 개발자가 기능을 정하고 게임을 시험해 문제를 전달했으며 Claude가 프로그래밍의 상당 부분을 맡았습니다. 저장소에는 Claude Code를 포함한 코딩 에이전트용 지침 파일이 있습니다. 프로젝트는 PCSX2를 기반으로 하지만 PCSX2 팀이나 Sony의 제휴·승인·지원을 받지 않는다고 밝힙니다.
자료: Reddit / 정리·해설: Trawling
참고 자료
- GitHub - TabStationToo/TabStationToo: TabStationToo - PS2 emulation in the browser: PCSX2 compiled to WebAssembly. · GitHub — https://github.com/TabStationToo/TabStationToo
- TabStationToo/CLAUDE.md at wasm · TabStationToo/TabStationToo · GitHub — https://github.com/TabStationToo/TabStationToo/blob/wasm/CLAUDE.md
- TabStationToo/AGENTS.md at wasm · TabStationToo/TabStationToo · GitHub — https://github.com/TabStationToo/TabStationToo/blob/wasm/AGENTS.md