MAME (원래 다중 아케이드 머신 에뮬레이터의 약어)은 현대적인 개인용 컴퓨터 및 기타 플랫폼에서 소프트웨어에서 아케이드 게임 시스템의 하드웨어를 재현하도록 설계된 무료 및 오픈 소스 에뮬레이터입니다. [2] 의도는 빈티지 게임이 잃어 버리거나 잊혀지는 것을 방지함으로써 게임 역사를 보존하는 것입니다. MAME의 목표는 에뮬레이션 된 아케이드 머신의 내부 작업에 대한 언급입니다. 실제로 게임을하는 능력은 "좋은 부작용"으로 간주됩니다. [3] Joystiq은 MAME을 모든 Windows와 Mac 게이머가 가져야하는 응용 프로그램으로 나열했습니다. [4]
최초의 공개 MAME 릴리스는 1997 년 2 월 5 일 Nicola Salmoria가 제공했습니다. 에뮬레이터는 이제 7,000 개가 넘는 고유 한 게임과 10,000 개의 실제 ROM 이미지 세트를 지원하지만 지원되는 모든 게임이 재생할 수있는 것은 아닙니다. MAME 코어를 기반으로 한 많은 비디오 게임 콘솔 및 컴퓨터 시스템의 에뮬레이터 인 Mess는 2015 년에 MAME에 상류로 통합되었습니다.
MAME (Multiple Arcade Machine Emulator)는 최신 개인용 컴퓨터 및 기타 플랫폼의 소프트웨어에서 아케이드 게임 시스템의 하드웨어를 재현하도록 설계된 무료 및 오픈 소스 에뮬레이터입니다. mame.net은 C# 기반 아케이드 에뮬레이터이며 MAME의 동일한 아키텍처를 유지합니다. C#과 강력한 통합 개발 환경 인 Microsoft Visual Studio를 사용하면 매크로가 없으며 지원되는 아케이드 게임을 어디서나 디버깅 할 수 있습니다. 현재까지 지원되는 몇 가지 클래식 보드가 있습니다 : M72, M92, CPS-1, CPS-1 (QSound), CPS2, Neo Geo, Namco System 1, IGS011, PGM (Polygame Master).
MAME.NET는 다음 단계에서 실행됩니다. ROM을로드하고 기계를 초기화하고 기계를 소프트 재설정 및 "CPUEXEC_TIMESLICE"작업을 루프합니다. "cpuexec_timeslice"작업은 타임 슬라이스에 대해 모든 CPU를 순차적으로 실행하고 타이머 콜백을 실행하는 것을 의미합니다. 타이머 콜백에는 비디오 업데이트, 소프트 리셋, CPU 인터럽트, 사운드 업데이트, 워치 독 재설정 및 기타 인터럽트가 포함됩니다. 이러한 단계에서 MAME.NET은 아케이드 보드를 성공적으로 모방합니다. MAME.NET에는 저장 및로드 스테이트, 레코드 및 재생 입력, 치트, 치트 검색, IPS (패치 메인 ROM), 보드 디버거, CPU 디버거가 더 많은 기능이 있습니다.



