rlvm

planetarian をやりたくて、rlvm を動かして見ます。
github にソースがあるのでダウンロードします。

$ git clone https://github.com/eglaysher/rlvm

 必要なパッケージのインストールします。
 と思ったら、rlvm のパッケージがありました。全部すっ飛ばしてインストールします。

$ sudo apt-get install -y rlvm
$ rlvm [clannad のディレクトリ]

 うん、ちゃんと動きます。xclannad より再現度は高いと思います。ただ音の再生速度が早いです。(44.1kHz -> 48kHz で再生されている?)

$ rlvm [planetarian のディレクトリ]

 全く問題ないようです。

$ rlvm [智代アフターのディレクトリ]

 一部機能が実装されていないとメッセージが出ますが、xclannad より動いている感じがします。ただ、音の再生速度がちょっと早いです。

$ rlvm [Kanon 初回版(18禁)のディレクトリ]

 「ゲームを読み込むことができませんでした。」とでました。それはそうです、RealLive じゃありませんから。

 メモリアルエディションの Air や Kanon も動きました。
 う〜ん xclannad と rlvm。どっちもどっちかな。
 18禁版は、Xkanon じゃないと動きません。

 planetarian が動きました。
 嬉しいけど、つまらない。

 とりあえず、コンパイルします。
 改めて、必要なパッケージをインストールします。

$ sudo apt-get install -y scons libboost-all-dev libsndfile1-dev
$ cd rlvm
$ scons –release

 cpu 負荷が異常に高くなり、マウスポインタがほとんど動かなくなりました。
 やっと戻ってきたと思ったらエラーです。
 うん、コンパイルは諦めましょう。

 気になったので、少し調べました。4GB メモリの Rapberry Pi 4B でコンパイルしましたが、メモリが足りないようです。
 コンパイル中の負荷を htop で見ていたら、swap を使い始めました。
 GPU に512M 割り当てていましたが, 32M に減らしたところ、コンパイルが終了しました。
 コンパイルした rlvm を使ったところ、CLANNAD や智代アフターの音が正常に再生されました。
 ところが、こんどは planetarian で右クリックのメニューを出そうとしたところ、リソースの読み込みに失敗したようです。

 どうやら、SDL_image が xpm のサポートなしとなっているためのようです。rlvm は xpm を使っていると思います。
 SDL のソースをダウンロードしてコンパイルてインストールしてみました。しかし、結果は同じです。
 おかしいです。xpm のサポートは有効にしてあります。
 MacOS では static でリンクするようなので、static でビルドしてみます。

$ scons –release –fullstatic

 結果は同じでした。
 ソースツリーを見てみたら、vender/SDL_image/src/IMG_xpm.c があります。gcn_utils.cc の中で、IMG_xpm.c の内容をコピーし動くように修正してみました。それでも SDL_CreateRGBSurface が NULL を返してくるようです。

 困りました。
 Raspberry Pi OS のパッケージソースを落として比較してみようと思いました。

$ apt-get source rlvm

 処理が違いました。xpm ではなくて、png を使っています。どうしよう。
 とりあえず、コンパイルしてみます。

$ sudo apt-get install libluabind-dev
$ cd rlvm-0.14
$ scons –release

 できました。動かしてみます。

$ ./build/rlvm

 あれ?同じエラーになります。なんで?

$ sudo apt-get install libguichan-dev libguichan-opengl-0.8.1-1v5
$ scons –release –clean
$ scons –release

さて、動くかな?。
だめです。

 しょうがありません。github のソースに戻ります。

 詰めていったところ、画像の xpm で使っている色名が、SDL_image では対応していないようでした。blue とか green はありましたが、それだけでは足りないです。gray50 とか。
 色名と対応する rgb のテーブルに、足りない色名について追加したところ planetarian でも右クリックのメニューが出ました。
 ソースからインストールした SDL と SDL_image はアンインストールしました。
 また、原因がわかったので、ソースへの修正は破棄し、xpm ファイルを書き換えることにします。

 よし、これで 18禁版以外は全部 rlvm で動かせます。
xclanand は使わなくても済みそうです。

ちなみに、8GB の Raspberry Pi 4B でコンパイルしてみたら、swap は使いませんでした。

Rlvm

Posted by sirius