
MS-DOS용 1991년 게임 ‘Sid Meier's Civilization’을 역공학해 복원한 소스 코드 프로젝트 civd가 공개됐다. Microsoft C 5.1, MASM 5.10, LINK 5.01로 빌드한 CIV.EXE는 버전 474.05 실행 파일과 바이트 단위로 일치하지만, 프로젝트는 이를 MicroProse의 원본 소스라고 주장하지 않는다.
프로젝트는 이름과 주석, 일부 자료형 선언을 추론해 복원했다. 실행 파일이 일치한다는 사실만으로 이런 요소가 원본 소스와 같다고 입증되는 것은 아니다. 빌드 과정에는 설명된 4바이트 시작 코드 수정이 적용되며, 검증은 원시 링커 출력과 MCGA 그래픽 드라이버, AdLib 사운드 드라이버, MISC.EXE도 고정 해시와 대조한다. 빌드 관련 설명
프로젝트는 코드와 문서 작성에 OpenAI, Anthropic, Google의 대규모 언어 모델을 사용한 뒤 편집과 빌드 검증을 거쳤다. 앞선 역공학 작업, 특히 OpenCiv1을 기반으로 한다. 게임 시스템을 다루는 기술 안내서와 소스 파일에 해설을 붙인 Reading Civilization from the inside도 제공한다. 현대 플랫폼용으로 게임을 다시 빌드하는 프로젝트로는 reciv가 있다.
직접 빌드하려면 Microsoft MAKE 4.07과 당시 컴파일 도구가 필요하다. DOSBox-X에서 도구를 C:에, src/를 D:에 마운트한 뒤 다음 명령을 실행하는 방식이다.
dosbox-x -conf dosbox.conf -c 'mount c build/period-tools' \\
-c 'mount d src' -c 'd:' -c 'set PATH=C:\\BIN;Z:\\' -c 'set INCLUDE=C:\\INCLUDE'
Docker와 VS Code Dev Containers를 이용하는 설정도 제공한다. 최초 실행 때 Microsoft C 5.1 디스크 이미지와 MASM을 내려받아 도구를 설치하고 실행 파일을 검증한다. 원본 게임은 빌드에 필요하지 않으며, 검증은 고정 SHA-256 해시를 사용한다. 문서와 빌드는 GitHub Pages에 게시되며, 메인 브랜치에서 검사를 통과한 뒤 배포된다. 저장소
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요