LLM으로 1993년 Amiga 게임의 68000 어셈블리를 읽어 Godot에 포팅하기

1 day ago 7

1993년 바그다드에서 68000 어셈블리 72,758줄로 만든 Babylonian Twins를 Claude Fable 5와 Claude Code로 분석해 Godot 4에서 원작의 동작과 데이터를 재구축함 2010년판 C++ 34,000줄을 Godot으로 옮긴 뒤 원작을 50Hz로 별도 재구현하고, 현대판 안에서 두 게임을 실행하는 3단계를 모두 완료함 vasm으로 원본 소스를 다시 조립해 출시 바이너리와 바이트 단위로 비교하고, 읽기 루틴에서 레벨·충돌 속성·객체·그래픽 형식을 역으로 복원해 5개 레벨을 픽셀 차이 0개로 렌더링함 자동 컴파일·레벨 빌드·입력 재생·상태 조사 도구가 개발을 앞당겼지만, 경비병 공격 범위와 숨은 레이어, 입력 의미처럼 그럴듯하게 작동하는 오류는 사람이 플레이하며 찾아야 했음 원본 디스크 이미지는 itch.io에 무료 공개됐고 Definitive Edition은 iOS·Android에서 제공되며, Steam판에는 1993년판 실행 옵션도 포함됨 1993년 바그다드에서 만든 원작 Babylonian Twins는 Amiga 500의 512KB RAM, 하드 드라이브 없이 TV에 연결된 환경에서 제작됨 모든 스프라이트와 스캔라인을 순수 68000 어셈블리로 다룸 Murtadha Salman이 그림을, Mahir AlSalman이 음악을 제작함 제재와 인터넷·게임 개발 자료 부재 속에서 Amiga Hardware Reference Manual 한 권으로 하드웨어를 직접 프로그래밍함 하루 몇 시간만 전기를 쓸 수 있었고, 플로피 교체와 50°C의 여름 때문에 디스크 드라이브가 세 번 고장 남 실행 중에는 운영체제 인터럽트를 끄고 기계 전체를 직접 제어함 디스플레이는 스프라이트와 하늘색에 맞춰 즉석에서 다시 쓰는 copper list로 구성됨 타일 이동에는 blitter 레지스터와 완료 플래그를 직접 사용함 조이스틱은 하드웨어 포트에서, 발사 버튼은 CIA 칩의 핀에서 읽음 다음 레벨 파일을 디스크에서 불러올 때만 운영체제를 복구했다가 다시 끔 이라크 최초의 상업 게임이었지만 Commodore 붕괴와 제재로 출판사를 구하지 못해 오랫동안 공개되지 못함 2008년 Amiga 포럼 이용자들이 형제의 YouTube 영상을 발견하고 디스크를 찾아 나섰으며, 당시 스레드가 남아 있음 이전 포팅과 새로운 실험 같은 팀은 2010년 자체 엔진의 C++ 약 34,000줄로 iPhone판을 수작업 재구축함 ...

Read Entire Article