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