MAME

MAME（メイム）は、オープンソースの汎用エミュレーターである。かつてはアーケードゲームエミュレータであったが、現在は汎用エミュレーターとなっている。元々の正式名称はMultiple Arcade Machine Emulator。

概要 
1997年2月5日にイタリア人のニコラ・サルモリアによって最初のバージョン (0.1) がリリースされた。世界中の数十名からなる開発チームにより、現在も開発、改良が続けられている。サポートするタイトル数は、完全に動作しないものも含めて3,500本以上、クローン版（同一ゲームのバージョン違いや、海外向けにローカライズしたものなど）を含めると6,500本以上に上る。現在のプロジェクト管理者はアメリカのアーロン・ジャイルズ。

MAMEはオープンソースであり、GitHubを用いて共同で開発されている。かつては、独自にエミュレート対象のゲームの挙動を修正したり、新しいゲームへと対応させた派生版が多く存在したが、現在は本家MAMEへのマージが進んでいる。非公式版として、多くのに対応するHBMAMEや、CRTモニター向けのGroovyMAME、ピンボール向けの、VGM生成用のMAME/MESS VGM modがある。MAMEフロントエンドとしては、公式のコマンドラインUIの他に、Windows用GUIのMAMEUI、独自インターフェースのIV/Play、MAMEのWebフロントエンドであるEmularityなどが存在する。かつては、Mac用のMAME OS X、GTK採用のGMAMEUI (GXMame派生)、KDE採用のKxmame (GXMame派生)、Qt採用のMAME Plus!なども存在した。

サポートするハードウェア 
MAMEがサポートするのは、主に1970年代から1990年代（一部2010年のゲームまで対応）のアーケードゲームやカジノゲームである。Atari PONGやBreakoutなどROMを持たず、ディスクリート回路のみで構成されているゲームも、を通してサポートしている。メカニカルのあるゲームは、サポートされないものが多い (UFOキャッチャー、プリクラ、メダルゲーム、ピンボールなど)。セグメントディスプレイを使ったゲームなどでは、外部アートワークを必要とするものがある。3Dアートワークにはまだ対応していないため、ワニワニパニックは2Dとなる。一部のゲームは音源エミュレーションに未対応であり、音を鳴らすために外部のMAME Samplesが必要となる。近年のPCベースのアーケードゲームには対応しておらず、ArcadePC LoaderやTeknoParrotなどの他のプログラムを使う必要がある。

0.162以降のMAMEは以下のようにアーケード機に限定しないエミュレートを実装している。
 アーケードゲーム基板
 システム基板
 互換基板
 第3世代互換基板（任天堂VS.システム、セガ SYSTEM E）
 第4世代互換基板（セガ SYSTEM C/C2）
 第5世代互換基板（セガ ST-V、ソニー ZN-1/ZN-2、タイトー FXシステム/G-NETシステム、テクモ TPS SYSTEM、コナミ GX700/GV999、ナムコ SYSTEM10/11/12、セタ Aleck64、Atari Cojag）
 テレビゲーム機
 第2世代（フェアチャイルド・チャンネルF、Atari 2600、オデッセイ2、VC 4000、ビジコン、TV JACK スーパービジョン8000、インテレビジョン、カセットビジョン、Atari 5200、Vectrex、アルカディア）
