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