mir.pe (일반/밝은 화면)
최근 수정 시각 : 2024-09-02 04:21:06

음파 크래시 버그

뽂찡에서 넘어옴
1. 개요2. 증상
2.1. 예시
3. 루머와 분석
3.1. 복사 방지 락 원인설3.2. 불안정한 운영체제와 임베디드 시스템3.3. 사운드 포맷, 코덱3.4. 하드웨어의 노후화
4. 버전별 빈도5. 원인
5.1. 해명5.2. 공식 발표
6. 당시 해결 방안7. 임시 조치8. 다른 기종에서의 음파 크래시 버그9. 관련 문서

1. 개요

아케이드 리듬 게임 EZ2AC 시리즈의 구 버전에서 발생했던 버그. 개발진이 사용하는 공식 명칭은 음파 크래시 버그지만, 대부분 뽁찡이라는 명칭으로 부른다. 이 외에도 문제가 처음 터진 7th 1.5 버전에서는 삑삑이라는 명칭도 나왔으며, 자동 리믹스 버그라는 명칭도 사용된 적 있다.

2. 증상

가장 전형적인 증상은 플레이 도중 간헐적으로 "삑-뽁 뽁찡!" 하는 노이즈가 크게 나오는 것이다. 이렇게 단순히 음이 왜곡되어 나오기도 하고, 플레이하는 패턴과 다른 곡의 음이나 MR이 나오기도 한다. 증상이 심해지면 동전 넣는 소리, 곡 시작 전 3초 카운트다운 소리, 혹은 조각으로 정리된 특정 MR 구간 등도 나온다. 이 버그는 한 번 시작되면 재부팅 전까지 증상이 반복된다.
가벼운 단계에서는 7th 이후의 신곡을 비롯해 신스음이 많이 섞인 곡의 특정 음이 완전히 깨져버린다. 대략 한 곡당 두세 번 노이즈가 나오는 정도인데, 이 상태에서 재부팅하지 않고 방치할 경우 증세가 더욱 심해지고 정상적인 플레이가 불가능해진다. 시끄러운 노이즈가 오락실 전체로 퍼져나가기 때문에 본의 아니게 민폐를 끼치게 되고, 플레이도 정상적으로 되지 않으므로 빨리 포기하고 재부팅하는 것이 최선이다.

2.1. 예시

[kakaotv(a79TrQKJHdQ$)]
버그의 흔한 증상을 보여주는 영상. 시작하자마자 터져나오는 뽁찡음을 비롯해서 노이즈, Blood Castle의 기타와 피아노 MR, 동전 효과음, 정체불명의 효과음, One's Trash의 신스음, 알 수 없는 드럼비트, Blood Castle의 찰싹거리는 비트와 인트로 MR 등이다.


Hyper Magic에서 버그가 걸린 영상. 전형적인 증상으로 간헐적 노이즈가 들린다.

꼭 저런 식으로만 뽁찡이 나는 건 아니고, 특정 곡들은 음이 엉키는 스타일이 마치 정해져있기라도 하듯 거의 일정하면서도 상당히 인상깊게 변하기도 한다.


Sign Mellow에서 버그가 걸리면 보컬 소리가 없어지고 기타음만 들린다.


神威에서 버그가 걸리면 정체불명의 효과음, 찰싹거리는 드럼, 신스와 베이스 MR조각과 알 수 없는 구토이 재생된다.


Rosen Vampir에서 버그가 걸리면 배경음과 주 멜로디 음원이 나오지 않고 키음만 출력된다.


EZ2AC EC 로케이션 테스트에서도 음파 크래시 버그가 발생했다.


EZ2AC EC 로케이션 테스트에서 등장한 음파 크래시 버그의 편집 영상.

3. 루머와 분석

SQUARE PIXELS가 발표하기 이전까지 유저들은 각종 원인을 자체적으로 분석했고, 그 과정에서 나온 내용이 가장 많은 설득력으로 정설로 통하고 있었다.

3.1. 복사 방지 락 원인설

