PSP용 God of War, WebAssembly로 재컴파일해 브라우저에서 실행
요약
PSP용 God of War를 WebAssembly로 재컴파일하여 브라우저에서 실행하는 사례가 소개되며, AI 기술이 게임 에뮬레이션 및 고전 게임 보존 분야에 혁신을 가져오고 있음을 논합니다. 이는 단순한 에뮬레이션을 넘어 역공학적 이식 수준으로 발전하고 있습니다.
핵심 포인트
- AI를 활용하여 WASM 기반의 브라우저 게임 실행 가능성이 높아짐.
- 게임 보존이 단순히 에뮬레이션에 머무르지 않고, 직접적인 리마스터링 형태로 진화함.
- 역공학 과정에서 AI가 디컴파일 및 재컴파일 작업의 효율성을 극대화하고 있음.
- AI 기술 발전에도 불구하고, 원본 자산과 소스 코드 보존이 중요하며 법적 정의 마련이 필요함.
PSP의 MIPS 기계어를 미리 C++로 변환하고 WebAssembly로 컴파일한 뒤, WebGL2로 그리는 PSP 운영체제·그래픽 칩 재구현체와 연결한다면 결국 에뮬레이션 스택임. 조금 꼬치꼬치 따지는 것 같지만, 기존 에뮬레이터도 상당수가 대상 기계어를 중간 표현으로 변환하고 JIT 컴파일하며, 단지 WASM을 거치지 않을 뿐임.
에뮬레이터가 아니라는 WINE도 거의 같은 일을 함. Windows 사용자 공간 일부를 재구현하고 DirectX를 Vulkan/OpenGL로 변환함. 그렇다면 x86 바이너리를 ARM으로 AOT 변환한 뒤 WINE으로 실행하면 에뮬레이터인가?
RAM 32MB짜리 주머니 크기 게임기에서 그렇게 정교하고 멋진 그래픽으로 플레이할 수 있었다니 놀라움!
AI가 에뮬레이션의 판을 뒤흔들고 있음. 이제는 에뮬레이션조차 하지 않고 역공학으로 게임을 직접 이식하고 있으니, 고전 게임 보존에는 정말 멋진 시대임.
권리자들은 더 이상 게임으로 돈을 벌지도 않으면서 IP를 풀거나 접근하기 쉬운 최신 플랫폼으로 업데이트하지도 않음. 그래서 이런 개발자들의 작업이 정말 고마움.
이건 보존이라기보다는 리마스터링에 가까움. 원본 게임 데이터는 여전히 최대한 보존해야 하며, 가능하다면 원본 제작 자산과 소스 코드도 필요함. 이런 작업의 합법성에 거리낌은 없지만, 어밴던웨어의 법적 정의가 제대로 마련되면 좋겠음.
솔직히 그렇게 멋진 시대라고 보지는 않음. AI가 한두 프로젝트에 모여 기여하기보다 각자 모든 걸 만들도록 부추기는 것 같고, 이는 오픈소스 전반에서 걱정되는 흐름임.
AI로 하나의 디컴파일 프로젝트에 기여하면서 완성도를 높이고 게임 관련 지식을 모으는 편이 훨씬 나을 것임. 대신 지금은 조악한 바이브 코딩 이식작만 산더미처럼 쌓이고 있음.
저작권 보유 기업들이 워낙 공격적이라, 이런 역공학에 대해 AI 기업의 책임을 묻는 움직임이 생길지 궁금함. AI 기업들이 이를 금지된 지식으로 지정하고, 모델을 다시 정렬해 허용하지 않게 만들 가능성도 있음.
엄밀히 말해 이렇게 역공학해서 공유하는 건 불법 아닌가? 멋지긴 하지만 대기업들이 로비로 관련 규제를 강화하는 계기가 될 것 같음. Claude/Fable이 허용한다는 게 의외인데, 아니면 속여서 시키는 건가?
게임 보존에 왜 그렇게 멋진 시대라는 건가? ISO/ROM은 이미 보존되어 있었고, 최신 플랫폼의 에뮬레이터로 플레이할 수 있었음.
Sony가 삭제 조치에 나서기까지 얼마나 걸릴지 궁금함.
저장소에 따르면 실제 게임 자산은 포함하지 않으며, 게임의 PSP 디스크를 직접 준비해야 함. 이 점이 법적 보호가 될 수도 있고, 아닐 수도 있음.
10년 전 i7 노트북에서 이 게임을 에뮬레이터로 돌려봤는데 15 FPS 정도밖에 나오지 않았음. 그래서 내게는 마법처럼 느껴짐.
드디어 Mac의 브라우저에서 Metal Gear Solid 시리즈를 할 수 있게 될지도 모르겠음!
어제 GTA 6용으로도 비슷한 걸 봤는데 삭제됨. 누군가 X 링크를 찾아낼 수 있을 것 같음.
GTA 5를 말하는 건가?
이제 PSP 게임을 WebGL로 디컴파일할 수 있다니 놀라움. PS1 에뮬레이터 ePSXe를 돌리려면 강력한 Pentium이 필요했던 2006년에 비해 에뮬레이션이 정말 멀리 왔음.
디컴파일조차 필요하지 않음. Pentium MMX 350MHz급의 오래된 게임으로 비슷한 프로젝트를 했는데, 대신 x86-32를 WASM으로 변환하는 동적 재컴파일러를 바이브 코딩으로 만들었음.
오래된 Zen2 PC의 Firefox에서 1,000 MIPS 이상으로 게임이 실행됨. 이런 게 가능하다는 사실에 충격을 받았고, 아직도 비현실적으로 느껴짐.
AI는 함수 단위로 void*를 남발하며 C로 디컴파일하고, 컴파일 결과의 md5sum이 원본 바이너리와 일치할 때까지 무작정 시행착오를 반복하는 데 강함. 결과물은 읽기도 유지보수하기도 어렵겠지만, 적어도 컴파일러와 플랫폼에는 종속되지 않음.
시간이 충분하다면 여전히 사람이 더 잘함. sm64 디컴파일 결과물의 품질을 보면 알 수 있음.
게임이 PSP 운영체제에 요청하는 기능을 profile/host의 고수준 에뮬레이션으로 처리한다면, 결국 절차만 더 복잡한 에뮬레이터임. 처음부터 에뮬레이션을 제대로 구현하지 않고 게임별 패치에 의존하며, 게임과 에뮬레이터를 하나의 바이너리에 집어넣는 질 낮은 형태임. 완전히 조악한 결과물임.
AI 코딩에도 일종의 ‘쓰라린 교훈’ 변형이 적용되는 듯함. 누구나 버튼 하나로 몇 분 안에 자기 필요에 맞는 변형을 얻을 수 있다면, 단순하고 일관되며 유연하고 중복 없는 플랫폼이나 라이브러리를 만드는 수고가 별 가치 없어짐.
게임을 하는 입장에서는 에뮬레이터 설계가 우아한지 신경 쓰지 않음. 조악한 코드에 버그가 있어도 AI로 바로 고치고 계속 플레이하면 됨.
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기