NPC出現スクリプト
$C15240 から始まるスクリプトについてちょっとメモ。
命令一覧。
命令コード オペランドのリスト([]内はバイト数) 名前の順。名前は適当に付けた。
サブルーチンのアドレスはabsolute指定で、バンクは$C1。返り値はAレジスタにある。
00 ADDR[2] IDX[2] EXEC_AND_JUMP_IF_CARRY_CLEAR ADDRにあるサブルーチンを実行し、キャリーがクリアなら スクリプトの処理位置をIDXに設定 01 ADDR[2] IDX[2] EXEC_AND_JUMP_IF_CARRY_SET ADDRにあるサブルーチンを実行し、キャリーがセットなら スクリプトの処理位置をIDXに設定 02 IDX[2] JUMP スクリプトの処理位置をIDXに設定 03 ADDR[2] EXEC_AND_PUT_FELLOW サブルーチンADDRを実行し、その返り値のキャラをシレンの周りに配置 04 CHR[1] PUT_FELLOW CHRで指定したキャラコードのNPCをシレンの周りに配置 05 ADDR[2] EXEC_AND_PUT_NPC サブルーチンADDRを実行し、その返り値のキャラをフロアに配置 06 CHR[1] PUT_NPC CHRで指定したキャラコードのNPCをフロアに配置 07 NOP 何もしない 08 CHR[1] DIR[1] X[1] Y[1] PUT_NPC_AT CHRで指定したキャラコードのNPCを座標(X,Y)に配置方向はDIRを向いている 09 ADDR[2] EXEC サブルーチンADDRを実行する 0A ITEM[1] X[1] Y[1] PUT_ITEM ITEMで指定したアイテム・ワナを座標(X,Y)に配置 0B TERR[1] X[1] Y[1] PUT_TERRAIN TERRで指定した地形を座標(X,Y)に設定 FF EXIT スクリプトを終了
スクリプトのリストは長いので https://gist.github.com/986290 に
見づらいのでもうちょっと分かりやすいのを作りたい