EZ2DJ 7th TRAX Ver 1.5부터 소프트웨어 복사 방지 락[1]이 적용됐는데, 이 버전은 유독 해당 조치가 취해지지 않았던 구버전[2]에 비해 유난히 심한 버그가 많아졌다. 따라서 일부 커뮤니티에서 복사 방지 락이 음파 크래시 버그를 유도하는 것이 아니냐는 설을 제기했고 이 추측은 꽤나 설득력을 얻었다. 하지만 이후 SQUARE PIXELS에 의해 사실이 아님이 밝혀지면서 결론적으로는 오비이락이 됐다.

3.2. 불안정한 운영체제와 임베디드 시스템

Windows 98의 불안정한 리소스 관리가 원인이라는 주장도 제기됐다. Windows 9x 계열 운영체제가 MS-DOS 위에서 돌아가는 형태이므로 소프트웨어와 MS-DOS간 충돌이 종종 발생해 구동 속도가 심각하게 느려지거나 메모리 누수 또는 블루스크린이 발생하는 고질병에 음파 크래시 버그가 추가됐다는 것이 주 골자였다.

이 문제는 게임기도 임베디드 시스템이라는 근본적인 전제를 깔고 이야기해야 한다. 대부분의 임베디드 시스템은 안정성 등의 이유로 가상 메모리를 두지 않고 필요한 모든 내용을 RAM에 올리는 방식을 채택하고 있다. 그런데 RAM의 빈 주소가 충분하지 않으면 버퍼 오버플로 현상이 발생해 원치 않게 RAM을 덮어쓰기 시작하고 이로 인해 엉뚱한 내용을 참조하면서 엉뚱한 음이 출력되는 것. OS가 비정상적인 램 덮어쓰기는 막아줘야 했으나, 자체 개량된 OS에 그런 기능까지 담겼을 가능성은 없었을 것으로 보였다.

엉뚱한 음만 출력되는 건 지극히 초기 현상으로, RAM 부족 현상에 더욱 시달리면 이 현상이 핵심 데이터에도 발생, 블루스크린 등의 각종 오류를 내게 된다. 이러한 사실을 간과한 윈도우 98은 임베디드 시스템에는 전혀 맞지 않는 운영체제였던 것. 같은 시기 BEMANI 시리즈 Windows XP 임베디드 버전을 사용했고, 펌프 잇 업도 EXCEED부터 임베디드 리눅스를 사용해왔기 때문에 문제가 적었지만, 여건이 부족했던 EZ2AC 시리즈는 여전히 98에 머물러 있어야 했다.

3.3. 사운드 포맷, 코덱

7th TRAX 1.5 버전부터 이런 버그가 발생한 것을 보면, 6th 이전까지의 사운드 데이터와 7th 이후 사용하고 있는 사운드 데이터 형식에 차이가 있는 것으로 보인다. 사실 사운드 형식에 차이가 발생하면 코덱 문제가 반드시 뒤따라오게 돼 있는데, 코덱도 하나의 프로그램인지라 RAM 용량을 잡아먹게 된다. 현재 대부분의 사운드 카드에서 직접 지원하는 것은 PCM 신호[3]이고, 그보다 먼 과거에는 MIDI 뿐이라, 나머지는 PCM 신호로 변환해야 재생이 가능하다. 초창기 BMS가 모두 WAV 기반이었던 것도 이 때문.[4]

여기에 코덱에서 디코딩하려면 충분한 크기의 버퍼가 필요하다. 그런데 이 과정에서 버퍼 확보 실패, 코덱 오류, 처리 지연 등의 문제가 발생하면 사운드 변환 및 출력이 제대로 진행되지 않게 된다. 따라서 무조건 버그 발생. 일반 PC 같았으면 이러한 경우 대개 오류가 발생하며 종료되겠지만, 앞서 언급했듯 EZ2DJ는 임베디드 시스템이라 그런 거 없다.

3.4. 하드웨어의 노후화

