티스토리 뷰

development

황당버그 - Crash Bandicoot 게임

주먹불끈 2023. 6. 3. 22:02

개요

한 번쯤 들어보았던 황당한 버그들 모음이 있어 시간 날 때마다 하나씩 정리해본다

내용

Crash Bandicoot 이라는 비디오 게임을 만들면서 생겼던 버그 이야기

게임 진행을 메모리 카드에 저장하는데 어쩌다 한번씩 저장을 실패하고, 심지어는 메모리 카드를 날려버렸다.

디버깅

  1. 관련이 있어보이는 코드를 하나씩, 하나씩 제거하고, 가짜(stub) 코드로 대체해 나감
  2. 최후의 최후까지 하다보니 프로그래밍이 가능한 타이머의 클락을 기본값인 100Hz에서 1kHz로 바꾼 것이 남았음
    • 리드 프로그래머인 동료가 좀더 정확한 중력 묘사를 위해 높여두었던 것
    • 1kHz로 두었다가 메모리 카드 로드/저장시에만 100Hz로 잠시 돌려놓도록 했더니 문제가 사라짐
  3. 하지만 아직도 원인은 알 수 없었는데, 우연히도 메모리 카드 관련 작업중 컨트롤러를 만지면 문제가 생기는 것을 알아냄
  4. 일본의 하드웨어 엔지니어와 연락하여 테스트 코드를 주고 확인시켰더니 하드웨어 문제임을 확인함

원인

하드웨어 문제였기에 정확한 원인은 알 수 없지만 보드의 각 부분간의 혼선으로 보인다. 즉, 1kHz로 클락을 올린 상태에서 메모리 카드와 컨트롤러 양쪽에서 데이터를 보내면 문제가 생겼던 것이다.

반응형
반응형
잡학툰 뱃지
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함