トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

解説/フラグ

Last-modified: 2018-03-28 (水) 22:07:08 (116d)

フラグについてのまとめ

FEシリーズのフラグ(EAでいうEventID)についてのまとめ

全シリーズ共通

0x00

常に 0 を返す

0x01 - 0x28

ローカルフラグ
章ごとに独立しているフラグ

0x01 ボス戦闘会話フラグ

ボスと戦闘時に会話した時にONになります。
習慣的に 0x01 が利用されます。

0x02 ボス撃破フラグ

ボスが死亡したときの死亡セリフで有効になるフラグ
習慣的に 0x02 が利用されます。

0x03 制圧フラグ

章をクリアするときに有効にするフラグです。
FE8では、0x03を有効にしないでクリアすると、クリアターン数が記録されません。

0x04 第2BGMフラグ

(FE7,FE8のみ / FE6にはない)
章のBGMを第2BGMに切り替えます。

0x05 不明

利用しないの方が賢明です。

0x06 敵全滅フラグ

(FE8のみ / FE7,FE6にはない。 FE7ではasmで判定しています)
敵を全滅させると自動的にONになります。
新しく敵が増援で出てくると自動的にOFFになります。

0x07 , 0x08 ??

たいていいろいろな理由から、予約されていることがあるので、
バグを引きたくなければ利用しないことが賢明です。

0x09 - 0x28 一時フラグ

章の中のみで有効のフラグです。
章をクリアしてしまうとすべて0クリアされます。
自由に利用していいです。
中断データにも格納されます。

FE6

0x29 - 0x64 利用禁止

使わない方が賢明です。

0x65 - 0xA4 グローバルフラグ

セーブデータに記録されるグローバルフラグです。
永続的なデータを保存したい時に利用してください。

用途が判明しているFE6のグローバルフラグ

FE6では判明している限り以下のフラグが利用されています。
(FE6解析資料より)

0x65 ゲームオーバーフラグ
0x67 - 0x69	キャスの説得で使用
0x6A	ララムが仲間になる
0x6B	イリアルート選択
0x6C	ファが死亡
0x6D	ゲイルが死亡
0x6E	ダグラスが加入後に死亡
0x6F	パーシバルが死亡
0x70	キャスが加入または死亡
0x71	パーシバルが加入
0x72	イドゥンを撃破
0x76	エルフィンが死亡
0x77	パーシバルが加入後に死亡
0x7B	イドゥンを封印の剣で撃破

//なお、FE6解析資料には以下のフラグが掲載されていますが、設定箇所が見当たらないので、間違いだと思います。
0x2A	敵状態のティトが死亡
0x32	敵状態のヒュウが死亡
0x35	敵状態のルトガーが死亡
0x3F	敵状態のミレディが死亡

FE7

0x29 - 0x3F なぜか利用できる領域

FE7では状態を記録するのになぜか利用されています。
ただ、利用しない方がいいとは思います。

0x40 - 0x64 利用禁止

使わない方が賢明です。

0x65 - 0xA4 グローバルフラグ

セーブデータに記録されるグローバルフラグです。
永続的なデータを保存したい時に利用してください。

用途が判明しているFE7のグローバルフラグ

FE7では判明している限り以下のフラグが利用されています。
(天地の剣の資料より + 独自解析より)

0x65 ゲームオーバーフラグ
0x6A	マリナスを仲間にした
0x6C	ch23x 関係
0x6D	ch23 アトスとの会話
0x6E	ch26xでソーニャ撃破
0x6F   ch23 ロイドを撃破
0x70	ch23でライナスを撃破(ロイド生存)
0x72 - 0x7C	リン編の敗北したユニットとの会話シーンで利用される
0x82   ch26 ジャファルの加入条件
0x86	エピローグで使用
0x88	ダーツに攻撃したか
0x89   Ch24 バイダの死亡
0x9D	誰か死ぬとオン

FE8

0x29 - 0x64 利用禁止

使わない方が賢明です。

0x65 - 0x12C グローバルフラグ

セーブデータに記録されるグローバルフラグです。
永続的なデータを保存したい時に利用してください。

0xFFFF メモリスロット参照

メモリスロットの値を参照します

メモリ的には、0x12D-も利用できますが、セーブデータに記録されないので、利用しない方が賢明です。

用途が判明しているFE8のグローバルフラグ

FE8では判明している限り以下のフラグが利用されています。

0x67 - 0x70	エクストラユニット出現
0x7F - 0x81	トライアングルアタック台詞
0x84	開始イベントフラグ(詳細不明)
0x86	アメリアの死亡
0x88	新たなる旅立ちフラグ(章分岐する所)
0x89	序章のミュラン関係(詳細不明)
0xB4 - 0xEF	辞書項目の出現
0xF0 - 0x127	辞書項目の既読

フラグのメモリマップ

FE6

03004890	フラグ 0x65-0x6C
03004891	フラグ 0x6D-0x74
03004892	フラグ 0x75-0x7C
03004893	フラグ 0x7D-0x84
03004894	フラグ 0x85-0x8C
03004895	フラグ 0x8D-0x94
03004896	フラグ 0x95-0x9C
03004897	フラグ 0x9D-0xA4

