HSP をどうしても Mac OS X で動かしたい!
まあ、とりあえず Wine 使っておけばいいよね!
よしよし動いた、って hgimg4 が動かないじゃないか!むきー
と、言う所から
このように、hgimg4 のサンプルが動くようにするための方法です。
Wine の日本語環境を設定する
まず Wine で UI などに日本語を表示させる為の設定を行います。
設定をしないと
こんな感じに、全部が全部では無いですが豆腐になります。
最初に HSP のインストール前にいろいろ設定を行うために Wine の環境を作ります。
標準では ~/.wine
に環境が作られます。
$ wine xxx
「xxx.exe が見つから無い」と言われても無視してください。ワザとです。
別の場所に専用の環境を作る場合は
$ WINEPREFIX=~/wine-hgimg4-test wine xxx
と WINEPREFIX
環境変数を指定します。
以降では ~/wine-hgimg4-test
を環境として使用します。
日本語のフォントは IPAモナーフォント をインストールし、利用します。
※ geocities がなくなった影響でサイトが消えてるため INTERNET ARCHIVE からのリンクに変更しました (2019年04月30日追記)
まずは、フォントをインストールします。
$ wget http://web.archive.org/web/20190324124426/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
途中の「デスクトップ上にアイコンを作成する」や「拡張子の関連付けを行う」はチェックを外しておきましょう。
こんな感じにセットアップウィザードを行うと、
とりあえず、 Wine で HSP が動くようになります。
$ WINEPREFIX=~/wine-hgimg4-test wine c:\\hsp34\\hsed3.exe
とすると HSPスクリプトエディタ も起動します。
OSX 上の Wine で hgimg3 を動かす
HSPスクリプトエディタ で sample\\hgimg3\\tamane4.hsp
を開きます。
$ WINEPREFIX=~/wine-hgimg4-test wine c:\\hsp34\\hsed3.exe "sample\\hgimg3\\tamane4.hsp"
そして、おもむろに F5 を押下、
はい、無事にSDサイズの珠音ちゃんが表示されました。
OSX 上の Wine で hgimg4 を動かす
HSPスクリプトエディタ で sample\\hgimg4\\tamane1.hsp
を開きます。
$ WINEPREFIX=~/wine-hgimg4-test wine c:\\hsp34\\hsed3.exe "sample\\hgimg4\\tamane1.hsp"
そして、おもむろに F5 を押下、
(´・ω・`)
ここで諦めずに頑張る自分。
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 を押下、
おおおおー
やったね、無事に珠音ちゃんが表示されました。
技術的なことをすこし
今回やったことは、 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 を利用したプログラムを探し動かしてみました。
ヨミチハコワイ (c) 法貴 優雅(MYAOSOFT)/ @MYAOSOFT
R-sim++ (c) hashikemu / @hashikemu