アーケードゲームのエミュレータです。
当時出たころは、MS-DOSが主流だった時代で、SPACADEというエミュレータが再現性が高くてMAMEはそんなに注目されてなかったと感じてました。パックマンから始まって数本程度しか動かなかったし。開発スタイルがオープンだったのですぐに人が増えてSPACADEを一気に追い抜いていったという感じだったか。それと、世の中がMS-DOSからWindowsへ移行しだしてSPACADEは追従しなかったのも追い越した原因か。
現時点でバージョンは0.147です。巨大化しすぎて本体のEXEが69MBという。サポートゲーム数も2万6千を超えてます。しかし、完全に動くのは8000程度ですし、軽くしたいと前から思ってました。
ソースのコンパイル自体は、MAME本家に置いてあるMinGWとツールを落とせばコンパイルできます。GUI対応のMAMEも本家ソースを展開してGUI対応のソースを上書き展開してコンパイルすれば作成できます。
では、俺豆にするにはどうしたら?というのが次の問題ですが、ソース内のsrc/mameにmame.lstとmame.makがキーワードっぽい。tiny.*を見ると最小のものが作れそうです。中身はlstに対応させたいゲーム名を入れる。makはMakefileなのでいじらなくても限定できたものが作れそう・・・な気がする。最終的にはmakも編集して不要なドライバを削るというのが一番かも。
闇雲にコンパイルしても駄目なので、まずはmakをいじってみたいです。その前に、必要なドライバを選び出さないといけない。いろいろと考えてみましたが、一番楽そう・・・というか確実なのは、MAME本体から作れるXML
リストを元にゲーム名に対応するドライバ、CPU、サウンドなどの情報を抜き出し、そこからmakを作ればいいんじゃね?と思ったのでした。これができればlstを作り、それを元にしてドライバなどの情報を抜き出し、可能ならmakを作成するプログラムを書けばいいと思いました。
XMLは単なるテキストファイルですが、シーケンシャルにいちいち読み込んで抜き出すのも時間がかかりそうです。なので、MySQLとかSqliteへデータベース化してそこからSELECTすれば?って構想でいます。
まずXMLをMySQLへインポートからやってみます。