본문 바로가기
컴퓨터

실기와 DOSBox에서 게임 엔딩 BGM 길이가 다른 이유(대항해시대2)

by 선수입장 2025. 12. 9.

1. 같은 게임 엔딩인데 펜티엄1의 사운드가 DOSBox(에뮬)보다 몇마디 더 길게 재생됨

2. 단순 사실관계만 알고 있다가 문득 궁금해서 chat GPT에게 물어봄

3. 정답인지는 모르겠지만 chat GPT의 설명이 상당히 설득력 있어 블로그로 남기게 됨

4. 핵심 원인

- BGM 종료 조건의 차이

- DOS 시대 게임들은 음악 종료 조건을 크게 2가지 방식으로 구현했다.

- [방식1] 데이터 끝까지 재생 (정확한 방식)

· 음악 데이터가 끝나야 종료, 실시간 기준, CPU 성능 영향X

- [방식2] CPU 루프 횟수로 종료 (부정확 방식)

· 음악 종료 판단이 실제 시간과 무관

· 단순히 CPU 루프 횟수만 누적

5. 도식화 

- [실물 PC]-[ISA 버스 WAIT]-[메모리 응답 지연]-[인터럽트 처리 지연]-[OPL 접근 대기]

게임 루프 1회가 느림=연주 시간이 늘어남 (마디가 더 많이 들림)

- [DOSBox]-[내부 타이머 기반 스케줄링]-[루프 지연 균일]-[물리 버스 대기 없음]

게임 루프가 빠르고 일정=연주가 더 빨리 끝남

6. 왜 엔딩에서 이런 현상이 일어날까

- 엔딩은 보통 크레딧 스크롤, 애니메이션 시퀀스, 페이드 아웃 연출이 같이 진행

음악 종료 시점을 시간이 아닌 루프 횟수로 때움

- 당시 개발자는 486에서 이 정도면 딱 끝나겠지라는 감각 기준으로 수치를 맞춰 넣음

- 그러나 실기 환경 편차, 최신 CPU & 에뮬 속도로 인해차이 발생

7. (번외) 왜 오프닝은 차이가 없나? 오프닝은 [방식1] 구조가 이기 때문

8. 엔딩 BGM 길이 차이는 버그나 녹화 문제가 아니라 당시 게임들이 사용한 CPU 루프 기반 음악 종료 구조 때문이다.

 

 

'컴퓨터' 카테고리의 다른 글

GrafX2  (0) 2025.12.13
ISA 62pin XT + 36pin AT(확장) = 98pin  (0) 2025.12.12
대항해시대2 FM사운드 리핑 실패후기  (0) 2025.12.09
midi to vgm(vgz) 변환  (0) 2025.12.08
Turbo deburgger 2.86  (0) 2025.12.05