20년간의 노력 끝에 MAME가 Hyper Neo Geo 64를 완전히 구현

1 month ago 10

  • 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의 주변 코드가 더 나아지고 더 능력 있게 되면서 단계별로 더 많은 진전을 이룰 수 있었다"고 회고

Read Entire Article