Wine を使って Mac OS X で HSP と hgimg4 を動かしてみた post

HSP をどうしても Mac OS X で動かしたい!

まあ、とりあえず Wine 使っておけばいいよね!

よしよし動いた、って hgimg4 が動かないじゃないか!むきー

と、言う所から

hgimg4 サンプル test9

このように、hgimg4 のサンプルが動くようにするための方法です。

Wine の日本語環境を設定する

まず Wine で UI などに日本語を表示させる為の設定を行います。

設定をしないと

HSP インストールウィザード 豆腐

こんな感じに、全部が全部では無いですが豆腐になります。

最初に HSP のインストール前にいろいろ設定を行うために Wine の環境を作ります。

標準では ~/.wine に環境が作られます。

$ wine xxx

「xxx.exe が見つから無い」と言われても無視してください。ワザとです。

別の場所に専用の環境を作る場合は

$ WINEPREFIX=~/wine-hgimg4-test wine xxx

WINEPREFIX 環境変数を指定します。

以降では ~/wine-hgimg4-test を環境として使用します。

日本語のフォントは IPAモナーフォント をインストールし、利用します。

まずは、フォントをインストールします。

$ wget http://www.geocities.jp/ipa_mona/opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8.tar.gz
$ tar xzf opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8.tar.gz
$ mv opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8/fonts/ipa*.ttf ~/wine-hgimg4-test/drive_c/windows/Fonts/
$ rm -rf opfc-ModuleHP-1.1.1_withIPAMonaFonts-1.0.8

次に、MS Gothic などのフォントを別のフォント(ここでは IPA モナー フォント)のエリアスとする設定をします。

REGEDIT4

[HKEY_CURRENT_USER¥Software¥Wine¥Fonts¥Replacements]
"MS Gothic"="IPA モナー ゴシック"
"MS Mincho"="IPA モナー 明朝"
"MS PGothic"="IPA モナー Pゴシック"
"MS PMincho"="IPA モナー P明朝"
"MS UI Gothic"="IPA モナー UIゴシック"
"MS ゴシック"="IPA モナー ゴシック"
"MS 明朝"="IPA モナー 明朝"
"MS Pゴシック"="IPA モナー Pゴシック"
"MS P明朝"="IPA モナー P明朝"

Shift_JIS で! wine-font-replace-mona.reg として保存しレジストリを更新します。

コピペも面倒な場合は、 wine-font-replace-mona.reg をダウンロードしてください。

$ WINEPREFIX=~/wine-hgimg4-test wine regedit wine-font-replace-mona.reg

最後に、フォントのスムース処理の設定を行います。

REGEDIT4

[HKEY_CURRENT_USER\Control Panel\Desktop]
"FontSmoothing"="1"
"FontSmoothingGamma"=dword:00000578
"FontSmoothingOrientation"=dword:00000001
"FontSmoothingType"=dword:00000002

を同じく Shift_JIS で! wine-font-smoothing-rgb.reg として保存しレジストリを更新します。

コピペがやっぱり面倒な場合は、 wine-font-smoothing-rgb.reg をダウンロードしてください。

$ WINEPREFIX=~/wine-hgimg4-test wine regedit wine-font-smoothing-rgb.reg

HSP のインストール

HSPダウンロード から HSP 3.4 をダウンロードします。

HSP3.5β3を公開しました - おにたま(オニオンソフト)のおぼえがき から HSP 3.5b3 をダウンロードしてもいいですが、こちらはインストーラ版では無いので注意です。

コマンドでダウンロードする場合はこんな感じです。

$ wget http://www.onionsoft.net/hsp/file/hsp34.exe

そして、インストールします。

$ WINEPREFIX=~/wine-hgimg4-test wine hsp34.exe

途中の「デスクトップ上にアイコンを作成する」や「拡張子の関連付けを行う」はチェックを外しておきましょう。

HSP インストールウィザード ページ 01 HSP インストールウィザード ページ 02 HSP インストールウィザード ページ 03 HSP インストールウィザード ページ 04 HSP インストールウィザード ページ 05 HSP インストールウィザード ページ 06 HSP インストールウィザード ページ 07

こんな感じにセットアップウィザードを行うと、

HSPデモ

とりあえず、 Wine で HSP が動くようになります。

$ WINEPREFIX=~/wine-hgimg4-test wine c:\\hsp34\\hsed3.exe

とすると HSPスクリプトエディタ も起動します。

HSP スクリプトエディタ&アシスタント

OSX 上の Wine で hgimg3 を動かす

HSPスクリプトエディタ で sample\\hgimg3\\tamane4.hsp を開きます。

