日々

軽く事務所がバタバタと。定時後、作りかけのプログラムを完成させるべく、延々と事務所で作業に集中。LSI-C試食版の制限にことごとく泣かされるも何とか光明が見えたところで、TAKETYONがメシ食いに行こうと誘ってくれたので、近所の松屋へ。デミたまハンバーグ定食食ったら、急に頭がすっきりしたのか、さっきのプログラムのバグの原因が判ったところで戻ってデバッグして仕上げ。2号線で帰宅してたら途中で凄く眠くて何度も車を止めて1時間以上も仮眠しながら帰宅。深夜1時頃就寝。

続・AVG32のゲームを鑑賞するために

NScripterで簡単にHello World.

昨日深夜までかかって自分の好きなシナリオを再生するのに必要な最低限のAVG32の命令が判ったので、これを何とか活用したいと思ってNScripterをダウンロード。

NScripter
http://www.nscripter.com/

NScripterを使ったゲームは結構遊んでるし、シナリオデータもテキストファイルだってことは知ってたので、軽くお勉強。

NScripter研究
http://kamakura.cool.ne.jp/o_show/nscripter/

とりあえず、プログラミング言語で定番のHello World.を作ってみる。何故か半角英数字だと上手くいかなかったので、全角カタカナで書いてみた。

*define
game

*start
ハローワールド\
end

*defineと続くgameは必須。gameの部分で*startに飛ぶので、*startも必須。endでNScripter終了。テキストはそのまま表示。末尾に\を付けるとクリック待ち。
画像は「bg "ファイル名",1」で表示。末尾の1は即時表示の意味。BGMは「bgm "ファイル名"」で演奏開始。「stop」で演奏終了。音声は「dwave 0,"ファイル名"」で再生。最初の0はチャンネル番号。音声に重ねて効果音を鳴らしたい場合はチャンネル番号をずらせばいい。
とりあえず、AVG32なゲームのシナリオデータと画像データ、音声データなどを使って、元のゲームと同等な動作をするシナリオデータを途中まで作ってちゃんと動作することが確認できた。

AVG32からNScripter用へ自動変換

AVG32のシナリオデータSEEN.TXTを分割して出来たSEEN124.TXTなどを元にNScripter用のシナリオデータに変換するプログラムを作ってみる。
内容は単純でSEEN124.TXTをバイナリファイルとして開き、実際のシナリオデータが始まるアドレス0x00000B8Bまで飛ばしてから、1バイトずつ読んでAVG32の命令だったら、相当するNScripterの命令に置き換えるってプログラム。同じ、Windows上で動作の差異を確認できるので、Windows上にLSI-C86試食版を入れて作った。

LSI C-86 v3.30c 試食版
http://www.vector.co.jp/soft/maker/lsi/se001169.html

こんな具合で標準出力にNScripter用のシナリオデータが出力されるので、これを0.txtに保存する。あとは同じフォルダにnscr.exe(NScripter本体)を置いて実行すれば遊べる。もちろん、必要な画像や音声もBMPやWAVで用意しておく。

C:\>avg2nsc > 0.txt