윈도우 98의 소프트웨어 불안 뿐만 아니라, 하드웨어의 노후화도 버그에 한몫하고 있다. 시리즈가 계속돼도 메이저 업그레이드는 7th 한 차례 뿐이었고, 나머지는 고작 RAM 추가라는 마이너 업그레이드밖에 없었다.

초창기에는 이런 게 문제가 되지 않았으나, 갈수록 하드웨어가 노후화되기 시작하고,[5] 안 그래도 이미 단종돼 버린 하드웨어인지라 더 이상 물품을 구하기 어려워지고 있다. 특히 하드디스크의 노후화가 가장 큰 문제라 배드 섹터가 뜨거나 컨트롤러에 문제가 발생하는 등 데이터를 제대로 읽지 못하면 무조건 파일 오류가 발생한다. 이렇게 되면 대부분 음파 크래시 버그가 발생한다. 아니면 블루스크린이 뜨거나 프로그램이 종료되거나, 심한 경우는 부팅 자체가 되지 않을 수 있다.

하드웨어 노후화는 다른 게임에서도 골칫거리이기 때문에 EZ2AC보다 넉넉한 사양을 가지고 있는 다른 게임들도 주기적으로 하드웨어를 교체하고 있다.

4. 버전별 빈도

5. 원인

5.1. 해명

1.5부터 등장한 음파 크래시 현상은 흔히 암호화의 문제로 알려져 있지만 이 역시 사실이 아닙니다. 매우 복합적인 문제이지만, 시스템 규격에 맞지 않은 사운드 데이터가 탑재된 것이 가장 큰 문제입니다.
PEENA, 개인 트위터에서
EZ2AC의 개발진 중 하나인 PEENA EZ2AC EC 발매 전인 2013년 4월 13일 자신의 트위터를 통해 버그의 원인에 대해 다음과 같이 설명했다. 멘션 캡처본

5.2. 공식 발표

Q. 저번에 AE때였나 약원님께서 뽁징 해결할거 같으시다가 결국 못하고 내놓았다고 하신걸로 기억하는데
A. EC부터 해결 된 것이 맞습니다. 사운드블라스터 Live의 칩셋이 처리할 수 있는 용량이 있는데 키음의 음질이 높아지면 그 초당 용량이 높아져서 처리를 할 수 없게 되면 나는 것이 뽁찡이고, 7th 1.0까지는 그것에 대한 가이드라인이 정해져 있어서 키음 용량 등을 조절했던 것이구요. 그 이후에는 개발자들이 교체되면서 개발 자료에 대한 인수인계가 안되면서 그런 가이드라인이 있는지 몰랐던 거고, AE에서 약원님이 개인적으로 1.0까지의 음원 데이터를 분석하면서 테스트를 거쳐 내린 결론이 음원 데이터 용량을 줄이는 것이었고 실제로 뽁찡 현상이 많이 줄어들었기에 EC에서는 키음을 모두 해당 가이드라인에 맞춰서 제작한 것입니다. 그 전의 BErA같은 경우는 더더욱 고음질 음원이 많으니 문제가 생겼겠지요.
FOX-B, EZ2AC EV 온라인 간담회에서
음원 데이터의 초당 용량이 사운드 카드에 탑재된 칩셋이 처리할 수 있는 초당 용량을 초과할 경우 나타나는 버그임이 밝혀졌다. 1st부터 7th 1.0 까지에서 발생하지 않은 이유는, 음원 데이터의 용량에 대한 가이드라인이 정해져 있었기 때문이다.[7] 7th 1.5 이후 버전부터는 개발진이 계속해서 교체된 탓에 해당 가이드라인 등 개발 자료가 인수인계되지 않아 그 가이드라인이 있는지조차 몰랐던 것이고, 비정규 규격의 사운드 데이터를 멋대로 탑재하면서 문제가 생긴 것이다.

