====== フラグについてのまとめ ======
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で共通です)