게임의 롬이로드되면 에뮬레이터가 자동 일시 중지됩니다. 계속하려면 P를 누릅니다.
*때때로 GDI+ 오류가 발생하고 적십자가 표시됩니다. "File-Reset PictureBox"를 클릭하여 오류를 처리 할 수 있습니다.
1 역사 및 개요 2 디자인 2.1 게임 데이터 3 철학 및 정확도 4 법적 상태 5 원래 Mame-License 6 참조 참조 8 개의 외부 링크 참조
이 프로젝트는 이탈리아 프로그래머 Nicola Salmoria에 의해 시작되었습니다. MAME은 MAME 프레임 워크 내에서 점점 더 많은 게임이 모방되기 시작함에 따라 MAME 프레임 워크 내에서 더 많은 게임이 모방되기 시작함에 따라 이름이 변경되었습니다. 첫 번째 버전은 1996 년에 출시되었습니다. [5] 1997 년 4 월, Salmoria는 그의 전국 서비스 약속을 위해 발을 내딛었습니다. 2003 년 5 월 David Haywood는 코디네이터의 임무를 맡았습니다. 2005 년 4 월부터 2011 년 4 월 까지이 프로젝트는 Aaron Giles에 의해 조정되었습니다. [6] Angelo Salese는 새로운 코디네이터로 들어갔다. [7] 2012 년에 Miodrag Milanovic은 인수했습니다. [8] 이 프로젝트는 전 세계 수백 명의 개발자와 수천 명의 외부 기고자들이 지원합니다.
처음에 MAME는 MS-DOS를 위해 독점적으로 개발되었지만 곧 UNIX- 유사 시스템 (X/MAME), MacIntosh (MacMame 및 Mame OS X) 및 Windows (MAME32)로 포팅되었습니다. 버전 0.37B15 [6]로 2001 년 5 월 24 일부터 주요 개발은 Wind 또한 다양한 버전의 MAME가 다른 컴퓨터, 게임 콘솔, 휴대 전화 및 PDA 및 디지털 카메라에도 포팅되었습니다. [10] 2012 년에 Google은 MAME를 기본 클라이언트로 포팅하여 MAME가 Chrome 내부에서 실행할 수있게했습니다. [11]
MAME의 주요 릴리스는 한 달에 한 번에 발생합니다. 32 비트 및 64 비트 패션의 Windows 실행 파일은 전체 소스 코드와 함께 개발 팀의 공식 웹 사이트에서 출시됩니다. [12] 더 작고 점진적인 "U"(업데이트 용) 릴리스는 매주 (버전 0.149U1까지) 소스가 가장 최근의 주요 버전에 대해 차이가 발생하여 개발자 간의 동기화에 코드를 유지하면서 릴리스되었습니다. [13] MAME 소스 코드는 공개 Github 저장소에서 개발되었습니다. [14] 이를 통해 필요한 전문 지식과 도구를 가진 사람들은 최신 버전의 코드를 구축하고 풀 요청 형식으로 향상된 기능을 제공 할 수 있습니다. 역사적 버전 번호 0.32 및 0.38 ~ 0.52 포용 적으로 존재하지 않습니다. 전자는 MAME32 변형의 비슷한 이름으로 건너 렸으며 (64 비트 빌드로의 이동으로 인해 MAMEUI 자체로 이름이 바뀌 었음), 후자의 숫자는 0.37 베타주기의 수많은 릴리스로 인해 건너 뛰었습니다 (이 버전 번호는 다음에 해당 0.37 베타 버전에 표시되어 있습니다. [15].
MAME의 아키텍처는 수년에 걸쳐 광범위하게 향상되었습니다. 래스터 및 벡터 디스플레이 및 다중 CPU 및 사운드 칩에 대한 지원은 프로젝트의 첫 6 개월 동안 MAME에 추가되었습니다. 다중 에뮬레이션 된 CPU 코어 사이의 동기화를 조정하는 유연한 타이머 시스템이 구현되었고, 저장된 ZIP 파일에서 CRC32 해시에 따라 ROM 이미지가로드되기 시작했습니다. [6] MAME는 많은 문서화되지 않은 시스템 아키텍처, 다양한 CPU (예 : 새로운 지침이 포함 된 M6809- 유도 적 커스텀 Konami CPU) 및 사운드 칩 (예 : Yamaha FM 사운드 칩)의 역 엔지니어링을 개척했으며 MAME 개발자는 많은 프로모션 게임의 역 엔지니어링에서 우연히 사용되었습니다. 이들의 예로는 Neo Geo, CP System II, CP System III 및 기타 많은 것들이 포함됩니다. [인용 필요]
MAME의 인기는 그 이후로 주류로 나뉘어졌으며, 애호가들은 자신의 아케이드 게임 캐비닛을 구축하여 오래된 게임을 재현하고, 회사와 아케이드에 설치 될 MAME의 불법 파생 작품을 생산하는 회사와 함께. 캐비닛은 처음부터 또는 한때 실제 하드웨어와 함께 사용 된 진정한 아케이드 게임 캐비닛을 분해하고 수정하여 구축 할 수 있습니다. [16] [17] 클래식 아케이드 게임에서 영감을 얻은 캐비닛은 구매 및 조립 될 수도 있습니다 (선택 사항 및 MAME 사전 설치) [18]
MAME에는 초보적인 사용자 인터페이스가 포함되어 있지만 아케이드 게임 캐비닛과 홈 시어터에서 MAME를 사용하려면 고급 사용자 인터페이스가있는 프론트 엔드라는 특별한 런처 응용 프로그램이 필요합니다. 프론트 엔드는 다양한 수준의 사용자 정의를 제공하여 캐비닛의 이미지, 게임의 역사 및 플레이 방법에 대한 팁, 게임의 게임 또는 게임 모드의 비디오를 볼 수 있습니다.
MAME 내에 포함 된 정보는 재사용에 무료이며 기업은 현대 시스템에서 오래된 고전을 재현 할 때 MAME를 활용하는 것으로 알려져 있습니다. 일부는 MAME 개발자를 고용하여 이전 속성에 대한 에뮬레이터를 만들었습니다. 이에 대한 예는 MAME의 일부 버전에서 읽을 수있는 ROM을 포함하는 Taito Legends Pack입니다. [19]
2012 년부터 MAME는 Mess Project 리더 Miodrag Milanović에 의해 유지됩니다. [8]
2015 년 5 월 27 일 (0.162), 게임 콘솔 및 컴퓨터 시스템 에뮬레이터 혼란은 MAME와 통합되었습니다 (따라서 Mess User Manual은 여전히 MAME의 비 아케이드 부분에 대한 가장 중요한 사용 지침). [20]
2015 년 5 월, MAME의 개발자들은 원래 MAME-License에서 멀리 떨어진보다 일반적인 무료 및 오픈 소스 라이센스로 소프트웨어를 다시 라이센스 할 계획이라고 발표했습니다. MAME 개발자 Miodrag Milanovic 은이 변경이 프로젝트에 더 많은 개발자의 관심을 끌기위한 것이라고 설명했으며, 게임 제조업체가 MAME를 자신의 게임을 모방하기 위해 MAME을 배포하고 소프트웨어를 "개발 보드에서 작업하는 개발자를위한 학습 도구"로 만들 수 있다고 설명했습니다. MAME 라이센스를 BSD/GPL 라이센스로 전환하는 것은 2016 년 3 월에 완료되었습니다. [21] [22] 라이센스 변경으로 인해 대부분의 MAME 소스 코드 (90%+)는 3 개의 클라스 BSD 라이센스에 따라 사용할 수 있으며 전체 프로젝트는 GNU 일반 공개 라이센스 버전 2 이상입니다. [21] [23]
2016 년 2 월 24 일 (0.171), MAME는 Mewui 프론트 엔드 (및 개발자가 팀에 합류)를 통해 MAME에게 유연하고 완전한 기능을 갖춘 UI를 제공했습니다. [24]
이 섹션에는 원래 연구가 포함되어있을 수 있습니다. 청구를 확인하고 인라인 인용을 추가하여 개선하십시오. 원래 연구로만 구성된 진술은 제거되어야합니다. (2019 년 7 월) (이 템플릿 메시지를 어떻게 그리고 언제 제거할지 배우십시오) MAME 코어는 여러 요소의 에뮬레이션을 동시에 조정합니다. 이러한 요소는 원래 아케이드 머신에 존재하는 하드웨어의 동작을 복제합니다. MAME는 다양한 중앙 처리 장치 (CPU) 및 관련 하드웨어를 모방 할 수 있습니다. 이러한 요소는 가상화되므로 MAME는 게임의 원래 프로그램과 플랫폼 MAME 사이의 소프트웨어 계층 역할을합니다. MAME는 임의의 화면 해상도, 새로 고침 속도 및 디스플레이 구성을 지원합니다. 예를 들어 Darius에 의해 요구되는 다중 모방 모니터도 지원됩니다.
개별 아케이드 시스템은 C 전 처리기 매크로의 형태를 취하는 드라이버에 의해 지정됩니다. 이 드라이버는 모방 할 개별 구성 요소와 서로 통신하는 방법을 지정합니다. MAME는 원래 C로 작성되었지만 객체 지향 프로그래밍이 필요하면 개발 팀이 모든 코드를 MAME 0.136의 C ++로 컴파일하기 시작하여 프로세스에서 해당 언어의 추가 기능을 활용했습니다.
CPU 에뮬레이션 코어의 대다수는 해석 적이지만 MAME는 UML (Universal Machine Language)이라는 중간 언어를 통한 동적 재 컴파일을 지원하여 에뮬레이션 속도를 높입니다. 지원되는 백엔드 대상은 X86 및 X64입니다. AC 백엔드는 또한 정확성 검증을 더 지원하기 위해 사용할 수 있습니다. 이러한 방식으로 에뮬레이션 된 CPU는 SH-2, MIPS R3000 및 PowerPC입니다.
게임을 모방 할 수 있도록 원래 프로그램 코드, 그래픽 및 사운드 데이터를 제공해야합니다. 대부분의 아케이드 머신에서 데이터는 읽기 전용 메모리 칩 (ROM)에 저장되지만 카세트 테이프, 플로피 디스크, 하드 디스크, 레이저 디스크 및 소형 디스크와 같은 다른 장치도 사용되지만. 이러한 장치의 대부분의 내용은 "덤프"라는 프로세스에서 컴퓨터 파일에 복사 할 수 있습니다. 결과 파일은 종종 스토리지의 종류에 관계없이 일반적으로 ROM 이미지 또는 ROM이라고합니다. 게임은 일반적으로 여러 ROM 및 PAL 이미지로 구성됩니다. 이들은 단일 zip 파일 내에 전체적으로 저장되어 ROM 세트를 구성합니다. "부모"ROM 세트 (일반적으로 가장 최근의 "세계"버전으로 선택됨) 외에도 게임에는 다른 프로그램 코드가 다른 "클론"ROM 세트, 다른 시장에 대한 다른 언어 텍스트 등이있을 수 있습니다. 예를 들어 Street Fighter II Turbo는 Street Fighter II Champion Edition의 변형으로 간주됩니다. 여러 게임간에 ROM이 공유되는 Neo Geo와 같은 시스템 보드는 ROM을 "BIOS"ROM 세트에 저장하고 적절하게 명명해야합니다.
하드 디스크, 소형 디스크 및 레이저 디스크는 CHD (압축 된 데이터 덩어리)라는 MAME 특이 적 형식으로 저장됩니다. [25] 일부 아케이드 머신은 LaserDiscs와 같은 아날로그 하드웨어를 사용하여 사운드 트랙 및 영화와 같은 오디오/비디오 데이터를 저장하고 재생합니다. 이 데이터는 MAME에서 읽을 수있는 디지털 파일로 캡처하고 인코딩해야합니다. MAME는 외부 아날로그 장치의 사용을 지원하지 않으며, 아케이드 경험을 100% 충실한 재생산하려면 동일한 스피커 및 스피커 인클로저와 함께 필요합니다. 많은 게임에서 아직 성공적으로 모방되지 않은 사운드 칩을 사용합니다. 이 게임에는 사운드 에뮬레이션을 위해 WAV 파일 형식의 사운드 샘플이 필요합니다. MAME는 또한 베젤 및 오버레이 그래픽 용 PNG 형식의 아트 워크 파일을 지원합니다.
이 프로젝트의 목표는 하드웨어를 문서화하는 것이므로 MAME은 에뮬레이션에 대한 다소 순수한 관점을 취하여 에뮬레이션 정확도를 희생하면서 게임을 부적절하게 실행하거나 더 빨리 실행할 수있는 프로그래밍 해킹을 금지합니다. CPU와 같은 구성 요소는 가능할 때마다 낮은 수준 (개별 지침이 에뮬레이션)으로 에뮬레이션되며, 고급 에뮬레이션 (HLE)은 칩이 완전히 문서화되지 않은 경우에만 사용되며 역 엔지니어링 할 수 없습니다. 신호 레벨 에뮬레이션은 아날로그 구성 요소로 구성된 오디오 회로를 모방하는 데 사용됩니다.
하드웨어를 문서화하고 싶습니다. 이제 많은 사람들이 말할 것입니다. "당신의 문서는 어디에 있습니까? 당신은 단지 많은 소스 코드를 작성합니다." 그리고 네, 그것은 사실입니다. 내가 배운 한 가지는 문서를 소스 코드와 동기화하는 것이 거의 불가능하다는 것입니다. 문서가 옳다는 가장 좋은 증거는 "이 코드가 작동"입니다.
- Aaron Giles, California Extreme 2008 [26] Mame은 수천 개의 다른 아케이드 시스템 보드를 모방하고 있으며, 그 중 대다수는 단일 게임 또는 매우 적은 수의 실행하도록 완전히 문서화되지 않은 사용자 정의입니다. MAME의 정확도와 관련하여 접근하는 접근 방식은 점진적입니다. 시스템은 합리적으로 할 수있는 것처럼 정확하게 모방됩니다. Bootleg 게임 사본은 종종 가장 먼저 모방되고 나중에 적절한 (및 복사 보호) 버전이 모방됩니다. 암호화 외에도 아케이드 게임은 일반적으로 게임 논리 또는 기타 중요한 기능의 일부를 구현하는 MCU (Microcontroller Units)로 보호되었습니다. 이 칩의 에뮬레이션은 게임 자체에 즉시 눈에 띄는 효과가 거의 없거나 전혀없는 경우에도 선호됩니다. 예를 들어, Bubble Bobble의 몬스터 거동은 Custom MCU에 포함 된 코드와 데이터가 칩의 해부를 통해 덤프 될 때까지 완성되지 않았습니다. [27] 이로 인해 게임이 점점 더 정확한 정도로 모방되어 ROM 세트 요구 사항이 변경되어 새로운 버전의 MAME에서 오래된 버전의 ROM 세트가 사용할 수 없습니다.
이식성과 제어성은 MAME에게도 중요합니다. 정확성에 대한 타협하지 않는 자세와 결합하여 종종 시스템 요구 사항이 높아집니다. 2GHz 프로세서가 거의 모든 2D 게임을 실행하기에 충분하지만, 최신 시스템과 특히 3D 그래픽이있는 시스템은 가장 빠른 컴퓨터에서도 플레이 할 수 없을 수 있습니다. MAME는 현재 안정적인 크로스 플랫폼 3D API가 없기 때문에 3D 그래픽의 렌더링 속도를 높이기 위해 하드웨어 가속도를 이용하지 않으며, 소프트웨어 렌더링은 이론적으로 이론적으로 아케이드 게임에서 사용 된 다양한 맞춤형 3D 렌더링 접근법의 정확한 재생산이 될 수 있기 때문입니다.
MAME 자체를 소유하고 배포하는 것은 대부분의 국가에서 합법적입니다. 소니와 같은 회사는 법정에서 소니 플레이 스테이션 에뮬레이터 인 가상 게임 스테이션과 같은 다른 소프트웨어를 방지하려고 시도했지만 궁극적으로 실패했습니다. [28] Mame 자체는 지금까지 법원 사건의 대상이 아니었다.
대부분의 아케이드 게임은 여전히 저작권으로 덮여 있습니다. 저작권 보유자의 허가없이 저작권이있는 ROM을 다운로드하거나 배포하는 것은 거의 항상 저작권법을 위반하는 것입니다. 그러나 일부 국가 (미국 포함) [29]는 보드의 소유자가 ROM 칩에 포함 된 데이터를 개인용 컴퓨터 또는 소유 한 다른 장치로 전송할 수 있도록 허용합니다. 일부 저작권 보유자는 라이센스를 통해 아케이드 게임 ROM을 대중에게 제공하는 것을 탐색했습니다. 예를 들어, 2003 년 Atari는 인터넷 사이트 스타 롬에서 사용할 수있는 27 개의 아케이드 게임을 위해 Mame 호환 ROM을 만들었습니다. 그러나 2006 년까지 ROM은 더 이상 판매되지 않았습니다. 어느 시점에서 Hanaho가 제조 한 Hotrod Arcade Goystick과 함께 다양한 Capcom 게임이 판매되었지만이 배열도 중단되었습니다. 다른 저작권 보유자들은 게임의 상업적 사용을 금지하는 라이센스에 따라 더 이상 상업적으로 상업적으로 실행 가능한 게임을 공개하지 않는 게임을 출시했습니다. 이 게임들 중 다수는 공식 MAME 웹 사이트에서 법적으로 다운로드 될 수 있습니다. [30] 스페인 아케이드 게임 개발자 Gaelco는 또한 웹 사이트에서 비상업적 사용을 위해 World Rally를 발표했습니다. [31]
MAME 커뮤니티는 인터넷이나 물리적 미디어를 통해 ROM을 재분배하는 다른 그룹과 거리를두고 저작권을 침해하고 프로젝트를 잠재적으로 멸종시켜 프로젝트에 해를 끼치고 있다고 주장했다. [32] 그럼에도 불구하고, ROM의 불법 분포는 인터넷에서 널리 퍼져 있으며, 특정 버전의 ROM의 전체 모음을 포함하는 많은 "풀 세트"도 존재합니다. [33] [34] 또한 Arcade Multi Carts와 같은 많은 Bootleg 게임 시스템은 종종 MAME 버전을 사용하여 게임을 실행합니다.
Mame은 이전에 "Mame 라이센스"또는 "Mame-Like License"라는 사용자 정의 자체 작성된 Copyleft 라이센스로 배포되었으며, 이는 다른 프로젝트와 예를 들어 Visual Pinball에 의해 채택되었습니다. 이 기존 "MAME 라이센스"는 소스 코드 가용성을 보장하는 반면 상용 활동의 재분배는 금지됩니다. 이 조항으로 인해 라이센스는 OSI의 오픈 소스 정의 및 FSF의 무료 소프트웨어 정의와 호환되지 않습니다. 비상업적 조항은 아케이드 운영자가 MAME 캐비닛을 설치하지 못하고 게임의 원래 제조업체의 작품에서 이익을 얻지 못하도록 설계되었습니다. [22] "상업적"정의의 모호성은 라이센스와의 법적 문제로 이어진다. [35] [36]
버전 0.172로 2016 년 3 월 이후 MAME 자체는 BSD 및 GPL 라이센스 인 Common Free and Open Soctor Software 라이센스로 전환했습니다. [37]