1987년 닌텐도(Nintendo) NES(Nintendo Entertainment System)로 출시되어 큰 인기를 끌었던 고전 게임 '콘트라(Contra)'가 웹 브라우저에서 구동되는 형태로 성공적으로 포팅되었습니다. 이는 원본 게임의 어셈블리어(ASM) 코드를 C언어로 번역한 후, 다시 웹어셈블리(WebAssembly)로 컴파일하는 두 단계 과정을 거쳐 이루어졌습니다. 덕분에 사용자들은 별도의 에뮬레이터 설치 없이 웹 브라우저만으로 추억의 게임을 즐길 수 있게 되었습니다.
이번 포팅 작업은 vermiceli의 콘트라 어셈블리 코드 주석(annotated disassembly)을 기반으로 진행되었습니다. 개발자는 6502 어셈블리(6502 assembly)로 작성된 게임 로직을 루틴(routine)별로 C언어로 번역했으며, 각 프레임(frame)의 동작이 원본과 동일한지 Mesen 에뮬레이터(emulator)를 통해 면밀히 검증했습니다. 이처럼 철저한 검증 과정을 거쳐 원작의 게임 플레이 경험을 완벽하게 재현해냈습니다. 특히, 온라인 2인 협동 플레이 기능까지 추가되어 친구와 함께 인터넷을 통해 콘트라를 즐길 수 있다는 점이 큰 특징입니다.
이번 프로젝트는 오래된 게임의 생명력을 현대 웹 환경으로 확장하는 기술적 가능성을 보여줍니다. 웹어셈블리는 고성능 웹 애플리케이션 개발의 핵심 기술로 부상하고 있으며, 이 사례는 웹어셈블리가 단순히 복잡한 비즈니스 로직뿐만 아니라 고전 게임과 같은 정밀한 시스템 에뮬레이션(emulation)에도 효과적으로 활용될 수 있음을 입증합니다. 이는 웹 기반 게임 플랫폼이나 인터랙티브 콘텐츠 개발자들에게 새로운 영감을 제공하며, 향후 더 많은 고전 게임들이 웹 환경으로 이식될 수 있는 기반을 마련할 것으로 기대됩니다.