20년간의 노력 끝에 MAME가 Hyper Neo Geo 64를 완전히 구현
(readonlymemo.com)- Hyper Neo Geo 64는 SNK가 1997년부터 1999년까지 2년간 운영한 3D 아케이드 시스템으로, 총 7개의 게임만 출시된 후 단명했으며, 2D에서 3D로 넘어가던 과도기의 실험적 플랫폼
- MAME 개발자 David Haywood가 2004년부터 21년간 진행한 에뮬레이션 작업이 최근 완성 단계에 도달하여, 그래픽과 입력은 물론 사운드 에뮬레이션까지 정상 작동
- 최근 한 달간 R. Belmont를 비롯한 MAME 기여자들이 사운드 합성 및 필터 처리 방식을 해결하며 급격한 개선을 이루었고, 10월 출시 예정인 MAME 0.282 버전에서 완전한 오디오 지원 제공
- 에뮬레이션 개발 과정에서 I/O 마이크로컨트롤러 덤프, V53 CPU 코어 개선 등 주변 기술의 발전이 핵심 돌파구로 작용했으며, 신디사이저 에뮬레이션 작업과의 예상치 못한 시너지도 기여
- 이 사례는 에뮬레이션 개발의 특성을 잘 보여주는데, 수년간의 보이지 않는 작업과 인내, 그리고 다양한 기술 요소들이 하나씩 맞춰지며 완성되는 협업 프로세스의 중요성을 시사
Hyper Neo Geo 64 에뮬레이션의 긴 여정
- David "MameHaze" Haywood가 2004년에 Hyper Neo Geo 64 에뮬레이션 작업을 시작했을 당시, MAME는 3D 게임 지원이 거의 없었고, MIPS CPU 코어도 초기 단계였으며, I/O 마이크로컨트롤러 덤프조차 없는 상황
- 당시 PC의 메모리는 2D 그래픽을 로드하고 디코딩하기에도 부족한 수준
- YouTube 이전 시대로 참고 자료를 구하기도 매우 어려운 환경
- 현재 이 플랫폼 에뮬레이션에 관심 있는 젊은 성인들 중 상당수는 작업이 시작될 당시 태어나지도 않았음
- 몇 주 전 Haywood가 시스템을 MAME에서 "작동" 상태로 승격시켰지만, 이는 다소 형식적인 조치였음
- 적절한 사운드 에뮬레이션이 여전히 누락된 상태였고, Haywood는 2023년 이후 코어 작업을 하지 않았음
- 사람들이 오랫동안 소리 없이 게임을 즐겨왔으니 "작동" 레이블을 붙여도 된다고 판단
- 이것이 다른 MAME 기여자들이 사운드 개선에 나서는 계기가 됨
Hyper Neo Geo 64 시스템 개요
- 1997년부터 1999년까지 2년간만 아케이드에서 활동했으며, 총 7개의 게임이 출시됨
- Road's Edge
- Samurai Shodown 64
- Xtreme Rally
- Beat Busters: Second Nightmare
- Samurai Shodown 64: Warriors Rage
- Fatal Fury: Wild Ambition
- Buriki One
- 이 게임들은 개별적으로 에뮬레이션에 대한 강력한 동기를 제공하지 못했지만, MAME 팀의 모든 아케이드 시스템을 역설계하고 보존하려는 열정이 프로젝트를 지속시킴
- Capcom의 CPS3 보드가 해독된 후 빠르게 지원이 추가된 것과 달리, Hyper Neo Geo 64는 21년간의 간헐적인 고된 작업이 필요했음
에뮬레이션 개발의 보이지 않는 노력
- Haywood는 "사람들이 에뮬레이션에 대해 정말 이해하지 못하는 것은, 긍정적인 결과를 전혀 얻지 못하는 작업에 투입해야 하는 시간의 양"이라고 지적
- Hyper Neo Geo 64 드라이버를 여러 번 작업하며 수주를 투입했지만 전혀 진전이 없었던 경험이 반복됨
- 모든 것을 이해하려 노력했지만 결국 "그렇게 작동하지 않는다"는 결론만 얻을 수 있었던 좌절감
- 몇 년 전 I/O 마이크로컨트롤러가 덤프되고 Haywood가 이를 에뮬레이트할 CPU 코어를 작성하면서 실질적인 진전 달성
- 많은 게임에서 입력이 작동하기 시작하여 비디오 개선 작업을 더 진행할 수 있게 됨
- 다른 시스템을 위해 개발된 V53 CPU 지원이 나중에 사운드 DSP를 구동하는 데 결정적 역할
사운드 에뮬레이션의 급격한 진전
- Haywood가 플랫폼을 "작동" 상태로 표시하자, R. Belmont를 비롯한 MAME 기여자들의 관심을 끌게 됨
- Belmont, Happy, O. Galibert 등이 지난 한 달간 게임이 제대로 소리나도록 만드는 작업 진행
- Happy가 작성한 사운드 CPU 프로그램의 상세한 디스어셈블리가 매우 유용했음
- Belmont와 Galibert는 MAME에서 신디사이저 지원 작업을 하고 있었는데, Hyper Neo Geo 64의 사운드 칩이 신디사이저에도 사용되어 편리한 전문 분야 중복 발생
- 현재 MAME 릴리스 0.281에는 Belmont가 YouTube 동영상으로 문서화한 일련의 빠른 개선 사항이 포함됨
- 기본 샘플 시작 및 중지가 올바른 방식으로 작동하도록 수정
- 볼륨 엔벌로프에 대한 예비 지원 추가로 오디오 밸런스 개선
- 음성별 로우패스 필터 추가로 고주파 노이즈가 정리되고 사운드가 더 깨끗해짐
MAME 0.282의 주요 개선 사항
- 10월 출시 예정인 MAME 0.282에서 Xtreme Rally의 오디오 문제 해결 및 전반적인 품질 향상 예정
- Olivier Galibert가 12비트 다이나믹 레인지를 8비트로 압축하는 방식을 알아내고, 더 적합한 Chamberlin 필터로 교체하여 훨씬 선명하고 높은 충실도의 사운드 구현
- 루핑 샘플의 실제 작동 방식을 파악하고, 최종 믹스다운에서 왜곡이 발생하지 않도록 수정하며, 필터 엔벌로프를 수정하여 Beast Busters Second Nightmare 인트로의 극적인 개선 달성
- Xtreme Rally의 고유한 코드 문제 해결
- 이 게임은 사운드 명령을 최대한 빠르게 사운드 CPU로 전송하려는 독특한 코드를 가지고 있어, 명령의 2/3가 손실되는 문제 발생
- 모든 명령이 전달되도록 문제를 수정하여 Xtreme Rally가 이제 훌륭하게 들림
- MAME 0.282가 출시되면 Hyper Neo Geo 64는 진정으로 "작동" 레이블에 걸맞는 상태가 됨
협업 프로젝트의 완벽한 예시
- Galibert는 Reddit에 신디사이저 에뮬레이션에 대한 관심에서 비롯된 기여였지만, "재미있게도 신디사이저 자체(MPC3000)는 아직 전혀 작동하지 않는다"고 언급
- 신디사이저의 일부가 여전히 덤프되지 않고 문서화되지 않았지만, 가진 조각 중 하나가 완전히 다른 퍼즐에 맞아떨어지는 경우가 있음
- Haywood는 "그저 길고 느린 과정이었다"며, "수년에 걸쳐 조금씩 발전했고, MAME의 주변 코드가 더 나아지고 더 능력 있게 되면서 단계별로 더 많은 진전을 이룰 수 있었다"고 회고
Hacker News 의견
-
정말 대단한 노력임, 하지만 Byuu의 글이나 최근 Dolphin devlog를 그리워하게 됨. Shonumi의 개발 블로그도 적극 추천하고 싶음. 이 블로그는 Gameboy와 GBA의 희귀 혹은 에뮬레이션이 어려운 주변기기들, 예를 들면 적외선 모뎀부터 소나 기반 어탐기 등까지 다루고 있음 Shonumi devlog
-
Byuu는 정말 대단한 분이었음. 그가 등장해 에뮬레이터 호환성 개선에 큰 힘을 실었던 때가 기억남. Byuu가 세상에 가져온 긍정적인 변화들은 아직도 두고두고 생각하게 됨
-
Dolphin에도 Factor 5 게임들을 돌리기 위해 얼마나 많은 노력을 기울였는지에 대한 정말 흥미로운 글들이 있음. 고정된 하드웨어 환경에서는 성능을 최대한 끌어내기 위해 정말 놀라운 트릭들이 사용됨. 이런 것들은 수년이 지나 누군가 에뮬레이터로 이 소프트웨어를 실행하려고 할 때야 비로소 진가를 알게 됨
-
혹시 Soundblaster 에뮬레이션을 통해 마이크 입력을 제대로 지원해주는 PC 에뮬레이터를 아는 사람이 있는지 궁금함. archive.org에서 1994년쯤 공개된 내 첫 앱을 발견했는데, 음악 비주얼라이저이고 오디오 입력이 필요함
-
Shonumi devlog의 Battle Chip Gate 관련 글에서 동심의 추억이 살아남. 어릴 적 GBA의 Battle Network 팬이었고, Mega Man 포럼에 참여하려고 GameWinners.com에서 온라인 커뮤니티 활동을 시작했음. 첫 닉네임도 MMBN2의 새로운 기능에서 따왔음. Battle Network라는 게임 덕분에 오래된 게임 보존에 관심을 가지게 되었고, 게임의 AI와 사이버월드 설정들이 놀랍도록 미래를 예견한 느낌임. 인터넷에 직접 연결된 PC, 각자 맞춤형 AI, 디지털 세상의 복잡함을 탐색해주는 AI 에이전트, 사이버 범죄와 해커들, 그리고 시대를 초월한 디지털 취약점이나 환경 제어 시스템 해킹까지 정말 놀라운 미래상을 보여줬음. MMBN2 덕분에 영어도 배우고 프로그래머가 되었음. 여전히 그때를 떠올리며 즐겁게 회상하게 됨
-
-
MAME 프로젝트가 28년 넘게 본질이 거의 바뀌지 않고 적극적으로 개발 중이라는 점이 놀라움. 아마 매우 헌신적인 개발 커뮤니티 덕분임
-
C++ 코드베이스에 C++ 코드를 생성하는 코드, 빌드 프로세스를 또 생성하는 빌드 프로세스, 그리고 매년 파일명을 죄다 바꾸는 분의 고집까지 더하면, 정말 동굴 속 승려 같은 분위기가 남
-
정확히 fork는 아니지만 한때 MESS라는 프로젝트가 별도로 존재했고, 비-아케이드 시스템으로 범위를 확장하려다가 다시 통합되었음
-
Final Burn Alpha/Neo 같은 인기 있는 fork도 있음
-
우연히 알게 된 사실 중 정말 흥미로웠던 점은 SGI/IRIX까지 에뮬레이션한다는 것임
-
실제로 여러 fork들이 존재하지만, 정말 ‘중요한’ fork에 해당되는지는 잘 모르겠음. 그리고 헌신적인 mame 개발자들이 외부 코드에 매우 엄격한 평가를 한다는 것 역시 경험함
-
-
이런 글이 정말 마음에 듦. 게임 에뮬레이션이 여러 저자의 깊은 기술적 역량을 키웠음을 체감함. Xbox One X 등에서 볼 수 있는, 극도로 어렵고 하드웨어 깊숙이 박힌 DRM이 미래에는 문화재 전시에서 커다란 빈칸으로 남지 않을까 걱정됨. DRM은 사회적으로 우리가 충분히 인지하지 못하는 큰 대가가 분명히 존재함
-
10개도 안 되는 게임을 위해 이렇게까지 노력하는 에뮬레이션 개발자들의 열정은 정말 대단함
-
게임 수가 적은 플랫폼에도 누군가 한 게임에 크게 빠져서 열심히 분석하곤 함. 나 역시 T-Mek의 팬이고 문제 있는 머신을 헛간에 두고 있음. 단 두 개의 게임밖에 없는 시스템이지만, 누군가 관심과 실력, 장비까지 갖춘 사람이 나서야만 MAME에서 제대로 동작할 수 있도록 보호 장치를 깨트릴 수 있음
-
한때 이미 컴파일된 Habbo DCR을 독립 데스크탑 앱으로 돌릴 방법을 찾아낸 사람들이 있었기에, Habbo Origins도 여전히 존재함. 이걸 본 Sulake 직원도 직접 체험해봤는데, 이 직원은 실제로 Habbo Retro/Emulator 씬 출신이었음. 리버스 엔지니어링 씬은 정말 흥미로운 커뮤니티임
-
아케이드 하드웨어 중에는 오직 한 게임만을 위해 만들어진 완전 커스텀 기판이나, 한 번도 재사용되지 않는 칩들까지 존재함. MAME의 미션은 명확하지만, SNK와 Samurai Shodown, Fatal Fury까지 HNG64는 언제나 관심을 받았음
-
과거를 기록하고 보존하는 작업은 아주 의미 있는 행위임
-
이럴 때는 passionate(열정적)이라는 단어가 가장 적절한 것 같음
-
-
28년이 지난 지금도 MAME 곳곳에서는 여전히 흥미로운 변화가 계속되고 있음. 단순히 아케이드 머신을 넘어 잘 알려지지 않은 가정용 콘솔, 빈티지 컴퓨터, 다양한 하드웨어까지 확장되고 있음. 최근에는 전설적인 Yamaha MU 시리즈 같은 프로용 음악 신디사이저 에뮬레이션 진행 상황이 흥미로움 Yamaha MU-series 위키. 80년대 후반에 PC 게임들은 MIDI 사운드트랙을 지원하기 시작했고, 대부분의 게이머들은 제한적인 PC 사운드카드로 겨우 변형된 음악만 들었음. 충분한 자금이 있었다면 Roland Sound Canvas 같은 외부 MIDI 모듈로 생생하게 들을 수 있었지만, 진짜 최고는 64-voice Yamaha MU80이었음. MU80의 사운드를 처음 들었을 때 내가 놓치고 있었던 걸 실감함 MU80 Demo Song. 이제는 MAME 덕분에 소프트웨어 에뮬레이션만으로도 이 고가의 전문 하드웨어를 마음껏 경험할 수 있음
-
Packard Bell Pentium 166에 함께 들어있던 MIDI 음악들이 무척 이상하고 별로였던 기억이 남. 그 당시에 이미 이런 고성능 장치들이 있었다는 걸 몰랐음. 유튜브에서 Sound Blaster와 MU80 비교 영상을 찾아보니 정말 신기함 비교 영상
-
AI에게 90년대 향수에 젖게 하는 판타지 게임을 재창조해달라고 요청할 수 있는 날이 언제 올까 궁금함
-
-
이 방식이 CAPCOM이 예전 아케이드 시스템에서 사용하던 이상한 배터리 DRM 방식과 유사한지 궁금함. 전원이 꺼지면 CAPCOM에 재프로그램을 맡겨야 했던 방식이 있었음
-
그 방식과는 다른 것 같음. CPS, 특히 유명한 CPS2 보드를 말하는 듯함. 이 보드는 배터리가 안티-복제 장치를 구동했고, 배터리 전압이 일정 이하로 떨어지면 보안 키를 메모리에서 날려버림. 그래서 ROM은 암호화된 채 남게 됨. 기계 전원을 켜고 끄는 건 아무 문제 없었음. 오히려 CPS2 배터리가 중요한 부품을 망가뜨리는 경향이 있어서 ‘자살 배터리’로 불리기도 했음. 지금은 여러 방식으로 보호 장치를 해제할 수 있음. 암호화 해제된 Phoenix ROM을 쓰거나 Infinikey PCB를 납땜해 ROM 내 키를 보드 전원 공급으로 해결하는 등 여러 방법이 있음. 반면 HNG64는 단순히 하드웨어가 더 난해해서 분석이 덜 됐던 것 같음
-
이 방식은 2단계로 이루어짐. 프로그램 ROM과 CPU 사이에 독점형 디크립터 칩이 있었고, 이 칩은 작은 SRAM에 저장된 테이블을 사용했고, 이 SRAM은 배터리로 전력을 공급받았음. 전력을 잃으면(배터리가 닳거나 해킹 시도), 복호화 키도 사라졌음. 우연히 FC1 핀이 디크립터 칩에 연결된 게 발견됐고, 실제로 프로그램 ROM만 암호화되어 있었음. 68000 CPU가 명령어를 요청할 때 특정 신호를 보내 디크립터가 복호화할지를 정함. 그런데 PC-relative 주소 지정 방식도 동일 신호를 내서, 이걸로 암호화된 명령어를 빼낼 수 있었음. 또 하나의 보호 장치 때문인지 칩이 잠깐 후 작동을 멈추기도 했음. 나중에 CPS 기판을 기반으로 한 가정용 콘솔과 SF Zero 같은 게임의 콘솔 이식에서, 칩이 기다리던 이상한 주소를 읽는 명령들이 섞여 있음이 밝혀짐. 특정 주소 엑세스가 없으면 칩이 복호화를 멈췄던 것임. 이 기밀이 콘솔 포팅 때문에 알려졌고, 그 후로는 PC-relative와 이 엑세스를 교묘히 섞어 ROM을 정상적으로 덤프해낼 수 있었음. 68000 프로세서 참고 문서
-
이런 방식은 아직도 도박 장비 등에서 볼 수 있음. 최신 슬롯머신에는 많은 보호 장치와 배터리, 드릴-방지 기능 등이 들어가 있는데, 이제는 저작권 보호보다 세금 탈루 방지 목적이 더 큼
-
-
기사에서 LaserActive가 언급되어 있음. 어릴 때 삼촌 집에서 처음으로 봤는데 존재조차 몰랐음 LaserActive 위키. 거의 Genesis 게임만 플레이했던 기억임
- 이런 기기들은 존재를 아는 사람조차 극소수였음. 컬렉터 사이에서 비싸게 거래됐고, 15년 전에 PC Engine/TurboGrafx 장비에 관심을 가지기 시작했을 당시에도 이미 가격이 높았음. 지금은 더 비쌀 것 같음
-
Vajra와 Vajra 2가 Data West라는 회사에서 만든 LaserActive 전용 슈팅게임임을 보고 놀랐음. Data East와 이름이 닮았고 둘 다 일본 회사인데, Data East의 스핀오프는 아닌 듯함. 이름을 일부러 비슷하게 지어서 사람들이 혼동하게 하려 했던 게 아닌가 궁금함 Data West 회사 정보
-
기사 첫 사진의 가격표를 자세히 확대해서 보게 됨. Battle Toad in Battlemaniac는 53900엔, Akumajou Dracula XX는 27500엔, The King of Dragons는 39800엔임
-
Galaga와 Galaga Fast Shoot에서 키 입력과 게임 반응 사이에 100ms 이상의 지연이 계속 발생하는데, 언젠가 이 문제가 완전히 해결되었으면 좋겠음