一連の処理
(1)個々に設定された、会話イベント(条件分岐)IDを読み込みます。
会話イベント(条件分岐)IDは各キャラクターの配置情報に含まれており、
会話イベント(条件分岐)オフセットは0E0000-0E073Fにある
※指定のIDから指定の(ID+1)までの範囲を読み込むので、
新規で追加する場合は2つのオフセットを調整する必要があります。
(例)6A 09 7C 09 : 096A~097Bを読み込む
会話イベント(条件分岐)IDは各キャラクターの配置情報に含まれており、
会話イベント(条件分岐)オフセットは0E0000-0E073Fにある
※指定のIDから指定の(ID+1)までの範囲を読み込むので、
新規で追加する場合は2つのオフセットを調整する必要があります。
(例)6A 09 7C 09 : 096A~097Bを読み込む
※注意/会話イベントIDはその人物が出現するかどうかを決めるフラグにも関わっています。
(2)以下の条件分岐判断を行います
(3)条件分岐後イベントを実行します
条件分岐命令一覧
色々と複雑ですが、"F9","FA"等の命令はかなりの応用が利きます。
(例)LV2,1,1,4型の場合は別イベント等
(例)LV2,1,1,4型の場合は別イベント等
(+a):読み込みアドレスへ加算する数値
F0 ;(終端)
F1 :(未定義)
F2 xx yy :(GBA)[フラグ分岐]
・yyxx = 81F3 で暗黒魔法(ドレインタッチ)を習得していない場合は
イベントを飛ばす。
F1 :(未定義)
F2 xx yy :(GBA)[フラグ分岐]
・yyxx = 81F3 で暗黒魔法(ドレインタッチ)を習得していない場合は
イベントを飛ばす。
F3 xx :(GBA)[フラグ分岐]
・該当フラグ=0で実行,1でその列のイベントを飛ばす
F4 xx :(GBA)[フラグ分岐]
・該当フラグ=1で実行,0でその列のイベントを飛ばす
・該当フラグ=0で実行,1でその列のイベントを飛ばす
F4 xx :(GBA)[フラグ分岐]
・該当フラグ=1で実行,0でその列のイベントを飛ばす
F5 xx yy zz:[ 8bit 条件分岐 / $7E0500-7E44FF まで指定可能 / & = AND演算 ]
・( $7E0500 + yyxx(mod 0x4000) ) & zz = 0
で 次の命令を実行(+4)
・( $7E0500 + yyxx(mod 0x4000) ) & zz ≠ 0
で その列のイベントを飛ばす(*1)
で 次の命令を実行(+4)
・( $7E0500 + yyxx(mod 0x4000) ) & zz ≠ 0
で その列のイベントを飛ばす(*1)
F6 :[(配置イベントの場合のみ / 会話イベントには使えない)](未調査)
・Aボタンが押されればその列のイベントを実行
・Aボタンが押されなければその列のイベントを飛ばす
・Aボタンが押されればその列のイベントを実行
・Aボタンが押されなければその列のイベントを飛ばす
F7 xx :[ 会話位置分岐 / 00:↑ , 01:→ , 02:↓ , 03:← ]
・xx = $7E0ADB で次の命令を実行(+2) ,
・xx ≠ $7E0ADB でその列のイベントを飛ばす
・xx = $7E0ADB で次の命令を実行(+2) ,
・xx ≠ $7E0ADB でその列のイベントを飛ばす
F8 xx yy zz :[ 8bit 条件分岐 / $7E0500-7E44FF まで指定可能 / & = AND演算 ]
・( $7E0500 + yyxx(mod 0x4000) ) & zz ≠ 0 で
次の命令を実行(+4)
・( $7E0500 + yyxx(mod 0x4000) ) & zz = 0 で
その列のイベントを飛ばす
・( $7E0500 + yyxx(mod 0x4000) ) & zz ≠ 0 で
次の命令を実行(+4)
・( $7E0500 + yyxx(mod 0x4000) ) & zz = 0 で
その列のイベントを飛ばす
F9 xx yy zz ww;[16bit 条件分岐 / $7E0500-7E44FF まで指定可能 ]
・yyxx の bit14-15 = 0
( $7E0500 + yyxx(mod 0x4000) ) = wwzz で次の命令を実行(+4?)
≠ wwzz でその列のイベントを飛ばす
・yyxx の bit14-15 = 1
( $7E0500 + yyxx(mod 0x4000) ) ≧ wwzz で次の命令を実行(+5)
< wwzz でその列のイベントを飛ばす
・yyxx の bit14-15 = 2
( $7E0500 + yyxx(mod 0x4000) ) < wwzz で次の命令を実行(+5)
≧ wwzz でその列のイベントを飛ばす
・yyxx の bit14-15 = 0
( $7E0500 + yyxx(mod 0x4000) ) = wwzz で次の命令を実行(+4?)
≠ wwzz でその列のイベントを飛ばす
・yyxx の bit14-15 = 1
( $7E0500 + yyxx(mod 0x4000) ) ≧ wwzz で次の命令を実行(+5)
< wwzz でその列のイベントを飛ばす
・yyxx の bit14-15 = 2
( $7E0500 + yyxx(mod 0x4000) ) < wwzz で次の命令を実行(+5)
≧ wwzz でその列のイベントを飛ばす
FA xx yy zz;[ 8bit 条件分岐 / $7E0500-7E44FF まで指定可能 ]
・yyxx の bit14-15 = 0
( $7E0500 + yyxx(mod 0x4000) ) = zz で次の命令を実行(+4)
≠ zz でその列のイベントを飛ばす
・yyxx の bit14-15 = 1
( $7E0500 + yyxx(mod 0x4000) ) ≧ zz で次の命令を実行(+4)
< zz でその列のイベントを飛ばす
・yyxx の bit14-15 = 2
( $7E0500 + yyxx(mod 0x4000) ) < zz で次の命令を実行(+4)
≧ zz でその列のイベントを飛ばす
・yyxx の bit14-15 = 0
( $7E0500 + yyxx(mod 0x4000) ) = zz で次の命令を実行(+4)
≠ zz でその列のイベントを飛ばす
・yyxx の bit14-15 = 1
( $7E0500 + yyxx(mod 0x4000) ) ≧ zz で次の命令を実行(+4)
< zz でその列のイベントを飛ばす
・yyxx の bit14-15 = 2
( $7E0500 + yyxx(mod 0x4000) ) < zz で次の命令を実行(+4)
≧ zz でその列のイベントを飛ばす
FB xx ;[フラグ分岐]
・($7E0A34+[xx/8]) の bit xx (mod 8) = 0 で 次の命令を実行(+2) ,
・($7E0A34+[xx/8]) の bit xx (mod 8) = 1 で その列のイベントを飛ばす
・($7E0A34+[xx/8]) の bit xx (mod 8) = 0 で 次の命令を実行(+2) ,
・($7E0A34+[xx/8]) の bit xx (mod 8) = 1 で その列のイベントを飛ばす
FC xx ;[フラグ分岐]
・($7E0A34+[xx/8]) の bit xx (mod 8) = 1 で 次の命令を実行(+2) ,
・($7E0A34+[xx/8]) の bit xx (mod 8) = 0 で その列のイベントを飛ばす
・($7E0A34+[xx/8]) の bit xx (mod 8) = 1 で 次の命令を実行(+2) ,
・($7E0A34+[xx/8]) の bit xx (mod 8) = 0 で その列のイベントを飛ばす
FD xx ;[フラグ分岐]
・($7E0A14+[xx/8]) の bit xx (mod 8) = 0 で 次の命令を実行(+2)
・($7E0A14+[xx/8]) の bit xx (mod 8) = 1 で その列のイベントを飛ばす
・($7E0A14+[xx/8]) の bit xx (mod 8) = 0 で 次の命令を実行(+2)
・($7E0A14+[xx/8]) の bit xx (mod 8) = 1 で その列のイベントを飛ばす
FE xx ;[フラグ分岐]
・($7E0A14+[xx/8]) の bit xx (mod 8) = 1 で 次の命令を実行(+2) ,
・($7E0A14+[xx/8]) の bit xx (mod 8) = 0 で その列のイベントを飛ばす
・($7E0A14+[xx/8]) の bit xx (mod 8) = 1 で 次の命令を実行(+2) ,
・($7E0A14+[xx/8]) の bit xx (mod 8) = 0 で その列のイベントを飛ばす
FF xx yy ;[イベント実行]
・イベントyyxxを実行する。
・イベントyyxxを実行する。
(例)
FF 01 00 : Stock00の会話(F0 ~ F*(次の条件分岐開始) 間がストック)
FF 01 00 : Stock00の会話(F0 ~ F*(次の条件分岐開始) 間がストック)
単純な会話イベントを追加するだけなら、
FF 01 00[F0]xx yy : yyxx = メッセージIDでokです
FF 01 00[F0]xx yy : yyxx = メッセージIDでokです
(*1)次の"FF xx yy"の次まで読み込みアドレスを移動させる。下の例のような感じ。
コルナゴの壷のおじさんの例
FE 0C [FF 02 00] | フラグ$7E0A15 の bit4 = 0 で↓ |
FA 49 04 00 F9 47 84 10 27 FA 15 00 5F [FF 56 02] | 65536G以上で↓へ,10000G以上で↓,キャラID:00がMonID 5Fを捕らえていなければ↓ |
FA 49 04 00 F9 47 84 10 27 FA 65 00 5F [FF 56 02] | 65536G以上で↓へ,10000G以上で↓,キャラID:01がMonID 5Fを捕らえていなければ↓ |
FA 49 04 00 F9 47 84 10 27 FA B5 00 5F [FF 56 02] | 65536G以上で↓へ,10000G以上で↓,キャラID:02がMonID 5Fを捕らえていなければ↓ |
FA 49 04 00 F9 47 84 10 27 FA 05 01 5F [FF 56 02] | 65536G以上で↓へ,10000G以上で↓,キャラID:03がMonID 5Fを捕らえていなければ↓ |
FA 15 00 5F [FF 68 02] | キャラID:00がMonID 5Fを捕らえていなければ↓ |
FA 65 00 5F [FF 69 02] | キャラID:01がMonID 5Fを捕らえていなければ↓ |
FA B5 00 5F [FF 6A 02] | キャラID:02がMonID 5Fを捕らえていなければ↓ |
FA 05 01 5F [FF 6B 02] | キャラID:03がMonID 5Fを捕らえていなければ↓ |
FD 0C [FF 01 00] | フラグ$7E0A15 の bit4 = 1 で↓ |
[F0] | 終端 |
EA 07 | Stock:00 |
EC 07 | Stock:01 |
17 04 | Stock:02 |
1列目:もう渡してしまった「クッ クッ クッ…」
2~5列目:捕らえてはいるがお金がないケース
6~9列目:条件を満たしているケース
10列目:「カエルがほしいんじゃ」
11列目:終端
2~5列目:捕らえてはいるがお金がないケース
6~9列目:条件を満たしているケース
10列目:「カエルがほしいんじゃ」
11列目:終端
イベント命令表
見づらくて申し訳ないです。
(テキストにコピーした方が見やすいと思います)
(テキストにコピーした方が見やすいと思います)
制御コード<10>-<41> 用のサンプル画像

