Mac用エミュレーター情報サイト


News | History | About | Link | Emulator | Soft | Lab | Game | Gallery | BBS

第12回 SDLMAMEをコンパイルする。

Page 1/ 2

 

SDLMAME について

 SDLMAMEは Olivier Galibert氏、R. Belmont氏が開発したマルチアーケードエミュレーターです。オリジナルのMAMEコードからWindows用コードを削除しSDLライブラリに置き換えたもので、様々なプラットフォーム上(Linux/Unix, MacOSX, FreeBSD, Win32)で実行することができます。

 32/64 bit CPU(Intel/PowerPC)に対応、ただしSDLMAMEにはPPC用のアセンブリコアが含まれていないため、PPC上では動作がかなり重いです。

今回はSDLMAMEをMacOSXでコンパイルする方法を紹介します。

 

 SDLMAMEはソースの状態で公開されています。このままではエミュレーターを実行することができません、実行するにはソースをコンパイルする必要があります。オフィシャルサイトの専用ページから最新のソースをダウンロードしてください。

■ Arbee's WIP Emporium - オフィシャルサイト -
■ SDLMAME/MESS/HazeMD home
 - オフィシャルのSDLMAME専用ページ -
■ Emuversal Bulletin Board: Viewing forum
 - SDLMAME専用フォーラム -

 

ライブラリのインストール

 SDLMAME をコンパイルする為にはXcode 2.3以降とSDLライブラリが必要です。SDLライブラリはバージョン v1.2.11以降の Runtime(Framework版)をインストールしてください。

expatとzlibライブラリはソース内に含まれているので新たにインストールする必要はないと思います。


-必要なライブラリ
・SDL

-特に必要ないライブラリ

・Expat
・zlib

http://www.libsdl.org/download-1.2.php



http://www.libexpat.org/
http://www.zlib.net/

「第0回 MacOSXで開発環境を構築する。」を参考に、各ライブラリをインストールしてください。

 

Makefileの編集

 SDLMAME はmakefileを作成する「configure」がありません。そのためコンパイルを行うには、まず自分の環境にあわせて「makefile」を編集する必要があります。

 ダウンロードしたソースを解凍し、フォルダの中にある「makefile」をテキストエディットなどで開いてください。(makefileを編集せずにコンパイルする方法もあります)

 

 makefile を開くと沢山のコンフィグオプションが記入されていますが、編集する箇所は主に以下の部分のみです。

ターゲットの設定

27行目、ターゲットを「MAME」に設定

TARGET = mame

43行目、OSDレイヤーを「SDL」に設定

OSD = sdl

58行目、ターゲットOSを「MacOSX」に設定

TARGETOS = macosx

 

アーキテクチャの最適化

87行目、CPU アーキテクチャの最適化。

Intel i686  ARCHOPTS = -march=pentiumpro
Intel Core2 ARCHOPTS = -march=pentium-m -msse3
PowerPC G3 ARCHOPTS = -march=G3
PowerPC G4 ARCHOPTS = -march=G4
PowerPC G5 ARCHOPTS = -march=G5

 

プログラムオプションの設定

97行目、デバッガーを使用する場合は「#」を削除します。(使用しないのでそのまま)

 # DEBUG = 1

100行目、内部プロフィーラーを含めてビルドする場合は「#」を削除。(使用しないのでそのまま)

 # PROFILER = 1

103行目、DRC MIPS3 エンジンを使用する場合は「#」を削除。(PPCハードでは関係なし)

 X86_MIPS3_DRC = 1

106行目、DRC PowerPC エンジンを使用する場合は「#」を削除。(PPCハードでは関係なし)

 X86_PPC_DRC = 1

110行目、MacOSX標準のFrameworkを使用せずに unix-style libsdl を使用する場合は「#」を削除します。(使用しないのでそのまま)

 # MACOSX_USE_LIBSDL = 1

 

ビルドオプションの設定

64bit用にビルドする場合は、119行目の「#」を削除します。(64bitハードでなければ関係なし)

 # PTR64 = 1

CPUがビッグエンディアン系の場合は、122行目の「#」を削除します。(PowerPC G3/G4/G5系のみ)

 BIGENDIAN = 1

EXPATライブラリを使用する場合は、125行目の「#」を削除します。

 BUILD_EXPAT = 1

ZLIBライブラリを使用する場合は、128行目の「#」を削除します。

 BUILD_ZLIB = 1

シンボルを含めてビルドする場合は、131行目の「#」を削除します。(デバック用でしょうか?、動作が重くなるので通常は使用しません)

 # SYMBOLS = 1

コンパイルの最適化レベルを変更する場合は、138行目の「#」を削除し、値を設定してください。(デフォルトはレベル3になっています、変更しない場合はそのままでOK)

 # OPTIMIZE = 3

これでmakefileの編集は終了、保存してください。

 

SDLMAME のコンパイル

 SDLライブラリのインストールとmakefileの編集が終了したらさっそく「SDLMAME」をコンパイルしてみましょう。ソースの入った「sdlmame0110」フォルダを Home に置いてください。

 

 

 Terminal を起動してsdlmame0110フォルダに移動します。

