Mednafen をコンパイルする

pr_newlogo
 
 マルチシステムエミュレーター「Mednafen」をMacOSXでコンパイルする方法を紹介します。
 
 Mednafen は GameBoy, GameBoyAdvance, GameGear, Lynx, MegaDrive, NeogeoPocket, FamilyComputer, PC-Engine, PC-FX, PlayStation, MasterSystem, SuperFamicom, VirtualBoy, WonderSwan などに対応したマルチシステムエミュレータです、v0.4.5からMacOSXでもコンパイルできるようになりました。

 FCE Ultra、VisualBoy Advance、Handy といったオープンソースなエミュレータのコードをペースにして開発されていますので、基本的にそれらのエミュレータとほぼ同じ性能といえます。多彩なグラフィックエフェクトやネットワークプレイ、USBジョイスティック、スクリーンショット、セーブステート、OpenGLによるフルスクリーンモードなどの機能を搭載しています。
 
 今回はこの Mednafen をOSXでコンパイルする方法を紹介します。オフィシャルサイトから最新のソースをダウンロードしておいてください。
 
・Mednafen – Multi-system Emulator オフィシャルサイト
 公式サイト:  http://mednafen.sourceforge.net
 ダウンロード: http://sourceforge.net/projects/mednafen/

 

各ライブラリのコンパイルとインストール

 
 Mednafen をコンパイルするには以下のライブラリが必要です。
 
・SDL 1.2
 公式サイト:  http://www.libsdl.org/download-1.2.php
 ダウンロード: http://www.libsdl.org/release/SDL-1.2.15.tar.gz
・libsndfile
 公式サイト:  http://www.mega-nerd.com/libsndfile/
 ダウンロード: http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz
(1.0.25がコンパイルできない場合)
 プレビュー版: http://www.mega-nerd.com/tmp/libsndfile-1.0.26pre5.tar.gz
・libcdio (v0.9.38 から不要)
 公式サイト:  http://www.gnu.org/software/libcdio/
 ダウンロード: http://ftp.gnu.org/gnu/libcdio/libcdio-0.93.tar.gz
・pkgconfig (もしかしたら必要かも)
 公式サイト:  http://www.freedesktop.org/wiki/Software/pkg-config/
 ダウンロード: http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz

 
SDLライブラリのインストール」を参考にして、各ライブラリをインストールしてください。
 
 

Mednafen のコンパイル

 
 各ライブラリのインストールが終わったらさっそくMednafenをコンパイルしてみましょう。

ダウンロードした Mednafenのソースを解凍してHomeフォルダに置いてください。
 
mednafen_home

 Terminalを起動してmednafenフォルダに移動します。
 
Mac-mini:~ jazzin$ cd mednafen
 
 次に configure コマンドを使ってMakefileを作成するのですが、その前にヘルプを表示してみましょう。Terminalから「./configure -help」と入力します。
 
Mac-mini:~/mednafen jazzin$ ./configure -help
 
med_confighelp

 configureで使用できるオプションが表示されました。 configureコマンドの後ろにオプションを追加することで Makefileの設定を変更する事ができます。
 ここで使用しない機能などを無効にしたりできますが、とりあえずデフォルトの状態(全てのエミュレーターを有効)でコンパイルしてみましょう。

 ではconfigureを開始。 Terminalから「./configure」と入力。
 
Mac-mini:~/mednafen jazzin$ ./configure
 
med_configure

 configureが開始されました、終了するまで約1分程度かかります。エラーがなければ成功。

最後にmakeを実行。 Terminalから「make」と入力します。
 
Mac-mini:~/mednafen jazzin$ make
 
med_make

 コンパイルは約10分程度かかります、CPUパワーを消費するのでコンパイル中はシステムが多少重くなる事があるかもしれません。エラーがでなければ成功、エミュレーターの完成です。
 
pr_makeend

 出来上がったエミュレータ(実行ファイル)は src フォルダの中に作成されます。

 

mednafenのインストール

 
 最後に実行ファイル「mednafen」をインストールします。

