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 |