MAME(Multiple Arcade Machine Emulator)は、1997年にイタリアのプログラマー、ニコラ・サルモリアによって開発が開始されたオープンソースの
エミュレーターです。当初は
アーケードゲームのエミュレートを目的としていましたが、現在では多種多様なハードウェアに対応する汎用
エミュレーターへと進化を遂げています。
MAMEの概要
MAMEは、世界中の数十人の開発者からなるチームによって開発と改良が続けられています。サポートする
ゲームタイトルは、完全に動作するものから不完全なものまで含めると3,500本以上、クローン版を含めると6,500本以上にも及びます。プロジェクトの管理はアメリカのアーロン・ジャイルズ氏が担当しています。
MAMEはオープンソースであり、開発はGitHubを通じて共同で行われています。かつては、個々の
ゲームの挙動を修正したり、新しい
ゲームに対応させるための派生版が多数存在しましたが、現在ではそれらの修正が本家MAMEに統合される傾向にあります。非公式版としては、Homebrew対応のHBMAME、CRTモニター向けのGroovyMAME、ピンボール向けのPinMAME、VGM生成用のMAME/MESS VGM modなどが存在します。
MAMEのフロントエンド(ユーザーインターフェース)としては、公式のコマンドラインUIの他に、Windows用のGUIであるMAMEUI、独自のインターフェースを持つIV/Play、WebフロントエンドのEmularityなどがあります。以前は、Mac用のMAME OS X、GTK採用のGMAMEUI、
KDE採用のKxmame、
Qt採用のMAME Plus!なども存在していました。
対応ハードウェア
MAMEは、主に1970年代から1990年代の
アーケードゲームやカジノ
ゲームをサポートしています。Atari PONGやBreakoutのようなディスクリート回路のみで構成された
ゲームも、Netlistと呼ばれる方式を通じてエミュレート可能です。セグメントディスプレイを使用する
ゲームでは、外部アートワークが必要となる場合があります。3Dアートワークには未対応のため、ワニワニパニックのような
ゲームは2D表示となります。また、メカニカルな要素を含む
ゲーム(
UFOキャッチャー、プリクラ、メダル
ゲーム、ピンボールなど)は、サポートされていないか、メカニカル部分がない状態で動作するものがほとんどです。一部の
ゲームでは、音源エミュレーションが不完全なため、別途MAME Samplesが必要になります。
近年登場したPCベースの
アーケードゲームには対応しておらず、ArcadePC LoaderやTeknoParrotといった他のプログラムを利用する必要があります。
MAME 0.162以降では、
アーケードゲーム機に限定せず、以下のような幅広いハードウェアのエミュレートを実装しています。
アーケードゲーム基板
システム基板
互換基板
第3~5世代の互換基板
テレビゲーム機
第2~5世代の家庭用
ゲーム機
ビデオゲーム内蔵テレビ、復刻系ゲーム機、業務用テレビゲーム機、店頭販促機
ゲームパソコン
コモドール、ZX Spectrum、トミー ぴゅう太など
マルチメディア機、電卓、
グラフ電卓
LSI/LCDゲーム(ゲーム&ウォッチ、たまごっちなど)
電子ボード
ゲーム
携帯型ゲーム機
第2~5世代の携帯
ゲーム機
体感ゲーム、ラジコン
ミニコンピュータ、ワークステーション
グラフィックワークステーション、モバイルワークステーション
プログラマブル計算機、デスクトップパソコン
テレビ内蔵コンピュータ、ポータブルコンピュータ、ノートPC
ホビーパソコン/ホームコンピュータ
開発システム、ワードプロセッサ、ワンボードマイコン、シングルボードコンピュータ
パームトップPC、
ポケットコンピュータ、
ハンドヘルドコンピュータ/
携帯情報端末
知育玩具、競馬予想機、決済端末機、音源モジュール、LDプレーヤー
フィットネスマシン、電子楽器
電子パーカッション、ドラムマシン、電子キーボード/シンセサイザー、電子ピアノ、多機能スピーカー
言語翻訳機、音声モールス発生器、ドアチャイム、キディライド、キッズメダル、
ポップコーン販売機、
パンチングマシン、
UFOキャッチャー、バーサライタ、シールプリンター、電子式
抽選器
古いPCのエミュレーションについては、SPC/ATやPCemといった他の
エミュレーターの方が進んでいる場合があります。
MAMEの開発方針
MAMEの開発方針は、オリジナルのハードウェアの動作を忠実に再現することに重点を置いています。基本的には、APUやMPUといったチップレベルでの低レベルエミュレーション(LLE)を行いますが、キーボードやI/O、DSPなどの周辺部分では高レベルエミュレーション(HLE)も使用されています。
ROMイメージについて
MAMEで
ゲームを動作させるためには、オリジナルの
ゲーム基板からROMイメージを吸い出す必要があります。ただし、Exidyやバリー/ミッドウェイといった一部のメーカーの
ゲームについては、公式な許可を得てMAME公式サイトでROMイメージが配布されています。また、
ドイツのコンピュータ雑誌「c't」が主催したアタリ社の
ゲーム「アステロイド」のハイスコアを競うコンテストでは、読者向けにROMイメージの配布許可を得ています(不特定多数が対象ではありません)。
MAMEの歴史
1997年: MS-DOS版として開発がスタートし、その後Macintosh、Unix系OS、Windowsに移植。
1998年: MAMEを基に汎用
エミュレーターMESSの開発が開始。
2003年: CPUエミュレーションに動的リコンパイラが導入開始。
2005年: ギャンブル
ゲームを実装するAGEMAMEがMAMEに統合。
2007年: Windows 64bit版が公式にリリース。
2010年:
SDL採用のクロスプラットフォームなコマンドライン版
SDLMAMEが統合。
2011年: ピンボールを実装するPINMAMEがMAMEに統合開始。
2012年: Netlistによる電子回路シミュレーションに対応。MESSのコードベースが統合され、UMEとしてビルド可能に。
2015年: MAMEがMESSを吸収してUME相当に。JSMESS(Webブラウザ上でMAMEを動作)が統合。MEWUIが統合、Auto-fireやGPUバックエンドBGFXが追加。
2016年:
ライセンスがGPLに変更。ハイスコアが再実装、GroovyMAMEの拡大縮小機能が統合。VGM Playerが搭載。
2019年: レイテンシを削減する「-lowlatency」オプションが追加。
2024年: タッチスクリーン入力に対応。
MAMEの動作
MAMEは、オリジナルの
ゲーム基板のハードウェア構成をソフトウェアで忠実に再現します。これにより、異なるハードウェア上でオリジナルROMイメージを動作させることが可能です。MAMEは100種類以上の
CPU/MPU、70種類以上のサウンドチップ/DSPをエミュレートします。また、一部のアナログICや素子もNetlistでサポートされています。
最近のバージョンでは、3Dグラフィックシステムのような処理量の多い
ゲームにも対応していますが、エミュレーションの速度よりもオリジナルのハードウェアの再現を重視しています。そのため、3Dグラフィックやテクスチャ処理も、
Direct3DなどのOS固有の拡張機能を使わず、ソフトウェアで処理が行われます。このため、最新のプロセッサでも完全にオリジナルと同じ速度で動作しないタイトルが存在します。
盗用問題
以前のMAMEは商用利用を禁止していましたが、その規定に違反するケースが度々発生しました。
メディアカイトの「ネットげーせん」
ハムスターの「
オレたちゲーセン族シリーズ」
200in1などを謳うエミュレータ筐体
関連情報
Visual Pinball
アーケードゲーム基板
エミュレータ
ゲームエミュレータ
エミュレーター基板
外部リンク
MAME公式サイト&開発情報(英語)
MAMEUI公式サイト(英語)
*
MAME E2J