Code-Data Log. 롬 이미지 파일 내용을 (실행가능한) 코드와 데이터 영역으로 분류하는 기능.
파일 시스템을 쓰지 않는 고전게임에서는 프로그램 코드와 그래픽, 사운드, 대사, 맵 데이터 등이 함께 섞여 배치되어 있는데, CDL을 사용하면 이를 자동으로 식별해 주어 코드를 분석하는데 도움이 된다.
CDL 파일
분석된 데이터는 CDL 파일에 기록된다. CDL 파일은 롬 이미지와 비슷한 크기를 가진 바이너리 파일로, 헤더 등을 제외하면 CDL 파일의 1바이트는 ROM의 1바이트에 대응한다. 즉, CDL 파일의 헤더를 제외한 0번째 바이트는 ROM의 0번째 바이트가 코드인지 데이터인지를 나타낸다.
작동 원리
에뮬레이터의 디버거 기능 중 일부로, 에뮬레이션이 돌아가는 도중 어느 바이트가 코드로서 실행될 경우 해당 주소를 코드로 표시하고, 어느 바이트가 데이터로 읽혔다면 해당 주소를 데이터로 표시한다.
그렇기 때문에 실행되는 중 코드로도 데이터로도 접근되지 않은 부분은 알 수 없는 상태로 남아있게 된다. CDL을 100%로 완성하고 싶다면 적어도 그 게임의 모든 컨텐츠를 봐야 한다는 것이다. 당연히 더미 데이터가 있다면 자동 분석만으로는 모두 완성할 수 없다.
용도
CDL 입력을 지원하는 디스어셈블러에 ROM과 함께 입력하면 코드로 기록된 부분은 어셈블리 코드로, 데이터로 기록된 부분은 바이트 배열로 출력해주는 등 게임 분석에 요긴하게 사용된다.