03004898	フラグ 0x01-0x8
03004899	フラグ 0x09-0x10
0300489A	フラグ 0x11-0x18
0300489B	フラグ 0x19-0x20
0300489C	フラグ 0x21-0x28

FE7J

030049F0	フラグ 0x65-0x6C	{J}
030049F1	フラグ 0x6D-0x74	{J}
030049F2	フラグ 0x75-0x7C	{J}
030049F3	フラグ 0x7D-0x84	{J}
030049F4	フラグ 0x85-0x8C	{J}
030049F5	フラグ 0x8D-0x94	{J}
030049F6	フラグ 0x95-0x9C	{J}
030049F7	フラグ 0x9D-0xA4	{J}

030049F8	フラグ 0x01-0x08	{J}
030049F9	フラグ 0x09-0x10	{J}
030049FA	フラグ 0x11-0x18	{J}
030049FB	フラグ 0x19-0x20	{J}
030049FC	フラグ 0x21-0x28	{J}

FE7U

03004AD0	フラグ 0x65-0x6C	{U}
03004AD1	フラグ 0x6D-0x74	{U}
03004AD2	フラグ 0x75-0x7C	{U}
03004AD3	フラグ 0x7D-0x84	{U}
03004AD4	フラグ 0x85-0x8C	{U}
03004AD5	フラグ 0x8D-0x94	{U}
03004AD6	フラグ 0x95-0x9C	{U}
03004AD7	フラグ 0x9D-0xA4	{U}

03004AD8	フラグ 0x01-0x08	{U}
03004AD9	フラグ 0x09-0x10	{U}
03004ADA	フラグ 0x11-0x18	{U}
03004ADB	フラグ 0x19-0x20	{U}
03004ADC	フラグ 0x21-0x28	{U}

FE8J

03005240	フラグ 0x65-0x6C	{J}
03005241	フラグ 0x6D-0x74	{J}
03005242	フラグ 0x75-0x7C	{J}
03005243	フラグ 0x7D-0x84	{J}
03005244	フラグ 0x85-0x8C	{J}
03005245	フラグ 0x8D-0x94	{J}
03005246	フラグ 0x95-0x9C	{J}
03005247	フラグ 0x9D-0xA4	{J}
03005248	フラグ 0xA5-0xAC	{J}
03005249	フラグ 0xAD-0xB4	{J}
0300524A	フラグ 0xB5-0xBC	{J}
0300524B	フラグ 0xBD-0xC4	{J}
0300524C	フラグ 0xC5-0xCC	{J}
0300524D	フラグ 0xCD-0xD4	{J}
0300524E	フラグ 0xD5-0xDC	{J}
0300524F	フラグ 0xDD-0xE4	{J}
03005250	フラグ 0xE5-0xEC	{J}
03005251	フラグ 0xED-0xF4	{J}
03005252	フラグ 0xF5-0xFC	{J}
03005253	フラグ 0xFD-0x104	{J}
03005254	フラグ 0x105-0x10C	{J}
03005255	フラグ 0x10D-0x114	{J}
03005256	フラグ 0x115-0x11C	{J}
03005257	フラグ 0x11D-0x124	{J}
03005258	フラグ 0x125-0x12C	{J}

03005260	フラグ 0x01-0x08	{J}
03005261	フラグ 0x09-0x10	{J}
03005262	フラグ 0x11-0x18	{J}
03005263	フラグ 0x19-0x20	{J}
03005264	フラグ 0x21-0x28	{J}

FE8U

03005250	フラグ 0x65-0x6C	{U}
03005251	フラグ 0x6D-0x74	{U}
03005252	フラグ 0x75-0x7C	{U}
03005253	フラグ 0x7D-0x84	{U}
03005254	フラグ 0x85-0x8C	{U}
03005255	フラグ 0x8D-0x94	{U}
03005256	フラグ 0x95-0x9C	{U}
03005257	フラグ 0x9D-0xA4	{U}
03005258	フラグ 0xA5-0xAC	{U}
03005259	フラグ 0xAD-0xB4	{U}
0300525A	フラグ 0xB5-0xBC	{U}
0300525B	フラグ 0xBD-0xC4	{U}
0300525C	フラグ 0xC5-0xCC	{U}
0300525D	フラグ 0xCD-0xD4	{U}
0300525E	フラグ 0xD5-0xDC	{U}
0300525F	フラグ 0xDD-0xE4	{U}
03005260	フラグ 0xE5-0xEC	{U}
03005261	フラグ 0xED-0xF4	{U}
03005262	フラグ 0xF5-0xFC	{U}
03005263	フラグ 0xFD-0x104	{U}
03005264	フラグ 0x105-0x10C	{U}
03005265	フラグ 0x10D-0x114	{U}
03005266	フラグ 0x115-0x11C	{U}
03005267	フラグ 0x11D-0x124	{U}
03005268	フラグ 0x125-0x12C	{U}