Terminalから「sudo make install」と入力。

Mac-mini:~/mednafen jazzin$ sudo make install

 mednafenが /usr/local/bin の中にインストールされました。
これで Terminal から「mednafen」を実行できるようになります。

*ランチャーなどを使用する場合はこの作業は必要ありません。
 
 

mednafen を起動する

 
 では実際にエミュレーターを起動してみましょう。

例としてディスクトップ上にある「Gradoius.nes」を起動してみます。
*ROMイメージは予め用意しておいてください。

Terminal から「mednafen /ROM名.拡張子」と入力してください。
 
Mac-mini:~ jazzin$ mednafen /Users/Jazzin/Desktop/Gradius.nes
 
med_stategame
 
 /ROM名を入力するのが面倒な場合はROMを直接 Terminalにドラッグ&ドロップしてください、問題なければこれでゲームが起動します。
 
med_gradius

 
 ファミコン用ソフト「グラディウス」が起動できました。ウィンドウの大きさやグラフィックエフェクトなどの設定は Mednafen のコンフィグファイル「mednafen-09x.cfg」に保存されます。

エミュレーターを終了するには「esc」または「F12」キーを押してください。

 

設定ファイルを編集する

 
 Mednafen の設定を保存するコンフィグファイル「mednafen-09x.cfg」は、Homeの「.mednafen」という不可視フォルダの中にあります。Finderからは見えないようになっているのでメニューの「移動」-「フォルダへ移動…」(Command + Shift + G キー)を使って表示してください。

 入力フィールドに「~/.mednafen」と入力します。

med_movefolder
 
 .mednafenフォルダが開きました、設定を変更するにはこの中の「mednafen-09x.cfg」ファイルをテキストエディットなどを使って編集します。

 チートファイルやセーブステート、スナップショットなどのファイルもこのフォルダの中に保存されます。
*BIOSファイルは「firmware」フォルダの中に入れてください。
 
med_Current
 
 mednafen.cfg をテキストエディットで開くと以下のようなフォーマットで設定が記述されています。

 ネットワークの設定、各エミュレーターの設定、エミュレーター共通の設定などがあります。

 例としてNES用エミュレーターの設定を編集してみましょう。先頭に「nes.」と付いている設定が対象です。

med_configtext

 
(例) NESエミュレーターの設定

 
■フルスクリーンモードの解像度を設定します。
;Full-screen horizontal resolution.
nes.xres 640
;Full-screen vertical resolution.
nes.yres 480

■ウィンドウモード時の拡大率を設定します。
;The scaling factor for the X axis.
nes.xscale 1
;The scaling factor for the Y axis.
nes.yscale 1

■フルスクリーンモード時の拡大率を設定します。
;The scaling factor for the X axis in fullscreen mode.
nes.xscalefs 2
;The scaling factor for the Y axis in fullscreen mode.
nes.yscalefs 2

■スキャンラインを表示するかを設定します。[画面x2 以上](Yes=1 / No=0)
;Enable scanlines with specified transparency.
nes.scanlines 1

■フルスクリーン時に画面をストレッチさせるかを設定します。(Yes=1 / No=0)
;Stretch to fill screen.
nes.stretch 1

■画面をぼかして表示するかを設定します。(Yes=1 / No=0)
;Enable bilinear interpolation.
nes.videoip 1

■画像エフェクトを設定します。
;Enable specified special video scaler.
nes.special none
 
全てのエミュレーター共通の設定。
 
■フルスクリーンモードで起動するかを設定します。(Yes=1 / No=0)
;Enable fullscreen mode.
fs 1

■ビデオドライバーの設定。
;Select video driver. 0 = OpenGL, 1 = SDL surface blits
vdriver 0

■連射ボタンのスピード設定。(「autofirefreq 3」の場合は20連射)
;Auto-fire frequency.
autofirefreq 3
 

 

*Mednafenの詳しい内容や使い方などについては付属のドキュメントをご覧下さい。

オンライン Documentation
http://mednafen.sourceforge.net/documentation/