nekocan:~ jazzin$ cd sdlmame0110

 次にmakeを実行。Terminalから「make」と入力します。

nekocan:~/sdlmame0110 jazzin$ make

 マルチプロセッサ搭載のハードではオプションを付けることで分散コンパイルが可能です。
デュアルコアの場合は「-j3」、クアッドコアの場合は「-j5」をmakeの後に付けてください。

nekocan:~/sdlmame0110 jazzin$ make -j3


 環境によっては警告文のようなメッセージが表示されたりしますが、エラーが発生して途中でストップしないかぎり問題ありません。

コンパイルの時間は使用するハードによって変わります。(10分〜2時間くらい)
気長に待ちましょう。

すぐにコンパイル

*オプションを指定すれば makefile を編集することなく直接コンパイルする事ができます。
「make」コマンドの後にそれぞれのオプションを記入してコンパイルを実行してください。
makefileの内容が変わったりする場合があるので、あまりお勧めしません。

PPC Mac の場合
nekocan:~/sdlmame0110 jazzin$ make -j3 TARGETOS=macosx BIGENDIAN=1

Intel Mac の場合
nekocan:~/sdlmame0110 jazzin$ make -j3 TARGETOS=macosx

 

初期設定ファイルの作成

 コンパイルが成功するとソースフォルダの中に「mame」という実行ファイルが出来上がります。(約33.4MB)実行ファイルの名前はそれぞれの環境によって変わります。

これで直ぐにSDLMAMEを起動する事ができるのですが、その前に初期設定ファイル(mame.ini)を作成しておきましょう。

初期設定ファイルは ROMパスやビデオオプション、サウンドオプションなどを設定するテキスト形式のファイルです。

起動時に沢山のコマンドオプションを付けなくても予め設定を記入しておくことができます。

 

 実行ファイル「mame」のあるディレクトリに移動し、Terminal から「./mame -help」と入力。

nekocan:~ jazzin$ cd sdlmame0110
nekocan:~/sdlmame0110 jazzin$ ./mame -help

 

 

 SDLMAMEの「ヘルプメッセージ」が表示されました。ヘルプにはMAMEのバージョン、著作、版権、ROMイメージの取り扱いなどが書かれていますので一応読んでおいてください。初期設定ファイルを作成するには「-createconfig」オプションを使うように表示されていますので、Terminalから「./mame -createconfig」と入力します。

nekocan:~/sdlmame0110 jazzin$ ./mame -createconfig

 初期設定ファイルがちゃんと作成されれば、実行ファイル(mame)と同じディレクトリに「mame.ini」というファイルが出来上がります。

 

初期設定ファイルを編集する

 作成した初期設定ファイル「mame.ini」をテキストエディット等で開きます。

これを自分の好みに合わせて値を編集します、…といっても設定が色々あってよく分かりませんね。

設定の用法については「-showusage」オプションを使って表示することができますが、詳しい内容は次のページで説明します。


とりあえず編集する所はこんな所でしょうか。
↓

 

■ MAME用のデータファイルのあるパスを設定します。
 rompath   /Users/jazzin/Documents/MacMAME User Data/ROMs
 samplepath  /Users/jazzin/Documents/MacMAME User Data/Sound Samples
 artpath    /Users/jazzin/Documents/MacMAME User Data/Artwork
 cheat_file  /Users/jazzin/Documents/MacMAME User Data/Misc Support Files/cheat.dat

■ チートシステムを使用する場合は「1」にします。
 cheat    1

■ オートフレームスキップを有効にします。
 autoframeskip 1

■ NEO-GEO のBIOS設定をJapan MVS (Ver. 3)にします。
 bios     5

■ ビデオ出力にOpenGLを使用します。
 video    opengl

■ ゲーム画面をウィンドウモードで表示。フルスクリーンで表示する場合は「0」にします。
 window   1

■ ゲーム画面をウィンドウにストレッチしないようにします。
 unevenstretch 0

■ OpenGLのフィルター(ぼかし)を無効にします。
 filter     0

■ フルスクリーンモード時にモニタ解像度を変更します。
 switchres  1

■ USBジョイスティックを使用できるようにします。
 joystick   1

 

SDLMAMEを起動する

 では実際にSDLMAMEを起動してみましょう。
MAME用のROMイメージをコンフィグファイルの「rompath」に指定したフォルダに入れてください。(デフォルトでは実行ファイルと同じディレクトリにある「roms」フォルダになっています)

Terminal から「./mame ゲーム名」と入力。

nekocan:~/sdlmame0110 jazzin$ ./mame ゲーム名


 問題がなければこれでゲームが起動します。
実行後のTerminalにはSDLのバージョンやビデオカードの情報、FPSの平均値などが表示されます。

 ウィンドウモードとフルスクリーンモードの切り替えは「L-option + return」キーで行えます。

 

Next


Laboratory CAN