MAME(もともと複数のアーケードマシンエミュレータの頭字語)は、最新のパーソナルコンピューターやその他のプラットフォームでソフトウェアのアーケードゲームシステムのハードウェアを再現するように設計された無料のオープンソースエミュレーターです。[2]意図は、ヴィンテージのゲームが失われたり忘れられたりするのを防ぐことにより、ゲームの歴史を維持することです。 MAMEの目的は、エミュレートされたアーケードマシンの内側の仕組みへの言及であることです。実際にゲームをプレイする能力は「良い副作用」と見なされます。[3] Joystiqは、すべてのWindowsとMac Gamerが持つべきアプリケーションとしてMAMEをリストしました。[4]
最初のパブリックマムリリースは、1997年2月5日のニコラサルモリアによるものでした。エミュレータは現在、7,000を超えるユニークなゲームと10,000の実際のROM画像セットをサポートしていますが、サポートされているゲームのすべてがプレイ可能ではありません。 MAME Coreに基づいた多くのビデオゲームコンソールとコンピューターシステムのエミュレータである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デバッガーなど、より多くの機能があります。



ゲームのROMがロードされると、エミュレータは自動化されます。 Pを押して続行します。
*GDI+エラーが発生し、赤十字が表示されることがあります。 「ファイルリスセットピクチャボックス」をクリックして、エラーを処理できます。
1履歴と概要2デザイン2.1ゲームデータ3哲学と正確さ4法的ステータス5オリジナルMAME-LICENSE 6参照7参照8外部リンク
このプロジェクトは、イタリアのプログラマーニコラ・サルモリアによって開始されました。 Mameは、Multi-PACと呼ばれる以前のエミュレータプロジェクトにルーツをたどりますが、MAMEフレームワーク内でますます多くのゲームがエミュレートされ始めたため、名前は変更されました。最初のバージョンは1996年にリリースされました。[5] 1997年4月、サルモリアは彼の全国的な奉仕のコミットメントのために辞任し、プロジェクトのスチュワードシップを半年間イタリアのミルコ・ブッコニに渡しました。 2003年5月、デビッドヘイウッドはコーディネーターの仕事を引き継ぎました。 2005年4月から2011年4月まで、このプロジェクトはアーロンジャイルズによって調整されました。[6]アンジェロ・サラゼが新しいコーディネーターとして介入しました。[7] 2012年、Miodrag Milanovicが引き継ぎました。[8]このプロジェクトは、世界中の何百人もの開発者と何千人もの外部貢献者によってサポートされています。
最初は、MAMEはMS-DOS専用に開発されましたが、すぐにUnixのようなシステム(X/MAME)、Macintosh(MacMameおよびMame OS X)、Windows(Mame32)に移植されました。 2001年5月24日以降、バージョン0.37B15 [6]で、主な開発はWindowsプラットフォームで発生し、他のほとんどのプラットフォームは、2006年にメイン開発ソースツリーに統合されたSDLMAMEプロジェクトを通じてサポートされています。[9]さらに、MAMEのさまざまなバージョンが他のコンピューター、ゲームコンソール、携帯電話、PDAに移植され、ある時点でもデジタルカメラに移植されています。[10] 2012年、GoogleはMAMEをネイティブクライアントに移植しました。これにより、MAMEはChrome内で実行できます。[11]
MAMEの主要なリリースは、月に約1回発生します。 32ビットと64ビットの両方のファッションの両方のWindows実行可能ファイルは、開発チームの公式Webサイトと完全なソースコードでリリースされます。[12]より小さく、増分「U」(更新用)リリースは、開発者間でコードを同期させるために、ソースが最新のメジャーバージョンに対して違いとして差し引かれるため(バージョン0.149U1まで)毎週リリースされました。[13] MAMEソースコードは、公開Githubリポジトリで開発されています。[14]これにより、必要な専門知識とツールを備えた人は、最新のバージョンのコードを構築し、プルリクエストの形で強化を貢献できます。履歴バージョン番号0.32、および0.38〜0.52が包括的に存在しません。前者は、MAME32バリアントの同様の命名によりスキップされました(それ自体は64ビットビルドへの移動によりMameuiと改名されました)が、後者の数字は0.37ベータサイクルの多数のリリースのためにスキップされました(これらのバージョン数は、それ以来0.37ベータリリースの隣にマークされています)[15]
MAMEのアーキテクチャは、長年にわたって大幅に改善されてきました。ラスターディスプレイとベクトルディスプレイの両方のサポート、およびプロジェクトの最初の6か月でMAMEに追加されました。複数のエミュレートされたCPUコア間の同期を調整する柔軟なタイマーシステムが実装され、ROM画像は、保存されたZIPファイルのCRC32ハッシュに従ってロードされ始めました。[6] Mameは、多くの文書化されていないシステムアーキテクチャ、さまざまなCPU(新しい指示を備えたM6809派生カスタムコナミCPUなど)のリバースエンジニアリングとサウンドチップ(ヤマハFMサウンドチップなど)を開拓しました。これらの例には、Neo Geo、CP System II、CP System IIIなどが含まれます。
Mameの人気は、主流に分かれて以来、愛好家が古いゲームを追体験するために独自のアーケードゲームキャビネットを構築し、ArcadesにインストールされるMAMEの違法な派生作品を生産する企業とともに、かなり多くのことをしています。キャビネットは、かつて内部のハードウェアで使用されていた本物のアーケードゲームキャビネットを分解して変更して、ゼロから構築できます。[16] [17]古典的なアーケードゲームに触発されたキャビネットは、購入して組み立てることもできます(オプションとMAMEがプリインストールされています)。[18]
Mameには初歩的なユーザーインターフェイスが含まれていますが、アーケードゲームキャビネットやホームシアターでのMAMEの使用には、より高度なユーザーインターフェイスを備えたフロントエンドと呼ばれる特別なランチャーアプリケーションが必要です。フロントエンドは、さまざまなカスタマイズの程度を提供します。キャビネットの画像、ゲームの歴史、プレイ方法に関するヒント、ゲームプレイやゲームのモードを引き付けるビデオを見ることができます。
MAMEに含まれる情報は再利用のために無料であり、企業は現代のシステムで古いクラシックを再現する際にMAMEを利用することが知られています。一部の人々は、MAME開発者を雇って古いプロパティのエミュレーターを作成するために行っています。この例は、MAMEの一部のバージョンで読み取り可能なROMを含むTaito Legendsパックです。[19]
2012年以来、MAMEは当時のプロジェクトリーダーであるMiodragMilanovićによって維持されています。[8]
2015年5月27日(0.162)、ゲームコンソールとコンピューターシステムエミュレーターの混乱はMAMEと統合されました(したがって、MESSユーザーマニュアルは、MAMEの非アーケード部分の最も重要な使用命令です)。[20]。
2015年5月、Mameの開発者は、元のMame-Licenseから離れて、より一般的な無料のオープンソースライセンスの下でソフトウェアを再ライセンスすることを計画していることが発表されました。 Mame開発者のMiodrag Milanovicは、この変更はプロジェクトにより多くの開発者の関心を集め、ゲームのメーカーがMAMEを配布して独自のゲームをエミュレートし、ソフトウェアを「開発ボードに取り組む開発者向けの学習ツール」にすることを目的としていると説明しました。 BSD/GPLライセンスへのMAMEのライセンスの移行は、2016年3月に完了しました。[21] [22]ライセンスの変更により、MAMEのソースコード(90%+)のほとんどは3条BSDライセンスの下で利用でき、完全なプロジェクトはGNU General Public Licenseバージョン2以降にあります。[21] [23]
2016年2月24日(0.171)に、MameはMewuiのフロントエンド(および開発者がチームに加わりました)を組み込み、Mameに柔軟でよりフル機能のUIを提供しました。[24]
このセクションには、元の研究が含まれている可能性があります。行われたクレームを確認し、インラインの引用を追加して改善してください。元の研究のみで構成される声明は削除する必要があります。 (2019年7月)(このテンプレートメッセージを削除する方法と時期を学ぶ)MAMEコアは、いくつかの要素のエミュレーションを同時に調整します。これらの要素は、元のアーケードマシンに存在するハードウェアの動作を複製します。 MAMEは、多くの異なる中央処理ユニット(CPU)と関連するハードウェアをエミュレートできます。これらの要素は仮想化されるため、MAMEはゲームの元のプログラムの間のソフトウェアレイヤーとして機能し、プラットフォームMAMEが実行されます。 MAMEは、任意の画面解像度、リフレッシュレート、および表示構成をサポートしています。ダリウスなどで要求されるように、複数のエミュレートモニターもサポートされています。
個々のアーケードシステムは、Cプリプロセッサマクロの形をとるドライバーによって指定されています。これらのドライバーは、エミュレートする個々のコンポーネントと、互いにどのように通信するかを指定します。 MAMEはもともとCで書かれていましたが、オブジェクト指向プログラミングの必要性により、開発チームはMAME 0.136のC ++としてすべてのコードをコンパイルし始め、その過程でその言語の追加機能を活用しました。
CPUエミュレーションコアの大部分は解釈的ですが、Mameはエミュレーション速度を上げるためにユニバーサルマシン言語(UML)と呼ばれる中間言語を介した動的な再コンパイルもサポートしています。サポートされているバックエンドターゲットはX86およびX64です。 ACバックエンドは、正確性の検証をさらに支援するためにも利用できます。この方法でエミュレートされたCPUは、SH-2、MIPS R3000、PowerPCです。
ゲームをエミュレートできるように、元のプログラムコード、グラフィックス、サウンドデータを存在させる必要があります。ほとんどのアーケードマシンでは、データは読み取り専用メモリチップ(ROM)に保存されますが、カセットテープ、フロッピーディスク、ハードディスク、レーザーディスク、コンパクトディスクなどの他のデバイスも使用されます。これらのデバイスのほとんどの内容は、「ダンプ」と呼ばれるプロセスで、コンピューターファイルにコピーできます。結果のファイルは、多くの場合、由来するストレージの種類に関係なく、一般的にROM画像またはROMと呼ばれます。ゲームは通常、複数のROMおよびPAL画像で構成されています。これらは、ROMセットを構成する単一のzipファイル内に集合的に保存されます。 「親」ROMセット(通常、ゲームの最新の「世界」バージョンとして選択される)に加えて、ゲームには、異なるプログラムコード、さまざまな市場などを対象とした異なる言語テキストなどの「クローン」ROMセットがあります。複数のゲーム間でROMが共有されているNeo Geoのようなシステムボードは、ROMを「BIOS」ROMセットに保存し、適切に名前を付ける必要があります。
ハードディスク、コンパクトディスク、レーザーディスクは、CHD(データの圧縮ハンク)と呼ばれるMAME固有の形式で保存されます。[25]一部のアーケードマシンは、レーザーディスクなどのアナログハードウェアを使用して、サウンドトラックや映画などのオーディオ/ビデオデータを保存および再生します。このデータは、MAMEが読み取ることができるデジタルファイルにキャプチャしてエンコードする必要があります。 MAMEは、アーケードエクスペリエンスの100%忠実な複製に必要な外部アナログデバイスの使用をサポートしていません。多くのゲームでは、まだ正常にエミュレートされていないサウンドチップを使用しています。これらのゲームには、サウンドエミュレーションのためにWAVファイル形式のサウンドサンプルが必要です。 MAMEは、ベゼルおよびオーバーレイグラフィック用のPNG形式でアートワークファイルをサポートしています。
プロジェクトの指定された目的はハードウェアを文書化することであるため、Mameはエミュレーションの純粋な見方をして、ゲームを不適切に実行したり、エミュレーションの精度を犠牲にしてより速く実行したりする可能性のあるプログラミングハックを禁止します。 CPUなどのコンポーネントは、可能な限り低レベルでエミュレートされ(個々の命令がエミュレートされることを意味します)、高レベルエミュレーション(HLE)は、チップが完全に文書化されていない場合にのみ使用され、詳細にリバースエンジニアリングできない場合にのみ使用されます。信号レベルエミュレーションは、アナログコンポーネントで構成されるオーディオ回路をエミュレートするために使用されます。
ハードウェアを文書化したいと思います。今、多くの人が言うでしょう。 「あなたのドキュメントはどこにありますか?ソースコードの束を書くだけです。」そして、はい、それは本当です。私が学んだことの1つは、ドキュメントをソースコードと同期することはほとんど不可能であるということです。ドキュメントが正しいという最良の証拠は、「このコードが機能する」ことです。
- Aaron Giles、California Extreme 2008 [26] Mameは、1,000を超えるアーケードシステムボードをはるかに超えています。 MAMEが正確性に関して取るアプローチは、漸進的なものです。システムは、合理的にできる限り正確にエミュレートされます。ゲームのBootlegのコピーは、多くの場合、最初にエミュレートされ、適切な(およびコピー保護された)バージョンが後でエミュレートされます。暗号化に加えて、アーケードゲームは通常、ゲームロジックまたは他の重要な機能の一部を実装するカスタムマイクロコントローラーユニット(MCU)で保護されていました。これらのチップのエミュレーションは、ゲーム自体にすぐに目に見える効果がほとんどまたはまったくない場合でも好まれます。たとえば、バブルボブルのモンスターの動作は、カスタムMCUに含まれるコードとデータがチップの斬首を通して捨てられるまで完成しませんでした。[27]これにより、ゲームがますます正確な程度までエミュレートされ、MAMEの新しいバージョンでは古いバージョンのROMセットが使用できなくなるため、ROMセットの要件が変化します。
携帯性とジェネリティもMAMEにとって重要です。精度に関する妥協のない姿勢と組み合わせることで、これは多くの場合、システム要件が高くなります。 2 GHzプロセッサはほぼすべての2Dゲームを実行するのに十分ですが、最近のグラフィックを備えたシステム、特に最速のコンピューターでも、3Dグラフィックを備えたシステムは速くない可能性があります。 MAMEは現在、ハードウェアアクセラレーションを利用して3Dグラフィックスのレンダリングをスピードアップしていません。これは、安定したクロスプラットフォーム3D APIの欠如のために、またソフトウェアレンダリングがアーケードゲームで使用されたさまざまなカスタム3Dレンダリングアプローチの正確な再現であるためです。
MAME自体を所有および配布することは、ほとんどの国で単なるエミュレータであるため、合法です。ソニーなどの企業は、Sony PlayStationエミュレーターが販売されるのを防ぐために、Virtual Game Stationなどの他のソフトウェアを防止しようとしましたが、最終的には失敗しました。[28] MAME自体は、これまでのところ、裁判の対象ではありませんでした。
ほとんどのアーケードゲームは、まだ著作権でカバーされています。著作権所有者から許可なく著作権で保護されたROMをダウンロードまたは配布することは、ほとんどの場合、著作権法の違反です。ただし、一部の国(米国を含む)[29]は、ボードの所有者がROMチップに含まれるデータをパーソナルコンピューターまたは所有する他のデバイスに転送することを許可しています。一部の著作権所有者は、ライセンスを通じてアーケードゲームROMを一般に公開することを検討しています。たとえば、2003年にAtariは、インターネットサイトのStar ROMSで利用可能な27のアーケードゲームのMAME互換ROMを作成しました。しかし、2006年までに、ROMはそこで販売されなくなりました。ある時点で、ハナホが製造したHotrodアーケードのジョイスティックでさまざまなカプコンゲームが販売されましたが、このアレンジも同様に廃止されました。他の著作権所有者は、ゲームの商業的利用を禁止するライセンスの下で、一般に市販されていないゲームではなくなったゲームをリリースしました。これらのゲームの多くは、公式のMame Webサイトから合法的にダウンロードされる場合があります。[30]スペインのアーケードゲーム開発者のGaelcoは、彼らのウェブサイトで非営利目的の使用のために世界集会をリリースしました。[31]
MAMEコミュニティは、インターネットまたは物理メディアを介してROMを再配布する他のグループから距離を置いており、著作権を露骨に侵害し、プロジェクトを潜在的に不名誉にすることで害を及ぼしていると主張しています。[32]それにもかかわらず、ROMの違法分布はインターネット上で広まっており、特定のバージョンのROMの完全なコレクションを含む多くの「フルセット」も存在します。[33] [34]さらに、Arcade Multi Cartsなどの多くのBootlegゲームシステムは、MAMEのバージョンを使用してゲームを実行することがよくあります。
Mameは、以前は「Mameライセンス」または「Mame-Likeライセンス」と呼ばれるカスタム独自のCopyLeftライセンスの下で配布されていました。この古い「MAMEライセンス」により、ソースコードの可用性が保証されますが、商業活動の再分配は禁止されています。この条項により、ライセンスはOSIのオープンソース定義とFSFのフリーソフトウェア定義と互換性がありません。非営利条項は、アーケードオペレーターがMAMEキャビネットを設置し、ゲームの元のメーカーの作品から利益を得ることを防ぐために設計されました。[22]定義の曖昧さは、「コマーシャル」がライセンスの法的問題につながります。[35] [36]
2016年3月バージョン0.172で、MAME自体は一般的な無料およびオープンソースソフトウェアライセンス、BSDおよびGPLライセンスに切り替えました。[37]