이후 yak_won이 개인적으로 1st ~ 7th 1.0까지의 음원 데이터를 분석해 내린 결론인 음원 데이터의 용량을 줄이자는 것을 토대로[8] 작성된 가이드라인이 EZ2AC : EC부터 적용됐다. 하지만 최적화를 거치기는 했어도 1st ~ 7th 1.0보다는 여전히 용량이 크기 때문에[9], 버그가 EV 1.2a까지 발생하였다.

EZ2AC EV 1.3c부터 본체 사양과 OS가 업그레이드되며 MSCF 문제와 함께 7년 동안 함께 했던 음파 크래시 버그 문제는 사실상 완전히 종결됐다.

6. 당시 해결 방안

EZ2AC : EVOLVE 이전에는 열악한 사정으로 인해 사양 업그레이드는 꿈도 꾸지 못해 사실상 해결할 수 없는 난제로 취급받아 왔다. Theme of EZ2Dj에서 Windows 2000으로 운영체제를 바꾸니 빈도가 상당히 줄어들었다는 글이 올라온 적은 있었다. 그러나 소송 패소로 인해 117억 원이라는 엄청난 손실을 떠안은 데다 기체 개발 계획마저 없기 때문에 업그레이드는 사실상 불가능. 게다가 유저가 임의로 프로그램을 건드는 것 자체가 보증 위반이며[10] 결정적으로 I/O 통신 방식이 여전히 ISA 컨트롤러 기반이라서 업그레이드에 제약이 걸려 있다.[11] 한 유저가 개조를 통해 버그를 해결했다고 해도, 개발사는 전국에 깔려 있는 모든 하드웨어에서 돌아가는 시스템을 생각해야 하며, 규격에 맞지 않는 사양으로 최신 버전을 구동하는 오락실도 상당수 있기 때문에[12] 현 상황을 고려했을 때 시스템을 쉽게 변경하기란 매우 힘든 문제이다. 결국 문제는 돈.

게다가 업주 입장에서도 귀찮아지는 게, NT 계열의 윈도우가 설치된 PC에서는 ISA 컨트롤러 포트를 수동으로 열어주는 등 이것저것 세팅을 다시 해야 해서 귀찮은 게 늘어난다. 개발사 입장으로 봐도 역시 엄두가 나지 않는 게, 기판 개발에는 의외로 상당한 비용이 들며 설사 기판을 개발했다 해도 상용화에 성공할 가능성을 장담할 수 없다. 특히나 OS마저 바뀌면 시스템을 또 배워야 하는 등, 기체 개발에 필요한 시간과 비용이 가중된다. 그나마 PC 기판은 업그레이드 비용이나 SW 개발 비용 등 다양한 면에서 전용 기판보다 나은 편이라 앞서 언급했던 것처럼 운영체제 업그레이드로 해결할 수 있었다.

또한 EZ2DJ의 판정이 BEMANI처럼 절대시간으로 결정되는 것이 아닌 만큼[13] 코어 유저의 경우 미세하게 느낄 만한 판정의 변화가 있을 것이며, 보통의 유저라면 상관없겠지만 신규 유저의 유입이 적고 현재 EZ2DJ의 주 수요층이 스코어링 유저인 게 현실이라 함부로 바꿨다간 논란이 있을 수 있는 민감한 사안이다. 기체 사양을 완전히 바꾸는 등의 변화점이 있어야 납득할 만하다는 것이 당시의 중론.

하지만 정작 개발자들은 크게 신경쓰지 않고 있으며, 개발자 중 한 명이었던 znpfg은 EZ2AC EC 로케이션 테스트 당시 중계방송의 채팅창에서 '매니아들이 사양 업그레이드로 판정갖고 난리치는 건 개발진들 추호도 걱정 안하고 있습니다~ 애초에 그런 반발 고려사항에 들어있지도 않아용~ 바뀌면 알아서 적응하세요~'라고 밝혔다. znpfg 본인이 비트매니아 IIDX를 오랫동안 플레이한 매니아 유저고, IIDX 시리즈의 판정선 변경과 그에 따른 유저들의 적응 과정을 지켜봐왔기 때문에 가능한 대응인 듯.

