1993년 아미가 게임을 LLM이 68000 어셈블리를 읽으며 Godot으로 포팅하다

Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly

1993년 아미가 게임을 LLM이 68000 어셈블리를 읽으며 Godot으로 포팅하다

바빌로니아 트윈스의 개발자가 1993년 아미가 500용으로 만든 68000 어셈블리 게임을 LLM(Claude Fable 5)을 이용해 Godot 4로 포팅한 경험을 공유한다. 72,758줄의 어셈블리 코드를 바이트 단위로 재현하고, 34,000줄의 C++ 엔진을 이식했으며, 원작을 부팅 가능한 형태로 복원했다. LLM이 파일 형식과 어셈블리를 해석하고, 개발자는 게임의 느낌을 조율했다. 포팅 과정에서 발견된 오류와 30년 된 코드를 옮기는 데 AI가 어떻게 도움을 줬는지 보여준다.

LLM이 제 1993년 바이너리를 재구축하고 검증했다고 말할 때, 그것은 vasm을 실행하고 출력을 diff하여 실제로 그렇게 했다는 뜻입니다.
  1. gmerc

    완전히 새로운 세상이다. 지난 몇 달 동안 내가 현대 webgl/webgpu로 포팅한 무작위 레트로 게임들:

    - The Adventures of Robin Hood - Opus 4.7/Sonnet

    https://robin.tooclever.org

    - Syndicate - Sol/Luna 5.6/Opus ( https://this.os.isfine.org/blog/posts/modern-game-port-syndi... )

    - Kaiser 2

    - Populous Plus - Sol/Luna 5.6/Opus

    - Dragon Strike - (Fable 5.1이 거의 한 방에 해냄)

    - War of the Lance - Qwnen-3.7-27B-dense (막혀서) Qwen-3.8-Flash-Next로 마무리

    https://this.os.isfine.org/blog/posts/what-reverse-engineeri...

    - Dungeon Keeper - 여러 모델

    - Red Baron - Opus 4.8, DeepSeek 4

    - Test Drive 3 (Qwen-3.8-Flash Next, DeepSeek-4-Flash-exp, GLM-5.3-Flash)

    - 진행 중: Ultima 6 ... 3D로 (Fable, GLM-5.3) ( https://this.os.isfine.org/#ultima6-atlas )

    일부는 순수 소스 포팅(Kaiser)이고, 일부는 완전한 리버스 엔지니어링 작업(Dragon Strike, Test Drive, WOTL)이다.

    일부는 사용 가능한 소스의 혼합(Syndicate, Populous)이다.

    발견한 내용 중 일부는 여기에 문서화되어 있다: https://this.os.isfine.org/blog/

  2. mattjoyce

    몇 주 전에 zx81 게임의 메모리 덤프를 다운로드해서 Claude에게 Go로 만들어 달라고 했어.

    완벽하게 해냈지. 바이너리를 다시 Basic으로 변환한 다음 Go로 변환했어. 내 생각은 그 게임이 LLM 훈련 데이터에 없을 테니 좋은 벤치마크가 될 거라는 거였어.

    개인용 컴퓨터의 여명기에 처음으로 그 시대를 경험하고, AI가 그 첫 경험을 고고학처럼 대하는 변곡점에 서 있다는 게 정말 미친 짓 같아.

  3. cesaref

    그가 게임이 50Hz로 실행된다고 언급한 걸 눈치챘는데, 아미가가 PAL로 실행되면 맞지만 미국산 머신이라면 NTSC로 60Hz일 거야.

    그 시절 대부분의 아미가 게임은 유럽에서 만들어져서 50Hz 리프레시에 맞춰졌고, 여기서는 '정상적으로' 플레이됐어. 60Hz에서는 어색하게 느껴졌고, 마찬가지로 미국 게임은 느리고 만족스럽지 않게 느껴질 수 있었지.

    이렇게 머신을 모니터 리프레시율에 고정하는 것은 저주이자 축복이었어. 여러 지역의 표준 TV를 구동할 수 있게 해줬지만 화면은 다소 흐릿했고, 진지하게 파기 시작하면 전용 모니터를 사용할 수도 있었지. 이는 가격을 낮춰서 많은 아이들이 부모님을 설득해 하나 장만하게 해줬어 :) 하지만 더 높은 해상도 모드는 제대로 작동하지 않아서 많은 것들이 320x256 해상도를 대상으로 했어.

    또한 예상치 못한 이점은 아미가가 TV 신호에 젠락(genlock)되어 비디오 피드에 오버레이할 수 있다는 점이었고, 이는 작은 TV 채널이나 매니아들이 달리 전혀 얻을 수 없었던 흥미로운 저렴한 그래픽 오버레이 기능을 많이 가능하게 했어.

    그때가 행복한 시절이었지.

  4. btbuildem

    > 아미가 하드웨어 참조 매뉴얼 한 권

    일명 '그 책'... 이런, 먼지 쌓인 기억이 떠오르는군.

    Babylonian Twins는 "Gods: Into the Wonderful"의 느낌이 강한데, 그 게임이 영감이었는지 궁금하네.

    https://www.lemonamiga.com/game/gods-into-the-wonderful

    https://www.youtube.com/watch?v=1kAXGjUwHyA

  5. dannyobrien

    93년에 어셈블리로 이 게임을 만든 것에 정말 경외감을 느낀다고 말하고 싶어. 같은 시기에 나는 Atari ST용 게임을 쓰려고 했었는데, 특히 인터넷 이전에 문서가 그렇게 부족했을 때 그 프로젝트에 쏟은 헌신은 대단해. 게임을 디버깅하면서 겪은 에피소드 같은 게 있니? 나는 항상 그게 가장 의욕을 꺾는 부분이었어. 처음부터 될 거라고 확신하며 코드를 손수 짜는 끝없는 희망 이후에 말이지...

  6. appstorelottery

    누가 "Claude Code에서 실행되는 Claude Fable 5"를 사용해 봤어? 이 작업에 어떤 계획이나 비용이 들었을지 추측할 수 있을까? (C++ 및 Assembly 포팅 모두 약 5시간 정도 연속 운영된 것으로 보이고, 배송/마케팅 기능은 얼마나 많은 컴퓨팅이 사용됐는지 불분명하지만) 미리 감사해 (미국 기반 모델을 시도해 보려고 하는데, 지금은 DeepSeek Flash 등을 아끼며 쓰고 있어).

  7. Gamemaster1379

    멋진 프로젝트네. 나는 지난 10월부터 재사용 가능한 콘솔 포팅 프레임워크를 실험해 왔어. Opus 4.6이 NES 6502에서 첫 성공이었지.

    그 이후로 Super NES, GBA, Nintendo DS, PlayStation(가장 인기 있음), 그리고 68k를 사용하는 Sega Genesis까지 정적/네이티브 에코시스템을 만들었어.

    https://github.com/mstan/segagenesisrecomp

    심지어 68k 디코더를 별도 저장소로 분리했는데, Phillips CDI에서 재사용하고 싶었기 때문이야.

    Sega는 Sonic 1, 2, 3&K를 처리해. Rocket Knight Adventures도. 아직 초기 단계지만.

    CD-I는 BIOS를 처리해. 아직 게임을 끝까지 실행해 보지는 못했어.

  8. robviren

    몇몇 부분에서 헤매는 걸 보니 오히려 반갑네. 항상 얼마나 많은 것을 정확히 해내는지에 놀라곤 해. 나는 컴퓨터 역사와 게임의 다소 난해한 부분이 에이전트가 채굴하기에 엄청나게 어려운 영역이기를 바랐어.

    과거에 무언가를 구현하기 위해 해야 했던 비표준적이고 해킹적이며 난해한 것들은 오늘날 건드리기에는 불가능할 정도로 복잡해 보여. 많은 사람들이 그때그때 즉흥적으로 만들었고 예상치 못한 방식으로 하드웨어를 사용했지. Tim Follin이 SNES의 Plock 오디오를 작업하고 미야모토가 그 오디오가 진짜라는 것에 충격을 받았던 일이 떠오르네. 에이전트가 코드가 어떻게 구성되었는지에 대한 통찰을 통해 과거의 개발에 대해 무엇을 배울 수 있을지 정말 흥미로울 거야. 나는 이런 것들을 좋아하고, 이 깊이 있는 글에 감사해.

이 날의 다른 글

2026-09-03