MAME
作者 | Nicola Salmoria and the MAME Team |
---|---|
初版 | 1997年2月5日 |
最新版 |
0.263
/ 2024年2月28日 |
リポジトリ | |
プログラミング 言語 | C++ |
サポート状況 | 開発中 |
種別 | エミュレーター |
ライセンス | GPL バージョン2 またはそれ以降 |
公式サイト |
mamedev |
MAME(メイム)は、オープンソースの汎用エミュレーターである。かつてはアーケードゲームエミュレーターであったが、現在は汎用エミュレーターとなっている。元々の正式名称はMultiple Arcade Machine Emulator。
概要
[編集]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 X、GTK採用のGMAMEUI (GXMame派生)、KDE採用のKxmame (GXMame派生)、Qt採用のMAME Plus!なども存在した。
サポートするハードウェア
[編集]MAMEがサポートするのは、主に1970年代から1990年代(一部2010年のゲームまで対応)のアーケードゲームやカジノゲームである。Atari PONGやBreakoutなどROMを持たず、ディスクリート回路のみで構成されているゲームも、Netlistを通してサポートしている。セグメントディスプレイを使ったゲームなどでは、外部アートワークを必要とするものがある。3Dアートワークにはまだ対応していない[2]ため、ワニワニパニックは2Dとなる。またメカニカルのあるゲームはサポートされないか、サポートしててもメカニカル部分の無いものが多い (UFOキャッチャー、プリクラ、メダルゲーム、ピンボールなど)。一部のゲームは音源エミュレーションに未対応であり、音を鳴らすために外部のMAME Samplesが必要となる。近年のPCベースのアーケードゲームには対応しておらず、ArcadePC LoaderやTeknoParrotなどの他のプログラムを使う必要がある。
0.162以降のMAMEは以下のようにアーケード機に限定しないエミュレートを実装している。
- アーケードゲーム基板
- テレビゲーム機
- ビデオゲーム内蔵テレビ(ファミコンテレビC1)
- 復刻系ゲーム機(メガドライブ プレイTVシリーズ)
- 業務用テレビゲーム機(ファミコンボックスなど)
- 店頭販促機(Nintendo M8)
- ゲームパソコン(コモドール VIC-1001/コモドール64/マックスマシーン、ZX Spectrum/ZX Spectrum Next、トミー ぴゅう太、ソード M5、セガ SC-3000)
- マルチメディア機(フィリップス CD-i)
- 電卓
- グラフ電卓(HP 38G/48シリーズ/49G、TI-73 Explorer/81/82/85/86/89 シリーズ/92シリーズなど)
- LSI/LCDゲーム (Mattel Auto Race/Football、Merlin、ゲームロボット九、Tiger LCDゲーム、学研 LSI GAMEシリーズ、ゲーム&ウオッチ、バンダイ FLシリーズ、トミーエレクトロニクスゲームシリーズ、ポケモンミニ、たまごっちなど)
- 電子ボードゲーム (Fidelity Chess Challengerなど)
- 携帯型ゲーム機
- 体感ゲーム (バンダイ Let's! TV プレイシリーズ、タカラ Plug It!シリーズ、トミー テレビで遊び隊シリーズ、エポック 体感ゲームシリーズなど)
- ラジコン (システムコントロールカー チータなど)
- ミニコンピュータ(PDP-1)
- ワークステーション (Apollo/Domain、MIPS Magnum R4000、Omron Luna 88K/88K²、HP 98x6、Sony NEWS NWS-3410/NWS-3720等)及びその周辺機器(プリンターや音声合成装置やミュージカルキーボードなど)
- グラフィックワークステーション (SGI Personal IRIS 4D、SGI Indigo HP1/HP2、SGI Indy等)
- モバイルワークステーション (Sony NEWS NWS-3260等)
- プログラマブル計算機 (HP 9825、HP 9831等)
- デスクトップパソコン (HP 9845C、IBM PC/PC XT/PCjr、Apple III/Compact Macintoshシリーズ/Macintosh IIシリーズ/LCシリーズ/Performaシリーズ/Quadraシリーズ/Centrisシリーズ、Mindset、Sharp X1シリーズ等)
- テレビ内蔵コンピュータ(Macintosh TV)
- ポータブルコンピュータ (IBM 5100/5110/5155、HP 85/86B、Macintosh Portable、PowerBook 100等)
- ホビーパソコン/ホームコンピュータ (Apple I/II、TRS-80、Commodore PET 2001、日立 ベーシックマスターJr.、各社MSX/MSX2/MSX2+、BBC Micro/BBC Master、Sharp X68000など)
- 開発システム (HP 64000、Intel Intellec MDS-II等)
- ワードプロセッサ (IBM 6580、ブラザー AX-145/LW-30/LW-350/LW-450/LW-840icなど)
- ワンボードマイコン (Explorer/85、KIM-1、SYM-1、LC80、Motorola MEK6800D2、Motorola EXORciser、Micro-Professor MPF-I、Tangerine Microtan 65、MK14、Intel SDK-80/85/86、シグネティクス Instructor 50、NEC TK-80等)
- シングルボードコンピュータ (Intel iSBC 286/10、FriendlyARM等)、
- パームトップPC (Atari Portfolio等)
- ポケットコンピュータ (Sharp PC-1251/PC-1350/PC-1401、Psion Organiser II等)
- ハンドヘルドコンピュータ/携帯情報端末 (Casio/Tandy Zoomer、Psion Series 5mx、Palm Pilot 1000/5000、PalmPilot、Palm III、Cybiko等)
- 知育玩具 (TI Speak & Spell、ベネッセ ポケットチャレンジV2、SEGA アドバンスピコ・ビーナ、カービーナ等)
- 競馬予想機 (Thoroughbred Horse Race Analyzerなど)
- 決済端末機 (VeriFone TRANZ 330等)
- 音源モジュール (YAMAHA FB-01/MUシリーズ等)
- 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シリーズ、Yamaha DX100/PSRシリーズ/PSSシリーズなど)
- 電子ピアノ(CASIO Celviano AP-10など)
- 多機能スピーカー(Casio GZ-70SPなど)
- 言語翻訳機 (TIのLanguage TranslatorやLanguage Teacher等)
- 音声モールス発生器(Gerät 32620)
- ドアチャイム(Chromatronics Chroma-Chime)
- キディライド(わくわくアンパンマン、わくわくマリン、わんぱくサファリ、ジャンボゴジラなど)
- キッズメダル(Sigma B-98、ワイワイジョッキーなど)
- ポップコーン販売機(それいけ!アンパンマン ポップコーンこうじょう、セガソニック ポップコーンショップなど)
- パンチングマシン(ソニックブラストマン、リアルパンチャーなど)
- UFOキャッチャー(NEW UFO CATCHERなど)
- バーサライタ(Ideal Sky-Writer)
- シールプリンター(TOMY Prin-C/プリンシータブレット)
- 電子式抽選器(コナミ 抽選王)
なお、古いPCへの対応は、SPC/ATやPCem、Common Source Code Projectなどのエミュレータの方が進んでいる。
開発方針
[編集]MAMEの開発方針はオリジナルのハードウェア動作を忠実に再現することに重点を置いており、MAMEは基本的にAPUやMPUなどのチップレベルの低レベルエミュレーション (LLE) を行っている。ただし例外として、キーボード周りやI/O周りやDSPなどには高レベルエミュレーション (HLE)も使われている。
ROMイメージ
[編集]MAMEで使用するROMイメージを入手するためは、他の低レベルエミュレータと同様に、基板から実物のROMの内容を吸い出す必要がある。ただし例外として、Exidy社、バリー/ミッドウェイ社などの作品のうち、一部のゲームのROMイメージは、メーカーからの正式な許可を得たうえで、MAMEの公式サイトで配布されている[1]。また、ドイツのコンピュータ雑誌「c't」で、「UDPを使いMAMEを自動制御し、アタリ社のゲーム『アステロイド』のハイスコアを競う」内容のコンテストが行われる際に、この雑誌の読者向けに、アタリ社より『アステロイド』のROMイメージを配布する許可を得ている(不特定多数が対象ではない)[2]。
歴史
[編集]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]。
2024年、MAME 0.265でタッチスクリーン入力に対応した[11]。
動作
[編集]MAMEの動作には、実際の基板上のデータイメージ(ROMイメージ)を用意する必要がある。MAMEは基板のハードウェア構成をソフトウェアでエミュレートすることにより、オリジナルのROMイメージを異なるハードウェア上で動作させることを可能にしている。エミュレートするCPU/MPUは代表的なZ80や68000をはじめとして100種類以上、サウンドチップ/DSPは70種類以上、そのほか多くのカスタムチップもサポートする。また一部のアナログICやアナログ素子もNetlistでサポートしている。
最近のバージョンでは、3Dグラフィックシステムなど、処理量の多いゲームにも対応している。しかし、前述の通り、エミュレーションの動作速度よりもオリジナルハードウェアの忠実な再現を目的とするため、3Dグラフィックやテクスチャ処理なども、Direct3DなどのOS固有の拡張機能を使わず、オリジナルハードの動作を元に全てソフトウェアで処理を行う。このため最新の高速プロセッサでも完全な速度で動作しないタイトルが一部存在する(Windows版では描画の設定にDirect3Dの項目があるが、これは最終的な描画先としてDirect3Dを用いるだけであり、エミュレーション処理自体には関係しない)。
盗用問題
[編集]以前のMAMEは商用利用を禁止していたが、度々それに違反した利用が発覚している[12]。
脚注
[編集]- ^ Emscripten Javascript and HTML MAMEdev Team
- ^ 3D artwork system #388
- ^ a b c d e f g MAME Project History MAME project
- ^ 0.168 MAME project 2015年
- ^ JSMESS JSMESS project
- ^ a b c 0.171 MAME project 2015年
- ^ MAMEUIFX v0.171 EmuCR.Com 2016年2月25日
- ^ MAME 0.172 MAME project 2016年3月30日
- ^ MAME 0.172 MAME project 2016年3月30日
- ^ 0.216 MAME project 2019年11月27日
- ^ MAME 0.265 MAME project 2024年4月25日
- ^ 多根清史 (2015年9月8日). “MAME、悲運のBleem!......エミュレータと著作権 (連載:ゲームエミュレータを改めて考える 第二回)”. engadget日本版. 2021年2月18日時点のオリジナルよりアーカイブ。2020年11月7日閲覧。
関連項目
[編集]外部リンク
[編集]