MAME

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

MAME
作者 Nicola Salmoria and the MAME Team
初版 1997年2月5日 1997-02-05
最新版
0.227 / 2020年12月31日 2020-12-31
リポジトリ
プログラミング
言語
C++
サポート状況 開発中
種別 エミュレーター
ライセンス GPL バージョン2 またはそれ以降
公式サイト mamedev.org

概要

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

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

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

0.162以降のMAMEは、コンシューマーゲーム機、電卓、LSI/LCDゲーム (たまごっちゲームロボット九、ゲーム&ウオッチなど)、電子ボードゲーム (Fidelity Chess Challengerなど)、携帯型ゲーム機 (MicrovisionアドベンチャービジョンゲームポケコンゲームボーイAtari Lynxネオジオポケットワンダースワンゲームボーイアドバンスなど)、体感ゲーム (Plug It! ポピラ、エポック 体感ゲームシリーズなど)、ラジコン (システムコントロールカー チータなど)、ワークステーション (Apollo/Domain等)やその周辺機器(プリンターや音声合成装置やミュージカルキーボードなど)、グラフィックワークステーション (SGI Indy等)、モバイルワークステーション (Sony NEWS NWS-3260等)、プログラマブル計算機 (HP 9825B/9825T等)、デスクトップパソコン (HP 9845CIBM PC/PC XT/PCjr等)、ポータブルコンピュータ (IBM 5155HP 85/86B等)、ホビーパソコン/ホームコンピュータ (Apple IITRS-80、Commodore PET 2001MSXBBC Micro/BBC Masterなど)、開発システム (HP 64000、Intel Intellec MDS-II等)、ワードプロセッサ (IBM 6580など)、開発ボード (FriendlyARM等)、ワンボードマイコン (NEC TK-80等)、シングルボードコンピュータ (Intel iSBC 286/10等)、パームトップPC (Atari Portfolio等)、ポケットコンピュータ (Sharp PC-1251/PC-1350/PC-1401等)、PDA (Palm、Cybiko等)、知育玩具 (TIのSpeak & Spell、ベネッセのポケットチャレンジV2等)、競馬予想機 (Thoroughbred Horse Race Analyzerなど)、決済端末機 (VeriFone TRANZ 330等)、音源モジュール (YAMAHA FB-01等)、LDプレーヤー (Pioneer LDV-1000、Pioneer PR-8210など)、フィットネスマシン (Salter Fitness Bike、Salter Fitness Stepper)、ドラムマシン (Casio RZ-1など)などアーケード機に限定しないエミュレートを実装している。なお、古いPCへの対応は、SPC/ATやPCem、Common Source Code Projectなどのエミュレータの方が進んでいる。

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

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

歴史

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

2010年、MAME 0.136u1で、SDL採用のクロスプラットフォームなコマンドライン版であるSDLMAMEがMAMEに統合された[3]。2011年、MAME 0.141u1で、ピンボールを実装するPINMAMEがMAMEに統合されはじめた[3]。2012年、MAME 0.146u4でNetlistによる電子回路シミュレーションに対応した[3]。同年、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のコードベースに統合された[4][5]。更に同年、MAME 0.171で独自インターフェースのMEWUIがMAMEのコードベースに統合された[6]ほか、派生版のみに実装されていたAuto-fireに対応し[7][6]、また、GPUバックエンドのBGFXが追加された[6]

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

動作

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

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

盗用問題

以前のMAMEは商用利用を禁止していたが、度々それに違反した利用が発覚している[11]

脚注

  1. Emscripten Javascript and HTML MAMEdev Team
  2. 3D artwork system #388
  3. MAME Project History MAME project
  4. 0.168 MAME project 2015年
  5. JSMESS JSMESS project
  6. 0.171 MAME project 2015年
  7. MAMEUIFX v0.171 EmuCR.Com 2016年2月25日
  8. MAME 0.172 MAME project 2016年3月30日
  9. MAME 0.172 MAME project 2016年3月30日
  10. 0.216 MAME project 2019年11月27日
  11. 多根清史 (2015年9月8日). MAME、悲運のBleem!......エミュレータと著作権 (連載:ゲームエミュレータを改めて考える 第二回)”. engadget日本版. 2020年11月7日閲覧。

関連項目

外部リンク

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.