이후 절대로 해결하지 못했을 것이라 생각하던 위에 있던 해결 방법과 그 해결 방법으로 인해 발생하는 문제를 해결하는 것이 하나 둘 적용되기 시작했다. EV에서 BGA로 인해 발생되는 랙을 줄이기 위해서 그래픽 카드를 변경하면서 판정 기준이 변화하여 약간 조정했다. 이에 대해 약간의 논란이 있었지만 대다수의 유저들은 수긍하는 분위기. 그리고 1.3c에서 기판 사양의 변경과 운영체제 변경[14]으로 버그 발생률이 현저하게 줄어들었다. 사운드 카드가 변경되지 않았으므로 완전히 해결되진 않았지만 사실상 볼 일은 없다고 생각하면 된다.

7. 임시 조치

민간요법에 가까운 수준이지만, 여러 유저들의 경험을 통해 음파 크래시 버그의 발생률을 줄이거나 악화시키지 않는 방법이 연구됐다. 이들 중 대부분은 버퍼 언더런(Buffer Underrun)을 방지하기 위한 요법이다.[15]

8. 다른 기종에서의 음파 크래시 버그

8.1. beatmania IIDX


해당 곡은 SPADA에서 삭제됐다가 copula에서 부활한, JAKAZiD 작곡의 夕焼け ~Fading Day~이며, 버전은 beatmania IIDX 18 Resort Anthem이다. 선곡 화면에서부터 코인 넣는 소리가 들리고 폴더가 자기 멋대로 열렸다 닫혔다 하는 데다가 플레이 중에는 배속도 기계 마음대로 바뀌고, 1분 30초부터는 키음과 배경음의 싱크도 어긋나는 등의 막장을 보여준다. 플레이어가 실성한 채로 노래 따라 아아앙ㅏㅇ아아ㅏ앙아ㅏㅇ거리는 게 일품이다

RESIDENT 후기와 EPOLIS에서도 저음이 지나치게 강조되는 버그가 발생하는 경우가 있다. #

8.2. 리플렉 비트 콜레트


리플렉 비트 콜레트에서는 메모리가 꼬이면 다른 사운드는 다 잘 나오는데 스테이지 배경음만 안 나오는[16] 막장 상황이 일어날 수 있다. 이 경우에도 보통 직원을 불러서 재부팅을 하는 게 일반적. Wow Wow VENUS 자동 리믹스...?

8.3. DJMAX Portable 시리즈



불법 복제 방지 장치로 들어가 있으며, UMD로 실행하면 일어나지 않는다. 게임을 시작하기 전 UMD 드라이브에 게임 디스크가 정상적으로 들어 있는지를 확인한 다음 없다고 판정될 경우 작동한다. 2~3곡 정도 플레이하면 도중에 시스템 사운드와 키음의 재생 속도가 제각각 제멋대로 바뀌어버리며, 심하면 기어와 BGA, 노트까지 깨지다가 곡이 끝나면 게임이 꺼진다.

DJMAX Portable 인터내셔널 이후 모든 포터블 시리즈에는 이 시스템이 들어가 있다.

8.4. Windows 98 BMS

EZ2DJ 기판과 비슷한 성능을 가진 컴퓨터로 nazoBMplayer[17]에 최신 BMS 곡을 장시간 계속 플레이하다 보면 발생하는 것을 확인했다. 음파 크래시 버그의 발생원인을 다 모아두고 하는 것이라서 잠시만 돌리는 것이라면 큰 문제는 없다.

8.5. Windows 95 DOSBox SVN

DOSBox SVN에서 Windows 95를 설치하고 게임을 구동할 때 DirectX 버전이 6.0 이상이라면 발생한다. 한번 발생하면 멀쩡했던 다른 게임들까지 옮는다. DirectSound 테스트를 하면 22KHz 표준 비프음을 제외하면 모두 이 현상이 발생하는데, 모든 그래픽 설정을 OpenGL로 설정하면 발생하지 않는다.

