Claude를 활용해 브라우저 탭에서 완벽하게 작동하는 PS2 에뮬레이터 'TabStationToo'를 개발했습니다
We used Claude to get a full PS2 emulator running in a browser tab: TabStationToo
핵심 요약
Claude를 활용해 PCSX2 코어를 브라우저 환경으로 포팅하여 설치 없이 웹에서 PS2 게임을 즐길 수 있는 에뮬레이터를 개발했습니다.
- 웹 기반 에뮬레이션 — WebAssembly와 WebGPU를 활용해 브라우저에서 PS2 게임 구동을 구현함
- Claude 활용 개발 — 프로젝트 규칙 설정 및 자동화된 테스트 환경 구축에 Claude를 적극 활용함
- 성능 최적화 — 브라우저 제약으로 인한 속도 저하를 극복하기 위해 코드 재작성 및 최적화 진행
- 설치 없는 접근성 — 별도 설치 없이 브라우저 탭에서 바로 게임을 실행할 수 있는 크로스 플랫폼 환경 제공

내 친구 u/aegyptiacus11이랑 같이 재미있는 사이드 프로젝트로 브라우저에서 바로 돌아가는 PS2 에뮬레이터인 TabStationToo를 만들었어.
이건 PCSX2(GPL-3.0) 기반이야. 핵심 코드를 가져와서 브라우저 안에서 돌아가게 만들고, 그 주변으로 새 페이지를 짰지.
그냥 페이지 열고 BIOS랑 게임 디스크 이미지 폴더 선택하면 바로 게임 가능함!
여기서 해볼 수 있어: https://tabstationtoo.github.io/TabStationToo/ (크롬에서 제일 잘 돌아감)
우리가 테스트해 본 게임은 기타 히어로, GTA 산 안드레아스, 파이널 판타지 XII, 드래곤볼 Z 스파킹! 메테오(Budokai Tenkaichi 3), 나루토 질풍전: 나루티밋 액셀 5, 바이오하자드 4야. 주로 M1 Max 맥이랑 라이젠 7 7840u 달린 리눅스 시스템에서 테스트했어.
파일은 전부 네 컴퓨터에만 남으니까 걱정 마. 서버로 업로드되는 거 하나도 없음. 게임은 네 디스크 이미지에서 바로 읽어오는 방식이야.
코드 대부분은 Opus5.5로 짰어. 우리가 뭘 만들지 정하고, 게임 테스트해서 문제점 보고하면 Claude가 코딩을 거의 다 해줬지:
-
Claude를 위한 규칙집. 저장소에
CLAUDE.md/AGENTS.md파일이 있는데, Claude가 세션 시작할 때마다 이걸 읽어. 프로젝트 설명, 브라우저의 한계, 빌드랑 테스트 방법, 그리고 우리 규칙(PCSX2 출처 밝히기, 테스트 안 해보고 된다고 우기지 않기) 같은 게 적혀 있어. -
우리가 직접 안 해도 되는 테스트. Claude를 시켜서 브라우저 없이 돌아가는 에뮬레이터 버전을 만들었어. 덕분에 화면 차지 안 하고도 PS2 BIOS 부팅해서 벤치마크 돌릴 수 있어서, 그동안 우리는 다른 작업 할 수 있었지. 코드 수정할 때마다 알아서 몇백 프레임 돌리고 스크린샷까지 찍어줌.
-
어려웠던 부분. PC에서는 PCSX2가 PS2 코드를 PC 기계어로 바로 번역해서 빠른 건데, 브라우저는 그게 안 되거든. 그래서 Claude랑 같이 게임 돌아가는 동안 PS2 코드를 WebAssembly로 번역하는 대체 코드를 짰어. PCSX2 원본 코드랑 결과값이 똑같은지 계속 대조하면서 말이야. PCSX2 그래픽 렌더러도 WebGPU로 포팅했어.
-
에뮬레이팅된 PS2를 브라우저 탭에서 부드럽게 돌리는 게 제일 힘들었음. 아이디어 하나 낼 때마다 Claude한테 화면이 픽셀 하나 안 틀리고 똑같은지 확인하게 시켰고, 효과 없어서 버린 것까지 포함해서 모든 시도를 로그로 남겼어. 지금은 꽤 많은 게임이 풀스피드나 그 근처까지 나오는데, 제일 무거운 장면은 아직 좀 느려.

