닌텐도 64판 Snowboard Kids, 84일 만에 모든 함수를 원본 바이너리와 일치하게 디컴파일
- Snowboard Kids의 모든 함수에 대응하는 C 구현을 작성해, 컴파일하면 원본 게임과 동일한 기계어가 나오도록 100% 디컴파일함
- 프로젝트는 84일 만에 끝났으며, 전작 Snowboard Kids 2의 596일보다 약 7분의 1 기간임
- 원본은 GCC 2.7.2를 쓴 전작과 달리 폐쇄형 SGI 컴파일러 IDO 5.3로 빌드됐고, IDO의 여러 최적화 단계와 레지스터 할당 때문에 C의 작은 변경도 결과 코드를 크게 바꿈
- 작성자는 이전 프로젝트에서 쌓은 약 2년의 경험과 커뮤니티 지원이 속도를 높였다고 설명하며, 일치한 커밋 가운데 전문가 개입이 있었던 비율은 약 4.8%였음
- 소스 코드는 스피드런의 CPU 경로와 플레이어 속도 계산을 분석하고, 정적 재컴파일과 향후 모드 제작에 쓰일 수 있음
Hacker News opinions
LLM을 받아들이고 엄격한 작업 흐름 하나를 만든 뒤 다음 프로젝트로 넘어가면 생산성이 엄청나게 올라감. 결국 시간, 에너지, 토큰, 어디에 쓸지 판단하는 능력이 한계가 되더라
LLM을 쓴다고 자동으로 되는 건 아님. 제대로 된 결과를 내려면 작업 흐름과 검증 기준부터 갖춰야 함
2026년에 AI를 안 쓰는 건 스스로 불리하게 만드는 일임. 같은 시간에 더 좋은 코드를 더 빨리 만들기 어렵다고 봄
Perfect Dark는 이미 N64 원본과 바이트 단위로 일치하는 완전 디컴파일을 표방하는 프로젝트가 있음. 그 포크인 PC 포트는 싱글플레이와 분할 화면 멀티플레이가 작동하지만 그래픽·게임플레이 문제와 간헐적 충돌이 남아 있다고 함
게임사가 옛 게임을 디컴파일해서 편의 기능을 넣고 재판매하면 쉬운 사업처럼 보이는데, 왜 안 하는지 궁금함
권리자여도 성우, 모션 캡처, 모델 계약이 사용 기간과 플랫폼을 좁게 정한 경우가 많음. 오래된 게임은 원 권리자가 사라지거나 권리가 여러 번 넘어가 소유 관계도 복잡함
Xbox 360용 GoldenEye는 원본과 새 렌더러를 게임 안에서 바꿀 수 있을 정도였지만, 법적 문제로 결국 출시하지 못했음
AI를 쓴 디컴파일은 게임 커뮤니티 반발이 큰 편임. Claude를 쓴 PR 하나만 받아도 프로젝트가 오염됐다고 보는 사람도 있더라
레트로 게임은 향수 같은 주관적 경험이 참여 이유인 경우가 많음. 복원 과정 자체를 중요하게 보는 사람에게는 AI 사용 여부도 당연히 의미 있는 조건임
역공학과 디컴파일의 재미는 거대한 퍼즐을 조금씩 푸는 데 있음. LLM이 큰 부분을 대신 풀면 그 과정이 재미없어질 수 있음
반발은 AI 자체보다 읽기 어려운 코드나 작동하지 않는 포트를 급히 내놓는 사례가 쌓인 탓도 큼. 먼저 했다는 명성만 얻고 곧 버려지는 디컴파일을 자주 봄
원본 바이너리와 일치하는지는 컴파일 결과로 검증할 수 있으니 LLM 보조 디컴파일은 괜찮다고 봄. 하지만 조작감 좋은 PC 게임으로 포팅하는 일에는 사람의 취향과 판단이 필요함
Monster Hunter 2를 두 달쯤 디컴파일해 봤는데 5% 정도밖에 못 갔음. 이런 작업을 끝내는 사람들은 정말 대단함
GameCube판 Tales of Symphonia를 혼자 디컴파일 중이고, 약 4,800개 함수 중 3,400개가 정확히 맞음. 실질적인 작업은 AI가 하게 했고 나는 아직 코드를 한 줄도 안 썼음
Mega Man Battle Network를 AI로 디컴파일하고 있지만, 이해와 문서화는 직접 하려고 해서 84일 안에는 못 끝낼 듯함. 대신 AI가 ROM 음악을 재생하는 신시사이저를 만들어 음악을 매핑했고, 노트북 BIOS 역공학도 AI에 맡겨 거의 끝났음