Xkanon(2)

BLESS on AVG32

 昔の zip ファイルから発掘したものに BLESS on AVG32 があります。Xkanon で動かせるようです。
 展開して早速コンパイルしてみます。

$ ./configure
$ make

 エラー。はいはい、わかっています。はじめは、インクルードファイルの問題でした。修正してまたコンパイル。

$ make

 エラー。うん、ちょっと見たことのないエラーです。調べます。ふーーん、前はコンパイルできてたのね。修正。

$ make

 エラー。うん?なんだ、この Var という型は。え?何? 0 を代入しているから int とちゃうん?えい、int にしてまえ。

$ make

 エラー。やっぱだめ?クラスの定義を見に行きます。
 あかん。ちんぷんかんぷんやん。

 休憩。

 も一度見たろ。やっぱりわからん。ちょっと調べましょう。
 右辺値参照?ナンノコッチャ。わかりません。どうしよう。
 えっと、クラスではオペレータも定義しているけど、式をばらして一つづつ計算させてみました。
 エラーが減りました。全部で20箇所くらいこのエラーが出ていますが、全部修正しました。

$ make

 ワーニングは大量に出ますが、いつものこと。コンパイルはできました。

 BLESS の CD を引っ張り出します。
 まず、DOSBox-X で BLESS をインストールします。2GB のワーク用のディスクイメージを作成して、そこに BLESS をインストールします。
 時間がかかるがじっと待ちます。
 インストールが終わったら、そのイメージをマウントします。bless_conv があるディレクトリに移動して、

$ ./bress_conv -i [BLESS のディレクトリ]

として変換が終わるのを待ちます。

 xayusys_gtk2 で動かそうとしましたが、ハングアップしたようで動きません。どうやら動画再生のところで、別 widget を作ろうとして止まっているようです。
 動画再生時に出るメッセージは次のメッセージです。

(BASIL\BLESS:13117): GLib-GObject-WARNING **: 09:25:23.457: ../../../gobject/gsignal.c:2523: signal 'map_notify’ is invalid for instance '0x1f3c410’ of type 'GtkDrawingArea’
(BASIL\BLESS:13117): GLib-GObject-WARNING **: 09:25:23.458: ../../../gobject/gsignal.c:2523: signal 'expose’ is invalid for instance '0x1f3c410’ of type 'GtkDrawingArea’

 WARNING なので問題ないかと思ったら、ここから先に進みません。コールバックの登録をやめてみますが、コールバックの登録をやめても結局動きません。
 動画再生をコメントアウトすると初期画面が出ましたが、どこをクリックしても終了してしまいます。シナリオをダンプしてみたけどちょっとおかしいです。

 いろいろ調べていくと、perl で jump_seen.cc を生成しますが、エラーで生成されず、サイズ 0 のソースが生成されてしまっていました。再度ソースを取り出し、jump_seen.cc を直接修正したところ、うまくいきました。
 動画の再生はできませんが、シナリオが正常に作成されたようで、ゲームは進むことができました。

 ところが、今度は、ゲーム中にチャットがあるのですが、そのチャットの内容が表示されません。こちらも Xkanon が原因だと思いますが、bless については一旦終了です。

Xkanon

Posted by sirius