$ WINEPREFIX=~/wine-hgimg4-test wine c:\\hsp34\\hsed3.exe "sample\\hgimg3\\tamane4.hsp"

hgimg3 珠音 ソース

そして、おもむろに F5 を押下、

hgimg3 珠音

はい、無事にSDサイズの珠音(たまね)ちゃんが表示されました。

OSX 上の Wine で hgimg4 を動かす

HSPスクリプトエディタ で sample\\hgimg4\\tamane1.hsp を開きます。

$ WINEPREFIX=~/wine-hgimg4-test wine c:\\hsp34\\hsed3.exe "sample\\hgimg4\\tamane1.hsp"

hgimg4 珠音 ソース

そして、おもむろに F5 を押下、

hgimg4 珠音 失敗

(´・ω・`)

ここで諦めずに頑張る自分。

Wine のビルド方法は Mac OS X での Wine のビルドの仕方 の記事を参照のこと。

そして、Wine 1.9.6 からの変更が、どーん

$ git diff 6bc0ce26a853b51f11958545bfa5570bdcb1cf01 6a876fd9a51d5c6ce54c1a6facf9b59561f62ecd
diff --git a/dlls/winemac.drv/opengl.c b/dlls/winemac.drv/opengl.c
index ab79a82..c1492f7 100644
--- a/dlls/winemac.drv/opengl.c
+++ b/dlls/winemac.drv/opengl.c
@@ -2387,6 +2387,13 @@ static struct wgl_context *macdrv_wglCreateContextAttribsARB(HDC hdc,
         }
     }

+    if (3 == major && minor <= 1) { // force down OpenGL version
+        major   = 2;
+        minor   = 1;
+        flags  &= ~WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB;
+        profile&= ~WGL_CONTEXT_CORE_PROFILE_BIT_ARB;
+    }
+
     if ((major == 3 && (minor == 2 || minor == 3)) ||
         (major == 4 && (minor == 0 || minor == 1)))
     {

ビルドが、ばーん

$ make
   :
Wine build complete.

最後に sample\\hgimg4\\tamane1.hsp を開き、

$ WINEPREFIX=~/wine-hgimg4-test ./wine c:\\hsp34\\hsed3.exe "sample\\hgimg4\\tamane1.hsp"

そして、おもむろに F5 を押下、

hgimg4 珠音

おおおおー

やったね、無事に珠音(たまね)ちゃんが表示されました。

技術的なことをすこし

今回やったことは、 OpenGL 3.1 を要求された場合に OpenGL 2.1 に強制的に変えることをしています。

いろいろ調べたところ、OS X の OpenGL サポートがちょっと残念なことになっているようで、OS X 10.9 OpenGL Information - OpenGL - Apple Developer の辺りを見ると

Profile Version
Legacy 2.1
Core 3.3 - 4.1

となっていて、OpenGL 3.1 なんてサポートして無いよ!って怒られて実行できなかったようです。

単純に Core プロファイルで動くようにして今度はシェーダーでバージョンが違うと怒られたのでどうしたものかと悩んでいましたが、 hgimg4 の 3D エンジンであるところの GamePlay 2D/3D は OS X もサポートしているらしいのでビルドしてみて試したところ、あれ? OpenGL 2.1 で動いているぞ!ってことで、今回の対応になったわけです。

ただ、OpenGL 3.1 で使えるシェーダーの機能を使っている場合は Windows と動きが違う可能性があるので確認は必要になると思います。

おまけ

hgimg4 の他のサンプルや、 HSPプログラムコンテスト 2015 で hgimg4 を利用したプログラムを探し動かしてみました。

hgimg4 サンプル test1 hgimg4 サンプル test2 hgimg4 サンプル test3 hgimg4 サンプル test4 hgimg4 サンプル test5 hgimg4 サンプル test6 hgimg4 サンプル test7 hgimg4 サンプル test8 hgimg4 サンプル test9 hgimg4 サンプル test10 hgimg4 サンプル test11 hgimg4 サンプル test12 hgimg4 サンプル test13 hgimg4 サンプル block3

ヨミチハコワイ (c) 法貴 優雅(MYAOSOFT)/ @MYAOSOFT

ヨミチハコワイ 01 ヨミチハコワイ 02 ヨミチハコワイ 03

R-sim++ (c) hashikemu / @hashikemu

R-sim++ 01 R-sim++ 02 R-sim++ 03

参考


 /  変更履歴  /  Permalink  /  このエントリーをはてなブックマークに追加
カテゴリ: ブログ  /  タグ: Mac, Wine, How to, メモ, 環境構築, HSP, HSP3, hgimg4