9. 관련 문서


[1] 데이터를 암호화하고 무결성 검사. [2] 하드웨어 동글만 검사. [3] 하드웨어 디코더가 아닌 사운드 카드 자체를 의미. [4] WAV 포맷은 무압축 PCM 방식, 즉 원본 그대로의 PCM 데이터를 담고 있다. [5] 오락실 특성상 하루 12시간 이상을 가동하기 때문에 일반 PC보다 노후화가 빠르게 진행될 수밖에 없다. [6] 가장 극단적인 경우로 전기판 AEIC에서 Happiness를 플레이하면 모드 상관없이 100% 확률로 버그가 발생했다. 후기판 AEIC에서 해당 곡의 문제가 해결됐지만, 문제의 곡을 직접 플레이해보지 않는 이상 게임상에서 구분할 방법은 없다. [7] 44.1 kHz 샘플링 레이트를 사용하는 현재와는 달리 과거에는 22.05 kHz 등 지금에 비해 다소 낮은 샘플링 레이트를 사용한 곡들이 많았다. 당연히 샘플링 레이트가 높아지면 이에 비례해서 용량도 증가한다. 그리고 키음 커팅을 잘못 해서 쓸데없는 무음 구간이 붙어있는 경우도 있는데, 이렇게 되면 당연히 용량이 증가한다. [8] 약 320KB 이하. 뽁찡은 8bit 음원을 쓰든 16bit 음원을 쓰든 상관없이 발생하기에 16bit 음원을 썼다고 KIEN Springhead의 방송에서 밝혔다. [9] 수록곡 자체가 고품질화되다 보니 용량을 줄이는 데에 한계가 존재한다. 이를 무시하고 용량을 낮춰버리면 음질이 구려지거나 키음이 뚝뚝 끊길 것이다. [10] 게임 프로그램을 건드리지 않는 한 불법은 아니지만 제조사의 보증은 날아간다. 게임기도 임베디드 기기일 뿐이고, 게임 프로그램 변조 없이 단순히 OS만 교체하는 것은 불법은 아니다. 그게 불법이라면 임베디드 윈도우가 EZ2AC 개발자 것이라는 이야기가 된다. EZ2AC 제조사에서 온전히 개발해서 저작권을 가지고 있는 유료 응용 프로그램을 건드리지 않는 기타 제반사항이나 H/W 부속품 혹은 OS 관련 기계 개조는 불법이 아니다. 기판 자체의 소유권은 일반적인 경우 오락실에 있다. 게임 제조사는 그 내부의 게임 S/W 저작권과 보드 설계의 저작권만 가질 뿐. [11] 2000년대 중반 이후에 출시된 리듬 게임들은 대부분 PCI 또는 USB 기반 컨트롤러를 사용한다. [12] 이 경우 로딩 속도가 느려지거나, 스터터링이 발생하거나, 심한 경우엔 기기가 제멋대로 재부팅되거나 EZ2AC 실행기가 꺼져서 바탕 화면만 보이기도 한다. [13] 박자에 따른 상대적인 시간으로 계산한다. 따라서 BPM의 영향을 받으며, BPM이 높을수록 판정이 엄격해진다. [14] Windows XP로 변경됐다. ISA 포트의 경우 부팅 시 별도의 런처를 통해서 자동 개방한다. [15] CD 구울 때의 그 버퍼 언더런을 말하며, 버퍼 언더플로우(Buffer Underflow)라고도 한다. 임시 저장 위치인 버퍼에 데이터가 쌓이는 속도가 버퍼에서 읽는 속도보다 느릴 때 발생한다. [16] 위 영상에서 원래 나왔어야 할 곡은 Smug Face이다. [17] Windows 98을 지원하는 BMS 실행기 중에서 최신 BMS와 호환성이 가장 좋다고 한다. [18] EZ2ON REBOOT : R에 수록되면서 일부 저작권에 걸리는 샘플링을 뽁찡 사운드로 교체했다.

분류