포털 2를 맥과 아이폰용 네이티브 앱으로 재컴파일함
Portal 2 recompiled into a native Mac and iPhone app
핵심 요약
Claude를 활용해 포털 2의 리눅스 머신 코드를 ARM64 네이티브 코드로 변환하여 맥과 아이폰에서 구동하는 데 성공함.
- 네이티브 포팅 — 에뮬레이터 없이 리눅스 머신 코드를 ARM64로 재컴파일함.
- 아이폰 구동 — 아이폰 15 프로 맥스에서 터치 컨트롤로 플레이 가능함.
- 성능 향상 — OpenGL 대신 D3D9-Metal 경로를 사용하여 프레임 속도를 개선함.
- Claude 활용 — Claude Code를 통해 코드 작성 및 프로젝트 방향성을 설정함.

애플 실리콘에서 포탈 2를 네이티브로 돌리고 싶어서, 우리(Opus 5.5랑 나)가 리눅스판 머신 코드를 C로 변환(함수 12만 5천 개 정도)한 다음 네이티브 ARM64로 컴파일하는 툴을 만들었음. 플레이 가능한 방 하나 만드는 데 딱 이틀 걸리더라(클로드 놈은 몇 달 걸릴 거라던데).
에뮬레이터나 Wine, Rosetta 같은 건 전혀 안 씀. 포탈 2 게임 파일은 본인 거 써야 함. 레포지토리에 게임 파일은 하나도 없고, 네이티브 앱은 니 컴퓨터에서 직접 생성하는 방식임.

최근에 OpenGL을 걷어내고 mtld3d 기반의 D3D9 → Metal 경로로 바꿨음 https://github.com/athei/mtld3d. M3 Pro에서 특정 장면 돌려보니까 OpenGL 쓸 땐 81fps 나오던 게 122fps까지 찍히더라. 방마다 차이는 좀 있음.
코드는 Claude Code가 짰고, 나는 방향 잡고 내 기기들로 테스트하면서 의사결정만 했음. 클로드가 막힐 때는 Codex한테 코드 리뷰 시키고 의견 물어보면서 진행했다.
프로젝트 관련해서 궁금한 거 있으면 다 물어봐. GitHub 기여는 언제든 환영임: https://github.com/kanapitsas/portal2-recomp
