0x041A10-0x041D51 NPCデータオフセット[size:2](+041A10)
0x041D52-0x046A6B NPCデータ
0x041D52-0x046A6B NPCデータ
NPCデータはマップ番号毎に区切られており、NPCデータオフセットによりその区切り位置が決められている。
例えば、初心者の家(マップ番号68)のNPCデータオフセットは13BF。
041A10を足して042DCFがこの部屋のNPCデータの開始位置になる。
終了位置は次のマップのNPCデータ開始位置の1バイト前になる。
この場合、マップ番号69のNPCデータオフセットは13F5=042E05なので、初心者の家のNPCデータの終了位置は042E04になる。
例えば、初心者の家(マップ番号68)のNPCデータオフセットは13BF。
041A10を足して042DCFがこの部屋のNPCデータの開始位置になる。
終了位置は次のマップのNPCデータ開始位置の1バイト前になる。
この場合、マップ番号69のNPCデータオフセットは13F5=042E05なので、初心者の家のNPCデータの終了位置は042E04になる。
NPCデータは一体につき9バイトからなる。
BYTE 内容
00 01 話し掛けたときに発生するイベントコードのオフセット
02 イベントコードのバンク(+0A)
00ならA0000~、01ならB0000~、02ならC0000~、03ならD0000~
bit2-4がパレット番号(0-7で全8種類)
bit5(0x20)は不明。立てると異常動作する。
03 bit0はbyte02のbit6-7と合わせ、フラグビットを示す。
式にすると 2^この値 がこのシンボルの出現を管理するビットになる。
以下のアドレスの対応するビットが立っていれば、シンボルが出現する。
bit1-7はメモリにおけるフラグのアドレスを示す。これに7E1EE0を足した
値がフラグのアドレスになる
まとめると
1111111 111 1 111 11
フラグのアドレス フラグの値 ?(通常0) パレット イベントバンク
04 X座標
05 Y座標(+40で中速、+80で高速、両方を足すと更に高速)
06 画像番号
07 00
01 直立不動
02 右手を前に出したまま不動
03 歩行
04 後ろを向いたまま不動
05 直立不動
06
07
+40でNPCがチョコボに変わる
これが立った状態でX座標に+80するとNPCがチョコボに騎乗する
+80でNPCが魔導アーマーに変わる。
これが立った状態でX座標に+80するとNPCが魔導アーマーに搭乗
する。
08 NPCの向き
0で上、1で右、2で下、3で左
BYTE 内容
00 01 話し掛けたときに発生するイベントコードのオフセット
02 イベントコードのバンク(+0A)
00ならA0000~、01ならB0000~、02ならC0000~、03ならD0000~
bit2-4がパレット番号(0-7で全8種類)
bit5(0x20)は不明。立てると異常動作する。
03 bit0はbyte02のbit6-7と合わせ、フラグビットを示す。
式にすると 2^この値 がこのシンボルの出現を管理するビットになる。
以下のアドレスの対応するビットが立っていれば、シンボルが出現する。
bit1-7はメモリにおけるフラグのアドレスを示す。これに7E1EE0を足した
値がフラグのアドレスになる
まとめると
1111111 111 1 111 11
フラグのアドレス フラグの値 ?(通常0) パレット イベントバンク
04 X座標
05 Y座標(+40で中速、+80で高速、両方を足すと更に高速)
06 画像番号
07 00
01 直立不動
02 右手を前に出したまま不動
03 歩行
04 後ろを向いたまま不動
05 直立不動
06
07
+40でNPCがチョコボに変わる
これが立った状態でX座標に+80するとNPCがチョコボに騎乗する
+80でNPCが魔導アーマーに変わる。
これが立った状態でX座標に+80するとNPCが魔導アーマーに搭乗
する。
08 NPCの向き
0で上、1で右、2で下、3で左
例)
初心者の家
カウンターにいる人物
0x042DCF-0x042DD7
92 33 06 E4 68 6F 1B 03 02
92 33 話し掛けたときのイベント(「ここは初心者の家~」)
3392+0C0000=0C3392から
06 E4 フラグとパレット
E406 = 1110010000000110
これを上記のように 1110010 000 0 001 10 に分けると、
使用パレットは01
フラグのアドレスは 1110010 = 72 に7E1EE0を足して 7E1F52
対象となるビットは2^0 = 1 でbit0。
つまり、メモリアドレス7E1F52のbit0が立っているときにこのNPCが
出現する。
68 6F 初期座標は(69,6F)
1B 画像番号1B
03 歩行する
02 最初は下を向いている
初心者の家
カウンターにいる人物
0x042DCF-0x042DD7
92 33 06 E4 68 6F 1B 03 02
92 33 話し掛けたときのイベント(「ここは初心者の家~」)
3392+0C0000=0C3392から
06 E4 フラグとパレット
E406 = 1110010000000110
これを上記のように 1110010 000 0 001 10 に分けると、
使用パレットは01
フラグのアドレスは 1110010 = 72 に7E1EE0を足して 7E1F52
対象となるビットは2^0 = 1 でbit0。
つまり、メモリアドレス7E1F52のbit0が立っているときにこのNPCが
出現する。
68 6F 初期座標は(69,6F)
1B 画像番号1B
03 歩行する
02 最初は下を向いている
また、イベントの関係上通れない場所には大抵「透明な」NPCが配置されており、条件を満たすことでそれが消え、通行可能になることが多い。
そうした透明なNPCは、画像番号を65にし、その上でBYTE08=向きデータのbit6(0x40)を立てることで可能になる。
そうした透明なNPCは、画像番号を65にし、その上でBYTE08=向きデータのbit6(0x40)を立てることで可能になる。
NPC画像番号一覧
00 ティナ
01 ロック
02 カイエン
03 シャドウ
04 エドガー
05 マッシュ
06 セリス
07 ストラゴス
08 リルム
09 セッツァー
0A モグ
0B ガウ
0C ゴゴ
0D ウーマロ
0E 帝国兵
0F カッパ
10 レオ
11 バナン
12 トランスティナ
13 商人
14 幽霊
15 ケフカ
16 ガストラ
17 老人
18 男
19 犬
1A マリア
1B 学者
1C ドラクゥ
1D ジュン
1E リターナー兵
1F オルトロス
20 ガウ(正装)
21 踊り子
22 大臣
23 クライド
24 老婆
25 若い女
26 男の子
27 女の子
28 ハト
29 レイチェル
2A カタリーナ
2B ダンチョー
2C 幻獣長老
2D 幻獣の若者(ユラ)
2E ジークフリード
2F シド
30 マディン
31 盗賊
32 バルガス
33 獣人
34 ガード
35 車掌
36 ショップの親父
37 妖精
38 コソドロ一匹狼
39 ドラゴン
3A 魚
3B フィガロ城兵士
3C ダリル
3D テュポーン、ヒドゥン
3E アレクソウルなど
01 ロック
02 カイエン
03 シャドウ
04 エドガー
05 マッシュ
06 セリス
07 ストラゴス
08 リルム
09 セッツァー
0A モグ
0B ガウ
0C ゴゴ
0D ウーマロ
0E 帝国兵
0F カッパ
10 レオ
11 バナン
12 トランスティナ
13 商人
14 幽霊
15 ケフカ
16 ガストラ
17 老人
18 男
19 犬
1A マリア
1B 学者
1C ドラクゥ
1D ジュン
1E リターナー兵
1F オルトロス
20 ガウ(正装)
21 踊り子
22 大臣
23 クライド
24 老婆
25 若い女
26 男の子
27 女の子
28 ハト
29 レイチェル
2A カタリーナ
2B ダンチョー
2C 幻獣長老
2D 幻獣の若者(ユラ)
2E ジークフリード
2F シド
30 マディン
31 盗賊
32 バルガス
33 獣人
34 ガード
35 車掌
36 ショップの親父
37 妖精
38 コソドロ一匹狼
39 ドラゴン
3A 魚
3B フィガロ城兵士
3C ダリル
3D テュポーン、ヒドゥン
3E アレクソウルなど