MAMEで日本語を表示する

nihongogui

 前回の投稿でMAMEの日本語が文字化けすると書きましたが、よく見るとフォントを設定してないことに気がついた、そりゃ表示できないわな…

 MAMEで使用できるフォントはBDF形式のビットマップフォントらしいのですが、ネットでダウンロードできる日本語(漢字含む)のBDFフォントが見つかりません。仕方がないので TrueTypeフォントなどからBDF形式にコンバートするソフト「OpenType to BDF Converter」を使ってMacのフォントを変換して使ってみましょう。

 まずは OpenType to BDF Converter をダウンロード、コンパイルには FreeType ライブラリも必要なのでそちらも予めコンパイル&インストールをしておきます。
 
./configure
make

 
 Macでも特に問題なくコンパイルできました、では次にMacのフォント「ヒラギノ丸ゴ ProN W4」をコンバートしてみましょう。 使い方はヘルプ(./otf2bdf -h)で表示されます。 初めは「ヒラギノ角ゴシック W6」や「Osaka」をコンバートしてみたのですが、何故か文字バケてしてうまく表示できませんでした。ヒラギノ丸ゴは問題なく表示できたので今回はこちらをお勧めします。
 
./otf2bdf -p 40 -r 72 -o ui.bdf /Library/Fonts/ヒラギノ丸ゴ ProN W4.ttc
 
 オプション: [-p] 文字の大きさは40ポイントくらいあれば十分でしょうか、ジャギーが目立つ様ならもう少し大きくしていいかもしれません。 [-r] 解像度は 72dpiでいいのかな? よくわからんです。 [-o] 出力するファイル名です。

 最後に MAME の設定、mame.ini を開いて編集します。
 
fontpath    $HOME/Emulator/mame/ui (フォントを置く場所)
uifont      ui.bdf           (使用するフォント名)
language     Japanese         (表示する言語)

 
 -fontpathで設定したパスにコンバートしたフォントを置き、フォント名を -uifont に記入、-language を Japanese にして保存します。 MAMEを起動するとフォントキャッシュ(ui.bdc)を作成するため30秒くらい待たされますが、次回からは直ぐに起動できます。メニューが日本語で表示されれば成功です。

 補足:フォントキャッシュ作成後、最初の起動で文字が色化けしたりする場合がありますが、MAMEを再起動すれば直ります。
 

Link 【OpenType to BDF Converter】【FreeType

MAME 0.171 リリース

mame0171
 
 MAME 0.171 がリリースされました。何やらGUIがリニューアルされてますね、MAME用のフロントエンド MEWUI と統合された様です。ランゲージファイルも用意されていて日本語にも対応しているようですが、うちの環境だと文字化けして正常に表示されませんでした。あと設定を変更して画面が初期化された後、マウスカーソルが消えてしまったりと・・まだ未完成っぽいですね。
 

Link【MAME Multiple Arcade Machine Emulator
Link【MEWUI by dankan1890
Link【MEWUI download | SourceForge.net

MAME 0.167~ Macでコンパイルエラー

mame0167
 MAME 0.168 がリリースされました、が ver0.167 からMacでコンパイルすると sdl_sound.cpp でエラーが発生する様になってしまいました。少し前の環境(OSX10.10/Xcode6.4)で ver0.166 までは正常にコンパイルできていたのですが…

/Library/Frameworks/SDL2.framework/Headers/SDL_stdinc.h:229:5: error:
'_MSC_VER' is not defined, evaluates to 0 [-Werror,-Wundef]
#if _MSC_VER >= 1600 /* VS 2010 and above */

 ログを見ると SDL2.framework の SDL_stdinc.h でコケているようです、以前からSDLは ver2.0.3 のまま触ってないのでやっぱりコンパイラ(Xcode7.x)のせいなのか?
 
sdl_stdinc

 いろいろと調べた結果、SDL_stdinc.hの229行目を #if defined(_MSC_VER) && (_MSC_VER >= 1600) に書き換えることでコンパイルに成功しました。これが適正かどうか分かりませんが、とりあえずOSX10.11上で動作してます。
 
/Library/Frameworks/SDL2.framework/Headers/SDL_stdinc.h

//#if _MSC_VER >= 1600 /* VS 2010 and above */
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
 

MAME 0.157 リリース

MAME157_x11error

 年末に MAME 0.157 がリリースされました。さっそくビルドしてみると src/osd/sdl/sdlinc.h で ‘X11/Xlib.h’ ファイルが見つからない というエラーが出てしまいます。 SDL2のコンパイルの仕方がおかしかったのか?、前のバージョン(0.156)ではこんなエラー出なかったんですけどね… X11は使わないんですけど、とりあえず /opt/X11/include にエクルポートしてビルドできました。