03005270	フラグ 0x01-0x08	{U}
03005271	フラグ 0x09-0x10	{U}
03005272	フラグ 0x11-0x18	{U}
03005273	フラグ 0x19-0x20	{U}
03005274	フラグ 0x21-0x28	{U}

フラグ関係のasm命令

FE6

0806BA48	フラグを立てる関数	r0=立てるフラグ:FLAG
0806BA74	フラグを下す関数	void	r0=下すフラグ:FLAG
0806BA5C	フラグ状態確認関数	RET=結果BOOL	r0=確認するフラグ:FLAG

FE7J

0807A0B4	フラグを立てる関数	void	r0=立てるフラグ:FLAG	{J}
0807A0A0	フラグを下す関数	void	r0=下すフラグ:FLAG	{J}
0807A0C8	フラグ状態確認関数	RET=結果BOOL	r0=確認するフラグ:FLAG	{J}

FE7U

080798E4	フラグを立てる関数	void	r0=立てるフラグ:FLAG	{U}
080798D0	フラグを下す関数	void	r0=下すフラグ:FLAG	{U}
080798F8	フラグ状態確認関数	RET=結果BOOL	r0=確認するフラグ:FLAG	{U}

FE8J

080860A8	フラグを立てる関数	r0=立てるフラグ:FLAG	{J}
080860bc	フラグを下す関数	r0=下すフラグ:FLAG	{J}
080860D0	フラグ状態確認関数	RET=結果BOOL	r0=確認するフラグ:FLAG	{J}

FE8U

08083D80	フラグを立てる関数	r0=立てるフラグ:FLAG	{U}
08083D94	フラグを下す関数	r0=下すフラグ:FLAG	{U}
08083DA8	フラグ状態確認関数	RET=結果BOOL	r0=確認するフラグ:FLAG	{U}

フラグ関係のイベント命令

FE6

22000000YY000000XX000000	[XX:FLAG:FLAG][YY:GOTO_CONDITIONAL:条件ID]フラグによる条件分岐(オンの場合)	{COND}	{FLAG}
23000000YY000000XX000000	[XX:FLAG:FLAG][YY:GOTO_CONDITIONAL:条件ID]フラグによる条件分岐(オフの場合)	{COND}	{FLAG}
34000000XX000000	[XX:FLAG:オンにするフラグ]フラグをオン	{FLAG}
35000000XX000000	[XX:FLAG:オフにするフラグ]フラグをオフ	{FLAG}

FE7J

18000000XX000000YYYY0000ZZZZ0000	フラグで会話を切り替えて表示[X:FLAG:Flag][YY:CONVERSATION_TEXT:有効時][ZZ:CONVERSATION_TEXT:無効時](TEXTIFEVENTID)	{TEXT}	{J}
4A000000XXXX0000YYYY0000	GOTO_IFET[XX:IF_CONDITIONAL:Conditional_ID][YY:FLAG:Flag]フラグによる条件分岐(オンの場合) 	{COND}	{FLAG}	{J}
4B000000XXXX0000YYYY0000	GOTO_IFEF[XX:IF_CONDITIONAL:Conditional_ID][YY:FLAG:Flag]フラグによる条件分岐(オフの場合) 	{COND}	{FLAG}	{J}
7400XX00	フラグON[XX:FLAG:Flag]	{FLAG}	{J}
7500XX00	フラグOFF[XX:FLAG:Flag]	{FLAG}	{J}

FE7U

1A000000XX000000YYYY0000ZZZZ0000	フラグで会話を切り替えて表示[X:FLAG:Flag][YY:CONVERSATION_TEXT:有効時][ZZ:CONVERSATION_TEXT:無効時](TEXTIFEVENTID)	{TEXT}	{U}
4C000000XXXX0000YYYY0000	GOTO_IFET[XX:IF_CONDITIONAL:Conditional_ID][YY:FLAG:Flag]フラグによる条件分岐(オンの場合) 	{COND}	{FLAG}	{U}
4D000000XXXX0000YYYY0000	GOTO_IFEF[XX:IF_CONDITIONAL:Conditional_ID][YY:FLAG:Flag]フラグによる条件分岐(オフの場合) 	{COND}	{FLAG}	{U}
7600XX00	フラグON[XX:FLAG:Flag]	{FLAG}	{U}
7700XX00	フラグOFF[XX:FLAG:Flag]	{FLAG}	{U}

FE8

2902XXXX	[XXXX:FLAG:Flag]フラグON	{FLAG}
2102XXXX	[XXXX:FLAG:Flag]フラグOFF	{FLAG}
29190000	CHECK_FLAGID	現在のイベントに関連づけられている達成フラグを取得を取得します。	結果はメモリスロットCに代入されます。	{COND}
2103XXXX	フラグが有効か確認する[XXXX:FLAG:Flag]	有効であれば1を、そうでなければ0になります。	結果はメモリスロットCに代入されます。	CHECK_FLAG	{COND}	{FLAG}

(FE8は、FE8UとFE8Jで共通です)