------------------------------------------------------------------------ 制御コード 実行アドレス 詳細 ------------------------------------------------------------------------ <00> ($C0:C98A) その場で動く (ジャンプ設定時など) <01> ($C0:C98A) 1 マス上へ移動 <02> ($C0:C98A) 1 マス右へ移動 <03> ($C0:C98A) 1 マス下へ移動 <04> ($C0:C98A) 1 マス左へ移動 <05> ($C0:C93A) 1 マスジャンプ [備考] <00> - <04> などを後ろに置く <06> ($C0:C944) 2 マスジャンプ [備考] <00> - <04> などを後ろに置く <07-08> -------- ------------------------ <09> ($C0:C94E) グラフィック表示オン <0A> ($C0:C958) グラフィック表示オフ <0B> ($C0:C960) 移動時グラフィック固定解除 <0C> ($C0:C96A) 移動時グラフィック固定 <0D-0F> -------- ------------------------ <10-41> ($C0:C96E) 各ポーズ(上のバッツ画像参照。一番左上が<10>その右が<11>と右に続く) <42-6F> -------- ------------------------ <70> $C0:BCCE 15 フレームウェイト (0.25 秒) <71> $C0:BCCE 30 フレームウェイト (0.50 秒) <72> $C0:BCCE 45 フレームウェイト (0.75 秒) <73> $C0:BCCE 60 フレームウェイト (1.00 秒) <74> $C0:BCCE 90 フレームウェイト (1.50 秒) <75> $C0:BCCE 120 フレームウェイト (2.00 秒) <76> $C0:C27C 移動速度 1 $7E:0AFA = 0x00 <77> $C0:C28A 移動速度 2 $7E:0AFA = 0x01 <78> $C0:C282 移動速度 1/2 $7E:0AFA = 0xFF <79> $C0:BA98 世界地図確認 <7A> $C0:BD0D 名前変更モード <7B> $C0:BAFF 乗り物にのる際の動作[?] <7C> $C0:C56F 時間経過イベントリセット $7E:0AFB = 0 ; タイマーカウント設定 $7E:0AFC(16b) = 0 ; タイマー <7D> $C0:C64B 色効果リセット $7E:0B46 = 0 ; 色値 $7E:0B44 = 0 ; 色値変化量 ; 正で減少 ; 負で増加 $7E:0B47 = $7E:0B48 ; 初期化 $7E:0B49 = $7E:0B4A ; 初期化 [備考] $7E:0B4C bit 0-4: 色の値 bit 5: 赤 bit 6: 緑 bit 7: 青 $00:212D = $7E:0B49 ; Subscreen Designation $00:2131 = $7E:0B47 ; Color Math Designation $00:2132 = ( ($7E:0B4C & 0xE0) | ($7E0B46 >> 3) ) ; Fixed Color Data <7E> $C0:C6A7 明度変化停止 $7E:0B43 = 0 <7F> $C0:BB24 乗物から降りる際の動作[?] <pp xx> $C0:C7F9 キャラクター動作制御 [pp: 0x80-0x9F] 対象キャラクター: pp - 0x80 <pp 00> $C0:C7DA その場に移動 (ジャンプ設定時など) <pp 01> $C0:C7DA 1 マス上へ移動 <pp 02> $C0:C7DA 1 マス右へ移動 <pp 03> $C0:C7DA 1 マス下へ移動 <pp 04> $C0:C7DA 1 マス左へ移動 <pp 05> $C0:C815 1 マスジャンプ設定 $7E:1488,Y = 0x40 $7E:1485,Y &= 0xFB <pp 06> $C0:C829 2 マスジャンプ設定 $7E:1488,Y = 0x80 $7E:1485,Y |= 0x04 <pp 07> $C0:C83B [??] $7E:1482,Y ^= 0x10 <pp 08> $C0:C84E [??] $7E:1484,Y ^= 0x10 <pp 09> $C0:C85D キャラクターを透明にする $7E:1485,Y |= 0x01 <pp 0A> $C0:C86E キャラクターを透明状態から戻す $7E:1485,Y &= 0xFE <pp 0B> $C0:C88A キャラクターの動作切り替え $7E:1485,Y ^= 0x08 $7E:147D,Y = 0x00 <pp 0C> $C0:C89E キャラクターの移動切り替え $7E:147E,Y ^= 0x04 $7E:147D,Y = 0x00 <pp 0D> $C0:C8B2 [??] $7E:1485,Y &= 0x3F <pp 0E> $C0:C8C0 [??] $7E:1485,Y &= 0x3F $7E:1485,Y |= 0x80 <pp 0F> $C0:C8D0 [??] $7E:1485,Y |= 0xC0 <pp 10-13(nn)> $C0:C8E0 動作スピード <pp 10>: 8 <pp 11>: 2 <pp 12>: 4 <pp 13>: 16 $7E:147E,Y &= 0xFC $7E:147E,Y |= nn - 0x10 <pp 14> $C0:C8F5 [??] $7E:1482,Y ^= 0x08 <pp 15> $C0:C903 [??] $7E:1484,Y ^= 0x08 <pp 16> $C0:C911 [??] $7E:1487,Y ^= 0x01 <pp 17> $C0:C91F [??] $7E:1487,Y ^= 0x02 <pp 18-1F> -------- ------------------------ <pp 20-FF> ($C0:C929) キャラクターのグラフィックパターン (対象によって微妙に異なるようです) <A0 xx> $C0:C735 メッセージ xx を表示 (条件分岐設定でストックしてあるもの) [メッセージ番号の格納アドレス] $7E:13D6- <A1 xx> $C0:BD1E お店 xx [xx: 0x00-0x3F] 0x3E, 0x3F は値引きになります <A2 xx> $C0:C758 イベントフラグ xx をオン [$7E:0A14-] [詳細] $7E:(0A14 + xx / 8) |= (1 << (xx & 7)) $7E:0A14 |= 0x01 (xx == 0x00) $7E:0A14 |= 0x02 (xx == 0x01) ... $7E:0A15 |= 0x01 (xx == 0x08) ... $7E:0A33 |= 0x80 (xx == 0xFF) <A3 xx> $C0:C77C イベントフラグ xx をオフ [$7E:0A14-] <A4 xx> $C0:C76A イベントフラグ xx をオン [$7E:0A34-] <A5 xx> $C0:C78E イベントフラグ xx をオフ [$7E:0A34-] <A6 xx> $C0:BAEF フラグ xx をオン [$7E:09B4-] [未使用?] <A7 xx> $C0:BAF7 フラグ xx をオフ [$7E:09B4-] [未使用?] <A8 xx> $C0:C04B 現在 HP 増減設定 [xx] bit 6-7: 対象 0x00: バッツ 0x40: レナ 0x80: ガラフ/クルル 0xC0: ファリス bit 5: 増減設定 0x00: 増加 0x20: 減少 bit 0-4: 変化量 0x00: 10 0x01: 20 0x02: 50 0x03: 100 0x04: 200 0x05: 500 0x06: 1000 0x07: 2000 0x08-0x1E: (アドレス範囲外) 0x1F: HP 全快 / HP 0 <A9 xx> $C0:C0E0 現在 MP 増減設定 [xx] bit 6-7: 対象 0x00: バッツ 0x40: レナ 0x80: ガラフ/クルル 0xC0: ファリス bit 5: 増減設定 0x00: 増加 0x20: 減少 bit 0-4: 変化量 0x00: 10 0x01: 20 0x02: 50 0x03: 100 0x04: 200 0x05: 500 0x06: 1000 0x07-0x1E: (アドレス範囲外) 0x1F: MP 全快 / (アドレス範囲外) <AA xx> $C0:BF92 アイテム xx を 1 つ入手 (99 個まで) <AB xx> $C0:BFC0 アイテム xx を 1 つ減らす (0 個の場合無変化) <AC xx> $C0:BC64 魔法入手フラグ xx をオン [$7E:0950-] (bit7->0) [詳細] $7E:(0950 + xx / 8) |= (0x80 >> (xx & 7)) $7E:0950 |= 0x80 (xx == 0x00) $7E:0950 |= 0x40 (xx == 0x01) ... $7E:0951 |= 0x80 (xx == 0x08) ... $7E:096F |= 0x01 (xx == 0xFF) <AD xx> $C0:BB4C 宿屋 [xx] 0x00: 10 ギル 0x01: 20 ギル 0x02: 30 ギル 0x03: 40 ギル 0x04: 50 ギル 0x05: 60 ギル 0x06: 70 ギル 0x07: 80 ギル 0x08-0xFF: (アドレス範囲外) <AE xx> $C0:BAE1 モザイク設定 $7E:16AA = xx ; モザイク値変化量 [0x00-0x0F] $7E:16AB = 0x1E00 ; モザイク値 <AF xx> $C0:BF07 ギル獲得 [xx] 0x00-0x7F: xx * 10 ギル 0x80-0xFF: (xx & 0x7F) * 1000 ギル <B0 xx> $C0:BF10 ギル減少 [xx] 0x00-0x7F: xx * 10 ギル 0x80-0xFF: (xx & 0x7F) * 1000 ギル <B1 xx> $C0:C6D4 主人公のグラフィック変更 $7E:0ADA = xx ; グラフィック番号 $7E:0BA1++ (=1) ; グラフィック転送フラグ <B2 xx> $C0:C70B xx フレームウェイト (xx/60 秒) [備考] xx == 0 の場合は 約 1092 秒 (?) <B3 xx> $C0:C71C xx / 4 秒ウェイト [備考] xx == 0 の場合は 約 16384 秒 (?) <B4 xx> $C0:C212 BGM を xx に変更 <B5 xx> $C0:C25A 効果音 xx を鳴らす <B6 xx> $C0:BAD9 特殊効果 [xx] 0xF0: エンディング 0xF1: タイトル画面 0xF2: 隕石落下[1] 0xF3: 隕石落下[1]追跡 0xF4: 隕石落下[2] 0xF5: 隕石落下[2]追跡 0xF6: 隕石落下[3] 0xF7: エクスデス復活時の演出 0xF8: エクスデス封印確認(?)の演出 0xF9: エクスデス封印時の演出 0xFA: 第二世界突入時の演出 0xFB: エンディング時の長老の樹への演出 <B7 xx> $C0:BE62 仲間加入/離脱設定 [xx] bit 7: 加入/離脱 0x00: 加入 0x80: 離脱 bit 3: 性別 0x00: 男性 0x08: 女性 bit 0-2: キャラクター 0x00: バッツ 0x01: レナ 0x02: ガラフ 0x03: ファリス 0x04: クルル <B8 xx> $C0:C67D 色調補正 / 加算 (2 回実行すると元の値に向けて変化する) [xx] bit 5-7: 色 0x20: 赤 0x40: 緑 0x80: 青 bit 3-4: 変化速度 0x00: 1 0x08: 2 0x10: 4 0x18: 4 bit 0-2: 制限値 0x00: 0x03 ... 0x06: 0x1B 0x07: 0x1F <B9 xx> $C0:C692 色調補正 / 減算 (2 回実行すると元の値に向けて変化する) [xx] bit 5-7: 色 0x20: Red 0x40: Green 0x80: Blue bit 3-4: 変化速度 0x00: 1 0x08: 2 0x10: 4 0x18: 4 bit 0-2: 制限値 0x00: 0x03 ... 0x06: 0x1B 0x07: 0x1F <BA xx yy> $C0:BFF1 キャラクター xx の状態異常 yy 以外を解除 [yy] ($7E:051A-) 0x01: 暗闇 0x02: ゾンビー 0x04: 猛毒 0x08: レビテト 0x10: ミニマム 0x20: 蛙 0x40: 石化 0x80: 戦闘不能 <BB xx yy> $C0:C00F キャラクター xx に状態異常 yy を付与 <BC xx yy> $C0:C02D キャラクター xx の状態異常 yy を反転 <BD xx yy> $C0:BD8D [xx] bit 7: 戦闘後の画面 0x00: 明るくする 0x80: 暗いまま bit 0-6: 固定戦闘 [yy] 背景設定 (0xFF でマップ指定の背景) <BE> $C0:C6C4 画面動作効果 bit 6-7: 周期 0x00: [oooo] ; 1 フレーム毎に 1 度 0x40: [oxox] ; 2 フレーム毎に 1 度 0x80: [ooxx] ; 4 フレーム毎に 2 度ずつ(?) 0xC0: [oxxx] ; 4 フレーム毎に 1 度 bit 4-5: 背景設定 0x00: 全て 0x10: レイヤー 1 0x20: レイヤー 2 0x30: レイヤー 3 bit 2-3: Y 方向変化量 0x00: 0 0x04: 1 0x08: 3 0x0C: 7 bit 0-1: X 方向変化量 0x00: 0 0x01: 1 0x02: 3 0x03: 7 <BF xx> $C0:A672 (分岐) <BF 00> $C0:B044 リセット <BF 01> $C0:B04C テレポ設定 <BF 02> $C0:B0A7 クリスタルが割れる演出 <BF 03> $C0:B6B0 ロンカ遺跡浮上 <BF 04> $C0:B259 バハムート出現による半島沈没 <BF 05> $C0:B185 バハムート出現 <BF 06> $C0:B548 ギードの祠沈没 <BF 07> $C0:AC37 次元の狭間エフェクト[入] <BF 08> $C0:AC4A 次元の狭間エフェクト[出] <BF 09> $C0:AC65 次元の狭間エフェクト <BF 0A> $C0:AC71 次元の狭間エフェクト <BF 0B> $C0:B5B1 ウォルスの塔沈没 <BF 0C> $C0:B834 ?? <BF 0D> $C0:B848 次元の狭間 / ワープ演出[出] <BF 0E> $C0:B83A 次元の狭間 / ワープ演出[入] <BF 0F> $C0:AC01 エンディング演出 (「無」が最初にあった…) <BF 10> $C0:AC1C 物知りじいさんの演出 <BF 11> $C0:B10B バハムート戦闘前の演出 <BF 12> $C0:AB65 カタパルトへの飛空艇着陸 <BF 13> $C0:AB49 カタパルトからの飛空艇離陸 <BF 14> $C0:A98B ムーアの大森林が燃やされる演出 <BF 15> $C0:A86D 火力船沈没 <BF 16> $C0:B052 クリスタルが元に戻る演出復活 <BF 17> $C0:B60E ロンカ遺跡落下(崩壊) <BF 18> $C0:A766 エクスデス城がバリアを張る演出 <BF 19> $C0:A7C9 エクスデス城のバリアを解除する演出 <BF 1A> $C0:A685 バリア演出[?] (未確認) <BF 1B-1F> $C0:0000 [予備] <C0 xx> $C0:BC6C 周囲に画面効果(円) [xx] bit 7: 設定 0x00: 半透明[?] 0x80: 不透明(黒)[?] bit 0-6: 半径 <C1 xx> $C0:C6CB グラフィック転送 [xx] 0x01: 爆発 0x02: クリスタルのかけら 0x03: 次元の狭間の演出のビリビリ 0x04: カタパルト開閉 0x05: 火力線沈没の際のグラフィック <C2 xx> $C0:C1AA 乗り物を非出現状態にする 0x01: ボコ 0x02: 黒チョコボ 0x03: 飛竜 0x04: 潜水艦 0x05: 船 0x06: 飛空艇 <C3 xx> $C0:C6AC 画面を明るくする xx: 明度変化量 ($7E:0B43 = xx) [備考] $7E:0B45 = 0x10 (初期明るさ設定) $00:2100 = ( $7E:0B45 >> 4 ) <C4 xx> $C0:C6B7 画面を暗くする xx: 明度変化量 ($7E:0B43 = (xx | 0x80)) [備考] $7E:0B45 = 0xF0 <C5 xx> $C0:C65A 画面発色 [xx] bit 5-7: 色 0x20: 赤 0x40: 緑 0x60: 黄 0x80: 青 0xA0: 紫[マゼンタ] 0xC0: 水色[シアン] 0xE0: 白 bit 0-4: 未使用 <C6 xx> $C0:BEE9 ジョブ取得フラグ xx をオン [$7E:0840-] (bit0->7) <C7 xx> ($C0:A270) 今後 xx バイトは同時に処理を行う [備考] キャラクターを複数同時に動かす場合に使います <C8 xx yy> $C0:C7A4 メッセージ yyxx を表示 [yyxx] bit 15: 位置 0x0000: 上 0x8000: 下 bit 0-14: メッセージ番号 <C9 xx yy> $C0:C1ED サウンド設定 <C9 08 0F>: BGM 復帰 <C9 48 0F>: BGM 復帰 <C9 68 0F>: BGM 復帰 など <CA xx yy> $C0:C9CE 出現フラグ yyxx をオン [$7E:0A54-] (bit0->7) <CB xx yy> $C0:C9E4 出現フラグ yyxx をオフ <CC> -------- ------------------------ <CD xx yy> ($C0:A292) サブイベント yyxx を実行 [備考] 多重実行は 8 回までできそうですが, <C7 xx>, <CE xx yy>, <CF xx yy> も同等の扱いになるので, 7 回以内にしておいた方がよさそうです。 <CE xx yy> ($C0:A288) 今後 yy バイトを xx 回処理する (順次) <CF xx yy> ($C0:A27C) 今後 yy バイトを xx 回処理する (同時) <D0 xx yy> $C0:BCB4 サウンド設定 <D0 F1 00> <D0 F2 00> <D0 82 40> などなど <D1 xx yy zz> $C0:C5FB 約 xx 秒後に, イベント zzyy を実行 (タイマーは表示されない) [備考] $7E:0AFB = 1 ; タイマー不可視 $7E:0AFC = xx * 60 + 1 ; タイマー $7E:0AFE = zzyy ; 実行イベント <D2 xx yy zz $C0:C1BB 乗り物配置設定 ww> [xx]: マップ 0x00: 第一世界 0x01: 第二世界 0x02: 第三世界 [yy]: X 座標 [zz]: Y 座標 [ww]: bit 5-7: 乗り物設定 0x20: ボコ 0x40: 黒チョコボ 0x60: 飛竜 0x80: 潜水艦 0xA0: 船 0xC0: 飛空艇 bit 2-4: 乗り物属性設定 0x00: ? 0x04: ボコ 0x08: 黒チョコボ 0x0C: 飛竜 0x10: 潜水艦 0x14: 船 0x18: 飛空艇 0x1C: ? bit 0-1: グラフィック設定 <D3 xx yy zz> $C0:C5C4 キャラクター(瞬間)移動設定 xx: bit 7: (未使用?) ; 区別するために 1 に設定されている模様 bit 0-6: キャラクター番号 yy: X 座標など bit 6-7: 向き bit 0-5: X 座標 zz: Y 座標 <D4 xx yy zz> $C0:C236 サウンド関連 <D5 xx yy zz> $C0:C266 サウンド関連 <D6 xx yy zz> $C0:C362 X, Y 座標固定フィールドマップ移動 [yyxx] bit 13: 座標補正設定 ? 0x0000: あり 0x2000: なし bit 0-12: 移動先マップ [zz]: 乗り物設定など bit 5-7: 乗り物 0x00: なし 0x20: ボコ 0x40: 黒チョコボ 0x60: 飛竜 0x80: 潜水艦 0xA0: 船 0xC0: 飛空艇 bit 2-4: 乗り物属性設定 0x00: (なし) 0x04: ボコ 0x08: 黒チョコボ 0x0C: 飛竜 0x10: 潜水艦 0x14: 船 0x18: 飛空艇 0x1C: ? bit 0-1: グラフィック設定 <D7 xx yy zz> $C0:C623 約 xx * 4 秒後に, イベント zzyy を実行 (タイマーが表示される) [備考] $7E:0AFB = 2 ; タイマー可視 $7E:0AFC = xx * 240 + 1 ; タイマー $7E:0AFE = zzyy ; 実行イベント <D8 xx yy> $C0:C57A キャラクター(瞬間)移動設定 [主人公の位置からの相対座標] [xx] bit 6-7: 向き bit 0-4: キャラクター番号 [yy] bit 7: X 座標補正 符号 bit 4-6: X 座標補正 bit 3: Y 座標補正 符号 bit 0-2: Y 座標補正 <D9 xx yy> $C0:BAA8 16 色パレット取得 xx: 変更する 16 色パレット番号 [0x00-0x0F] yy: 取得パレット [0x00-0x0F] ($DF:FE00-) <DA xx yy zz> $C0:B9EF 爆発エフェクト <C1 01> を実行しておく必要あり(?) [xx] bit 6-7: 消滅までの時間 [乱数取得幅] bit 3-5: ??? bit 0-2: X 座標の誤差? [乱数取得幅] [yy]: X 座標設定 (この 4 倍が大体の位置 ?) [zz]: Y 座標設定 (この 4 倍が大体の位置 ?) <DB> $C0:BA9E 生存しているキャラクター中で先頭の人の画像を取得する (ミニマム, 蛙も考慮) <DC xx> $C0:BCF5 デモメニュー xx: 0x00-0x07 <DD xx yy zz> $C0:B9E5 [値変更] $00:(0500 + yyxx) = xx [備考] ここの処理では DBR($00) の影響が出そうなので $00:____ で表記 <DE-DF> -------- ------------------------ <E0 mm nn $C0:C3D3 マップ移動 ( 暗くする -> 移動する -> 明るくする) xx yy zz> [nnmm] bit 15: マップ名表示設定 0x0000: なし 0x8000: あり bit 14: テレポ設定 0x0000: テレポ設定なし 0x4000: 移動元がフィールドの場合, テレポの移動先として設定 bit 13: 座標補正設定 ? 0x0000: なし 0x2000: あり bit 0-9: 移動先マップ [xx]: X 座標, 向き bit 0-7: X 座標 (移動先がフィールド) bit 6-7: 向き 0x00: 上 0x40: 右 0x80: 下 0xC0: 左 bit 0-5: X 座標 (移動先がマップ) [yy]: Y 座標 [zz]: 乗り物設定など bit 5-7: 乗り物 0x00: なし 0x20: ボコ 0x40: 黒チョコボ 0x60: 飛竜 0x80: 潜水艦 0xA0: 船 0xC0: 飛空艇 bit 2-4: 乗り物属性設定 0x00: (なし) 0x04: ボコ 0x08: 黒チョコボ 0x0C: 飛竜 0x10: 潜水艦 0x14: 船 0x18: 飛空艇 0x1C: ? bit 0-1: グラフィック設定 <E1 mm nn $C0:C3F7 (画面が暗い際の)マップ移動 ( -------- -> 移動する -> ----------) xx yy zz> <E2 xx yy $C0:BDBC 固定戦闘設定 [分岐] __ __ __ __> 勝利/退却の場合 __ __ __ __ の 4 バイトを飛ばす <E3 mm nn $C0:C418 マップ移動 ( 暗くする -> 移動する -> ----------) xx yy zz> 移動後, 画面が明るくなるまでにイベントを実行したい時など (?) しばしば <EA> などと合わせる <E4> $C0:B9D5 ファンファーレ終了待ち <E5> $C0:B9DD 効果音終了待ち(?) <E6> $C0:B9CF グレースケール変換処理 <E7> $C0:B991 エンディング用分岐 (n-1) * 4 バイト分ジャンプする 全員が死亡している場合は 252 バイト分ジャンプすると思われる [生存キャラ] [n] バッツ +1 レナ +2 クルル +4 ファリス +8 <E8 xx yy> $C0:BD36 エンディング用固定戦闘 [xx] bit 0-6: 固定戦闘番号 bit 7: 未使用 [yy] 背景設定 (0xFF でマップ指定の背景) <E9 xx> $C0:B8C8 キャラクターデータの入れ替え(?) エンディング途中にある戦闘の前に設定 <EA> $C0:B8A0 画面を明るくする + マップ名表示 (?) <EB> $C0:B8B7 画面を明るくする + ? ; イベント[00EC]のみ <EC-EF> -------- ------------------------ <F0 xx yy $C0:C2AF 選択肢会話 __ __ __ __> [yyxx] bit 15: 位置 0x0000: 上 0x8000: 下 (但し正常に表示できない) bit 0-14: メッセージ番号 [備考] いいえを選択した場合は __ __ __ __ の 4 バイトを飛ばす <F1 xx **> $C0:C292 確率分岐 (乱数判定は $C0:4F2B) [xx] 0x01: 2 種類に分岐 0x03: 4 種類に分岐 0x07: 8 種類に分岐 ... 0xFF: 256 種類に分岐 [備考/例] 4 バイト単位でジャンプする <F1 01> <CD xx yy FF> <CD xx yy FF> <F1 03> <CD xx yy FF> <CD xx yy FF> <CD xx yy FF> <CD xx yy FF> <F2> -------- ------------------------ <F3 xx yy YX $C0:C504 マップ変化 [絶対座標指定] **> [xx] bit 6-7: レイヤー設定 0x00: レイヤー 1 0x40: レイヤー 2 0x80: レイヤー 3 bit 0-5: X 座標 [yy] Y 座標 [**] (X+1) * (Y+1) バイト分の地形番号 <F4 xx yy YX $C0:C4E0 マップ変化 [相対座標指定] **> [xx] bit 6-7: レイヤー設定 0x00: レイヤー 1 0x40: レイヤー 2 0x80: レイヤー 3 bit 0-5: X 座標補正 [yy] Y 座標補正 [**] (X+1) * (Y+1) バイト分の地形番号 <F5-FE> -------- ------------------------ <FF> ($C0:A29C) 終端コード ------------------------------------------------------------------------
資料
効果音一覧
00 | 素手クリティカル? |
(略) | |
43 | 扉を開ける音 |
44 | ゴチゴチザフン ズガーン |
45 | 斬鉄剣 |
46 | メテオ |
47 | ブレイク |
48 | 呪文詠唱? |
49 | スカ音 |
4A | 津波? |
4B | 盾 |
4C | ?? |
(略) | |
B0 | 鳴き声系 |
B1- | (恐らく)未定義 |
FF5(SFC)とFF5Aコードとの対応表
FF5(SFC)とFF5Aとのイベントコードとの対応表です。
FF5(SFC)コード | FF5Aコード | 備考 |
-- | 00 | 効果音?? |
-- | 01 | 効果音?? |
-- | 02 | キャラのターンの効果音? |
-- | 03 | キャラのターンの効果音? |
-- | 04 | エクスデス戦のBGM? |
D0 xx yy | 05 xx yy | BGM調整 |
-- | 06 xx yy | ミュートとか? |
-- | 07 | ?? |
-- | 08 | ?? |
-- | 09 | BGM停止? |
10 | 0E | |
12 | 0F | |
14 | 10 | |
16 | 11 | |
?? | 12 | ?? |
01 | 13 | |
02 | 14 | |
03 | 15 | |
04 | 16 | |
05 | 17 | |
09 | 19 | |
0A | 1A | |
0B | 1B | |
0C | 1C | |
70 | 1D | |
71 | 1E | |
72 | 1F | |
73 | 20 | |
74 | 21 | |
75 | 22 | |
76 | 23 | |
77 | 24 | |
78 | 25 | |
79 | 26 | |
7A | 27 | 名前変更モード |
7B | 28 | |
7C | 29 | タイマーリセット |
7D | 2A | 画面効果リセット |
7E | 2B | |
7F | 2C | |
A0 xx | 2D xx? | |
A1 xx | 2E xx? | |
A2 xx | 2F xx? | イベントフラグ[0]xxを1にする。 |
A3 xx | 30 xx? | イベントフラグ[0]xxを0にする。 |
A4 xx | 31 xx? | イベントフラグ[1]xxを1にする。 |
A5 xx | 32 xx? | イベントフラグ[1]xxを0にする。 |
-- | 33 xx | イベントフラグ[2]xxを1にする。 |
-- | 34 xx | イベントフラグ[2]xxを0にする。 |
AA xx | 39 xx yy | アイテム増加 |
B2 xx | 41 xx | ? |
B4 xx | 43 xx | BGM |
B5 xx | 48 xx | 効果音 |
B9 XX | 4D xx yy zz | ※画面効果 |
BD xx yy | 52 xx xx yy | ※戦闘 |
BE XX | 53 xx yy zz ww | ※画面動作効果 |
BF xx | 54 xx | 特別アニメーション等 |
C3 xx | 58 xx | |
C4 xx | 59 xx | |
C5 xx | 5A xx | |
C6 xx | 5B xx | ジョブフラグ |
C8 xx yy | 5C xx yy | メッセージ表示 |
CA xx yy | 5F xx yy | 人物フラグyyxxを1にする |
CB xx yy | 60 xx yy | 人物フラグyyxを0にする |
CD xx yy | 61 xx yy | サブイベントyyxx |
CE XX YY | 62 xx yy yy zz zz | 相対アドレスyyyy-zzzzまでの動作をxx回行う |
CF XX YY | 63 xx yy yy zz zz | 相対アドレスyyyy-zzzzまでの動作をxx回(同時に)行う |
D1 xx yy zz | 65 xx yy zz | |
E0 aa bb XX YY cc | 69... | |
E1 aa bb XX YY cc | 6A... | |
E3 aa bb XX YY cc | 6B... | |
E4 | 6C | |
E5 | 6D | |
F0 xx yy | 73 xx yy | ※仕様が違う |
F1 xx | 74 xx | 確率分岐 |
F3 ... | 75 ... | ※仕様が違う |
F4 xx yy zz ww | 76 xx yy zz ?? ?? ww | ? |
FF | 77 | 終端 |
11 | 78 | 上,左足踏み込み |
13 | 79 | 右,踏み込み |
15 | 7A | 下,左足踏み込み |
17 | 7B | 左,踏み込み |
7C | 右手万歳 | |
7D | 右手上げる | |
26 | 82 | |
28 | 84 | |
34 | 90 | 流されポーズ(┐) |
35 | 91 | 流されポーズ(┌) |
36 | 92 | 笑いポーズ |
37 | 93 | 笑いポーズ2 |
38 | 94 | 下,踏ん張り |
39 | 95 | 両手万歳 |
3A | 96 | ビックリポーズ |
3C | 97 | 下,気張り口開け |
3D | 98 | 上,両手上げ |
3E | 99 | 上,両手つかみ |
3F | 9A | 下,首振り左 |
40 | 9B | 下,首振り右 |
D3 8x yy zz | 9D 8x zz ww aa | ※仕様が違う |
D7 xx yy zz | A1 xx yy zz | 制限時間イベント |
D9 xx yy | A3 xx yy | アニメーションyyxx |
DA XX YY ZZ | A4 xx yy zz ww aa | |
8x ?? | A6 8x | 1秒ポーズ |
8x 01 | A7 8x | キャラ8xを上へ |
8x 02 | A8 8x | キャラ8xを右へ |
8x 03 | A9 8x | キャラ8xを下へ |
8x 04 | AA 8x | キャラ8xを左へ |
8x 20 | AB(AC)8x | キャラ8xを上向きへ |
8x 21 | AD 8x | キャラ8xを上で固める |
8x 22 | AE(AF)8x | キャラ8xを右向きへ |
8x 24 | B0(B1)8x | キャラ8xを下向きへ |
8x 26 | B2(B3)8x | キャラ8xを左向きへ |
8x 05 | B4 8x | キャラ8xを1マスジャンプ(その後の動作) |
B5 8x | キャラ8xを2マスジャンプ(その後の動作) | |
B6 8x | ?? | |
B7 8x | ?? | |
8x 09 | B8 8x | キャラ8xを出現 |
8x 0A | B9 8x | キャラ8xを消す? |
8x 0B | BB 8x | キャラ8xの動作を固定 |
8x 23 | ?? 8x | キャラ8xを右で固める |
8x 25 | ?? 8x | キャラ8xを下で固める |
8x 27 | ?? 8x | キャラ8xを左で固める |
8x 28 | ?? 8x | キャラ8xを上下に振り向かす |
8x 30 | ?? 8x | 下,右手万歳 |
8x 31 | ?? 8x | 下,右手万歳 |
8x 32 | ?? 8x | 下,右手アチャー |
8x 33 | ?? 8x | 下,左手万歳 |
8x 34 | ?? 8x | 下,左手万歳 |
8x 35 | ?? 8x | 下,左手アチャー |
8x 36 | ?? 8x | 上,右手上げる |
8x 37 | ?? 8x | 上,右手上げる2 |
8x 38 | ?? 8x | 上,左手上げる |
8x 39 | ?? 8x | 猛ダッシュ |
8x 3A | ?? 8x | 左万歳 |
8x 3B | ?? 8x | 左戻す |
8x 3C | ?? 8x | 右万歳 |
8x 3D | ?? 8x | 右戻す |
8x 3E | DF 8x | 下落胆 |
8x 3F | E0 8x | 上落胆 |
8x 40 | E1 8x | 下落胆 |
8x 41 | E2 8x | 右落胆 |
8x 42 | E3 8x | 死亡 |
8x 43 | E4 8x | ?? |
8x 44 | E5 8x | 意味不明ポーズ |
8x 45 | E6 8x | ?? |
8x 46 | E7 8x | 下笑 |
8x 47 | E8 8x | 下大笑い |
8x 48 | E9 8x | 下ふんばり |
8x 49 | EA 8x | 下万歳 |
8x 4A | EB 8x | 下びっくり |
-- | FB xx yy zz | 暗黒魔法xxを取得していた場合は次のイベントyyzzを実行 |
添付ファイル