cd compile_dir/mame
export C_INCLUDE_PATH=/opt/X11/include
export CPLUS_INCLUDE_PATH=/opt/X11/include
make -j3

新しい XQuartz 2.7.7 も出ていたのでついでにインストール。
 

Link 【MAMEDEV.org】【XQuartz

MAME 0.152、OSX10.9上でコンパイルエラー

mame152

 アーケードエミュレータ MAME 0.152 がリリースされました。早速コンパイルしてみましたがソース netlist.h 辺りでエラーが発生…
 
In file included from src/emu/machine/netlist.h:54:
src/emu/netlist/nl_base.h:290:2: error: 'netlist_base_t' is an incomplete type

 
Emuversal Bulletin Board によるとコンパイラ(Clang)の問題で、最新のSVN版では既に修正されているとの事です。なのでエラーになる方はターミナルから svn コマンドを使って最新版をダウンロードしてください。( svn は Xcode の command-line tools をインストールすると使えるようになります)
 
cd ~/downloads
svn co svn://dspnet.fr/mame/trunk

 
ダウンロードしたソースをコンパイルしたところ、正常に起動できました。
 
Link【MAME | Multiple Arcade Machine Emulator

MAMEのビルドはOSX10.5以降が必要?

 MAME 0.142 をOSX10.4(Tiger)でコンパイルすると src/osd/sdl/sdlmain.c でエラー発生、CarbonCoreやらCoreServicesなどで ct_font が見つからないとか言われます。ここの所、と言うか MAME 0.139 以来(0.138はOK)OSX10.4上でMAMEがコンパイルできない状態が続いています。GCCのバージョンを4.2.1にアップデートしてもダメでした。
 

 仕方なしに OSX10.5(Leopard)でコンパイルしてみたら、何のエラーもなく普通にコンパイルできてしまいました。 何だかなぁ…これまでの苦労は?
 

MAME 0.137 リリース


 
 MAME 0.137 がリリースされました。予定通りMAMEとSDLMAMEのコードが統合され、Macでもオフィシャルのソースコードから直接ビルドできるようになっています。

『重要事項:MAMEのこのリリース関して、システムの周りの幾つかの重要なものが変更されました。この新しいバージョンをコンパイルする前に以下の項目を読んでください。

1. 現在 GCC4.4.3プレリリースをベースにしたWindows版の新しいツールチェーンが必要です。http://mamedev.org/tools に行って新しいツールを手に入れてください。0.137に含まれるコードは、古いツールでビルドできません。新しいツールチェーンでは、ビルトインDirectXヘッダーおよびC++のサポートと同様に、GCCで64ビットMAME構造をビルドするサポートがあります。それは古いツールには見当たりませんでした。

2. Windows版MAMEの非ユニコードビルドはもうサポートされません。makefileでこれをオフにするオプションを取り除きました、そして将来この変更は必須条件となりそうです。もしまだ(あろうことか)Win9x上で動かす場合、MAMEを起動させるためにunicows.dllライブラリが必要です。マイクロソフトからunicowsをダウンロードしてください。

3. MAMEの全てのコードが現在C++としてコンパイルされます、さらにC++言語を活用する幾つかの変更がありました。ほとんどの場合、ドライバーとアドレス空間への多少の素晴らしいアクセッサを除いて、ドライバの書き方について影響はありません。C++構文を利用する今後の改良は、内部の人だけで徐々に進行するでしょう。私たちは今の所この仕事をする外部の申し出に興味を持っていません。

4. 現在、主なソースパッケージの一部として MAME SDL OSD を出荷します。Windows版のSDLビルドは現在、新しいリリースのための確認シーケンスの一部として定期的にビルドされます。長年にわたるSDLポートの作業について R.Belmont氏、couriersud氏、OlivierGalibert氏に感謝します。』との事。

Link 【MAME】【whatsnew_0137.txt】

MAME0.136u4 リリース


 
 MAME0.136u4 がリリースされました。先程コンパイルしてみましたが、途中でエラーに…パッチをミスったかな? MAME / MESS 用のフロントエンド「MAME Plus! GUI 1.5.0」もリリースされています。更新内容は以下の通り。

・ジョイスティックでゲーム選択ができるサポートを追加。
・オートセンター ゲーム選択カーソル。
・スペイン言語を追加。
・MESSのBIOS選択を修正。
・フリッカーとビームオプションの最小/最大値を修正。
・サブフォルダーの.pngファイルを認識できるように、それほど厳しくない適合基準で7z/zipアーカイブをロード。
・command.dat 分析を最適化。
・MAMEInfoウィジェットでのROMインフォメーション表示。
・Linux:libpng12に対しての静的なリンク。
・Mac:Return/Enterによるゲームスタート。

Link 【MAME Plus!】 【Emuversal Bulletin Board】