第3世代（ファミリーコンピュータ/ディスクシステム/ツインファミコン、セガ SG-1000/SG-1000II/マークIII/マスターシステム、カシオ PV-1000、Atari 7800、スーパーカセットビジョン）
第4世代（PCエンジン/スーパーグラフィックス、メガドライブ、スーパーファミコン）
第5世代（ネオジオCD-Z、ルーピー）
 ビデオゲーム内蔵テレビ（ファミコンテレビC1）
 業務用テレビゲーム機（ファミコンボックスなど）
 店頭販促機（Nintendo M8）
 ゲームパソコン（コモドール VIC-1001/コモドール64/マックスマシーン、ZX Spectrum、トミー ぴゅう太、ソード M5、セガ SC-3000）
 電卓
 グラフ電卓（HP 38G/48シリーズ/49G、/81/82/85/86/89 シリーズ/92シリーズなど）
 LSI/LCDゲーム (たまごっち、ゲームロボット九、Tiger LCDゲーム、学研 LSI GAMEシリーズ、ゲーム&ウオッチ、バンダイ FLシリーズ、トミーエレクトロニクスゲームシリーズなど)
 電子ボードゲーム (など)
 携帯型ゲーム機 (Microvision、アドベンチャービジョン、ゲームポケコン、ゲームボーイ、Atari Lynx、、、Gamate、、ネオジオポケット、ワンダースワン、ゲームボーイアドバンスなど)及びその周辺機器（ポケットカメラなど）
 体感ゲーム (Plug It! ポピラ、エポック 体感ゲームシリーズなど)
 ラジコン (システムコントロールカー チータなど)

 ミニコンピュータ（PDP-1）
 ワークステーション (Apollo/Domain、 R4000、Omron Luna 88K/88K²等)及びその周辺機器(プリンターや音声合成装置やミュージカルキーボードなど)
 グラフィックワークステーション (SGI Personal IRIS 4D、 HP1/HP2、等)
 モバイルワークステーション (Sony NEWS NWS-3260等)
 プログラマブル計算機 (等)
 デスクトップパソコン (、IBM PC/PC XT/PCjr、Apple III/シリーズ//LCシリーズ/Performaシリーズ/Quadraシリーズ/、等)
 ポータブルコンピュータ (IBM 5155、等)
 ホビーパソコン/ホームコンピュータ (Apple I/II、TRS-80、Commodore PET 2001、各社MSX、BBC Micro/、Sharp X68000など)
 開発システム (、Intel Intellec MDS-II等)
 ワードプロセッサ (、ブラザー AX-145/など)
 ワンボードマイコン (、KIM-1、SYM-1、、Motorola 、Motorola EXORciser、、、、Intel 、シグネティクス Instructor 50、NEC TK-80等)
 シングルボードコンピュータ (Intel iSBC 286/10、FriendlyARM等)、
 パームトップPC (Atari Portfolio等)
 ポケットコンピュータ (//、Psion Organiser II等)
 ハンドヘルドコンピュータ/携帯情報端末 (、Palm 、PalmPilot、、等)
 知育玩具 (TIの、ベネッセのポケットチャレンジV2等)
 競馬予想機 (Thoroughbred Horse Race Analyzerなど)
 決済端末機 (VeriFone 等)
 音源モジュール (YAMAHA FB-01等)
 LDプレーヤー (Pioneer LDV-1000、Pioneer PR-8210など)
 フィットネスマシン (Salter Fitness Bike、Salter Fitness Stepper)
 電子楽器
 電子パーカッション（Yamaha DD-9など）
 ドラムマシン (Casio RZ-1など)
 電子キーボード/シンセサイザー (カシオトーン CTK-530/CTK-551/CTK-601、カシオ・CZシリーズ、/PSRシリーズ/PSSシリーズなど)
 電子ピアノ（CASIO Celviano AP-10など）
 多機能スピーカー（Casio GZ-70SPなど）
 言語翻訳機 (TIのLanguage TranslatorやLanguage Teacher等)
 音声モールス発生器（Gerät 32620）
 ドアチャイム（Chromatronics Chroma-Chime）
 キディライド（わくわくアンパンマン、わくわくマリン、わんぱくサファリなど）
 ポップコーン販売機（それいけ！アンパンマン ポップコーンこうじょう、セガソニック ポップコーンショップなど）
 パンチングマシン（ソニックブラストマン、リアルパンチャーなど）
 バーサライタ（ Sky-Writer）

なお、古いPCへの対応は、SPC/ATやPCem、Common Source Code Projectなどのエミュレータの方が進んでいる。

開発方針 

MAMEの開発方針はオリジナルのハードウェア動作を忠実に再現することに重点を置いており、MAMEは基本的にAPUやMPUなどのチップレベルの低レベルエミュレーション (LLE) を行っている。ただし例外として、キーボード周りやI/O周りやDSPなどには高レベルエミュレーション (HLE)も使われている。

ROMイメージ 

MAMEで使用するROMイメージを入手するためは、他の低レベルエミュレータと同様に、基板から実物のROMの内容を吸い出す必要がある。ただし例外として、Exidy社、バリー/ミッドウェイ社などの作品のうち、一部のゲームのROMイメージは、メーカーからの正式な許可を得たうえで、MAMEの公式サイトで配布されている。また、ドイツのコンピュータ雑誌「c't」で、「UDPを使いMAMEを自動制御し、アタリ社のゲーム『アステロイド』のハイスコアを競う」内容のコンテストが行われる際に、この雑誌の読者向けに、アタリ社より『アステロイド』のROMイメージを配布する許可を得ている（不特定多数が対象ではない）。

歴史 
1997年にリリースされた当初はMS-DOS版として開発されていたが、年内にはMacintosh (MacMAME)、Unix系OS (X/MAME)、Windows (MAME32)に移植された。また、1998年には、MAME 0.33のベータ版を基にして、汎用エミュレーターであるMESS（Multi Emulator Super System）の開発が始まった。2003年よりCPUエミュレーションのが追加されはじめた。2005年、MAME 0.99u2で、ギャンブルゲームを実装するAGEMAME (旧MAGE)がMAMEに統合されはじめた。2007年、MAME 0.120でWindows 64bit版が公式に用意された。

2010年、MAME 0.136u1で、SDL採用のクロスプラットフォームなコマンドライン版であるSDLMAMEがMAMEに統合された。2011年、MAME 0.141u1で、ピンボールを実装するPINMAMEがMAMEに統合されはじめた。2012年、MAME 0.146u4でによる電子回路シミュレーションに対応した。同年、MAME 0.147でMESSのコードベースが統合され、MESSとMAMEの統合版としてUME（Universal Machine Emulator）がビルドできるようになった。

2015年のMAME 0.162で、MAMEはMESSを吸収してUME相当となった。同年、MAME 0.168でMAMEをJavaScriptへとコンパイルしてWeb上で動かすJSMESSがMAMEのコードベースに統合された。更に同年、MAME 0.171で独自インターフェースのMEWUIがMAMEのコードベースに統合されたほか、派生版のみに実装されていたAuto-fireに対応し、また、GPUバックエンドのBGFXが追加された。

2016年、MAME 0.172でライセンスが一般的なオープンソースライセンスのGPLとなった。また、ハイスコアが再実装されたほか、CRTモニタ向けのGroovyMAMEの拡大縮小周りが統合された。同年、MAME 0.177でVGM形式の音源を再生するための、VGM Playerが搭載された。2019年、MAME 0.216でレイテンシを削減する「-lowlatency」オプションが追加された。

動作 
MAMEの動作には、実際の基板上のデータイメージ（ROMイメージ）を用意する必要がある。MAMEは基板のハードウェア構成をソフトウェアでエミュレートすることにより、オリジナルのROMイメージを異なるハードウェア上で動作させることを可能にしている。エミュレートするCPU/MPUは代表的なZ80や68000をはじめとして100種類以上、サウンドチップ/DSPは70種類以上、そのほか多くのカスタムチップもサポートする。また一部のアナログICやアナログ素子もNetlistでサポートしている。

最近のバージョンでは、3Dグラフィックシステムなど、処理量の多いゲームにも対応している。しかし、前述の通り、エミュレーションの動作速度よりもオリジナルハードウェアの忠実な再現を目的とするため、3Dグラフィックやテクスチャ処理なども、Direct3DなどのOS固有の拡張機能を使わず、オリジナルハードの動作を元に全てソフトウェアで処理を行う。このため最新の高速プロセッサでも完全な速度で動作しないタイトルが一部存在する（Windows版では描画の設定にDirect3Dの項目があるが、これは最終的な描画先としてDirect3Dを用いるだけであり、エミュレーション処理自体には関係しない）。

盗用問題 
以前のMAMEは商用利用を禁止していたが、度々それに違反した利用が発覚している。

 メディアカイト「ネットげーせん」
 ハムスター「オレたちゲーセン族シリーズ」
 200in1等を謳う製造者不明なエミュレータ筐体，エミュレータ台（アーケードゲーム筐体として流通）

脚注

関連項目 
 :en:Visual Pinball
 アーケードゲーム基板
 エミュレータ
 ゲームエミュレータ
 エミュレーター基板

外部リンク 
 MAME公式サイト＆開発情報（英語）
 MAMEUI公式サイト（英語）
 MAME E2J

エミュレーションソフトウェア
アーケードゲーム
フリーウェア
1997年のソフトウェア