|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|

解析データ/イベント関連


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

4**判明しているイベントコード

0x0A0000-0x0CE5FF   イベントデータ

●キャライベントと通常イベント(仮称)
イベントデータは、大きく上記の2つに分けることができる。
 ・キャライベント:特定のキャラのパレット変更や移動などに使用
 ・通常イベント:戦闘や会話、画面エフェクトなどキャラを指定しないイベントに使用
データは、このキャライベントと通常イベントがごちゃごちゃに混じり合っている。

●キャライベントの基本構成
キャライベントは、原則として「xx 8y .... FF」のパターンで構成されている。
 xx : キャラ番号の指定
    0x:主人公キャラ 10~:イベントキャラ 31~34:パーティーのキャラ
    (少なくとも37以降は命令コードなのでキャラ番号ではない)
 8y : キャライベントの長さを指定(y番目に必ずFFが来る)
    FF6では81=+1のような使われ方をすることが多い。
    90(=+16)以降も使用可能
    8yを0yにする場合、他のイベントと並列処理扱いになる。
 FF : キャライベントの終了

それ以外が通常イベントになる。
通常イベントとキャライベントで、コードの意味がまったく異なってくる。例えば、91というコードは通常イベントではウェイトだが、キャライベントでは右に5歩だけ移動という命令になる。

●キャライベントのコード
00(?)~ : パレットの変更(1サイズ命令。コードに対応するパレットに変更)
80~ : キャラの移動
      80:上に1歩 81:右に1歩 82:下に1歩 83:左に1歩
      84:上に2歩 88:上に3歩 8C:上に4歩 90:上に5歩
Cx(x=C~F) : 向きを変える(CC:上 CD:右 CE:下 CF:左)
C0 キャラ移動速度4分の1 (イベント内)
C1 キャラ移動速度半減 (イベント内)
C2 キャラ移動速度通常
C3 キャラ移動速度2倍
C4 キャラ移動速度4倍
C6 キャラ移動時アニメーション動作
C7 キャラ移動時アニメーション停止
D1 キャラクターを消す
D5 xx yy キャラをxxyyに移動
DC キャラを小さくジャンプ
DD キャラを大きくジャンプ
E0 xx XXユニット時間ウェイト


●通常イベントのコード

37 xx yy    キャラ番号XXの座標をキャラ番号YYと入れ替える
        (パレットは変わらないので43 xx yyを併用する)
38       画面を固定、操作不可にする
39       画面固定を解除、操作可能にする
3E xx     キャラ番号XXのキャラを消す(姿が消え、パーティからも外れる)
3F xx yy   不明 パーティ切り替え関連?
40 XX YY   キャラ番号xxのキャラクターデータ(パラメータや戦闘コマンド)を
       キャラ番号YYのものに置き換える。
       (正確にはYY*16h+2D7CA2から22バイト)
42 xx     キャラ番号xxの姿を消す(メニューの開閉などで元に戻る)
43 xx yy  キャラ番号xxのパレットをyy番に変更する。
4B YY XX  会話番号XXYYを呼び出し
     6XYY   上部に直接表示
     8XYY   吹き出しの中に表示
     cXYY   下部に直接表示(主人公の紹介時など)
4D XX YY   戦闘に入る
       (イベントバトル番号XXの敵パーティになる。YYで戦闘背景指定)
50 XX   画面の明るさを変える
     XXのbit6がセットされていると明るくなり、されていないと暗くなる。詳細不明。
55 XX   画面フラッシュ(回復の泉など)
     XXの値によってフラッシュの色が変化する
     Bit0-Bit3:効果なし?
     Bit4:赤 Bit5:緑 Bit6:青
     Bit4-6は光の3原色に対応しており、例えばBit4と5が同時に立った状態
    (60など)だとフラッシュ時の色は黄色になる。
58 XX  画面を揺らす(洞窟の入口を開けたときなどに使用) XXは不明
59 xx  画面暗転解除 xx=暗転速度
5A xx  画面暗転 xx=暗転速度
61 xx yy zz カラーパレットの色のうち(マップでは128色使っている)
        YY番からZZ番まででXXの色成分を強調する。
        XX : 0x01=赤 0x02=緑 0x04=青
62 xx  画面にモザイク効果をかける xx=モザイク速度
6A xx yy aa bb cc      マップyyxxの座標(aa,bb)に移動。ccは不明。
74 XX YY AA BB DATA~    座標XX*YYからAA*BB個のタイルをDATA部の
                番号のタイルに置き換える
                隠し通路やギミックなどに使用。(73でもほぼ同じ働き)
                このコードを2回連続で使用すると1回目がレイヤー1、
                2回目がレイヤー2に対して実行される。
7F XX YY   キャラ番号XXのキャラクターの名前をYY*6+478C0から6バイトの
       文字列に置き換える。
       (つまりXX番のキャラ名をYY番のキャラ名に置き換える)
80 XX     アイテム入手(XX=アイテム番号)
85 XX YY   所持金をYYXXギル減らす
86 XX     魔石入手(XX=魔石番号)
87 XX     魔石を手放す(XX=魔石番号)
88 xx yy zz  番号xxのキャラ(31~34がパーティキャラ)のステータスを
        yy zzに従って解除する。
        xx:0x01=暗闇 0x02=ゾンビ 0x04=毒 0x10=透明 
          0x20=カッパ 0x40=石 0x80=戦闘不能
        yy:0x40=レビテト
        各bitが立っていると解除しない。
8A      移動停止
8B xx yy   番号xxのキャラ(31~34がパーティキャラ)のHPを最大HPの
       yy/7Fだけ回復
8C xx yy   番号xxのキャラ(31~34がパーティキャラ)のMPを最大MPの
       yy/7Fだけ回復
8D xx     番号xxのキャラの装備を全て解除する。
91      15/60秒間ポーズ
92      30/60秒間ポーズ
93      45/60秒間ポーズ
94      60/60秒間ポーズ
95      120/60秒間ポーズ
96      画面を更新する
9B xx     番号xx(店番号)の店の販売画面に入る
9D      ラストバトル直前のパーティ編成画面に入る
A1 XX    アドレス1188+XXから6バイトの値を00で埋める(詳細不明)
A9      タイトル画面を表示
B0 XX ~ B1    繰り返し処理
           ~のコマンドをXX回繰り返す
           B1が繰り返すコマンドの終点
B2 ZZ YY 0X    アドレス A0000+0XYYZZへジャンプ(X=0~3)
        例)8F E4 02(CE48Fでパーティ全員のHP,MPを全回復)
B6       会話中の選択肢の区切りに対応した分岐処理コード
BD xx yy zz    メモリアドレス1F6Dの値を1増やした後、1F6Dの値
           +C0FD00の値が80h以上の場合にZZYYXX+A0000に
           ジャンプする
           1F6Dの初期値は乱数で生成されるらしく、ロード
           するたびに異なる
           C0FD00~C0FDFFは乱数テーブル
A0 xx yy zz aa bb    時間yyxxのカウントダウン開始(単位は1/60秒)
             60 54なら5460h=21600x1/60秒=360秒=6分
             aa bbは不明(カウントが0になった時のジャンプ先?)
             ちなみにカウント中の時間はメモリの1189-118Aに
             格納される
C0 XX YY AA BB 0C   YYXXの下位3ビットをビット番号(BIT0-7)とし、
             上位6ビットの値+1E80のアドレスでそのビットが
             立っていればオフセットCBBAA+A0000にジャンプ
             正確には(YYXXの値 AND 32767)の上位12ビットの
             値+1E80になる
             そのため、メモリのかなり広い範囲に対して使用可能
             である。(理論上は最大で2E7Fまで適用可能)
D2 XX    イベントフラグをセットする(1EA0+XX)
       1EA0+(XXの上位5ビット)のbit(XXの下位3ビット)をセット
D4 XX    イベントフラグをセットする
       1EC0+(XXの上位5ビット)のbit(XXの下位3ビット)をセット
       例 D4 43
         43 = 1000011
         01000 = 8 → 1EC0+8=1EC8
         011 = 3 → bit3(0x08)
         よってアドレス1EC8のbit3がセットされる。
D5 XX    イベントフラグをクリアする
       1EC0+(XXの上位5ビット)のbit(XXの下位3ビット)をクリアする
EA XX YY  フラグXXの値をYYだけ減らす
EB XX YY 00 ** ** 01 xx yy 0z 02 ** **
      フラグチェック
      XXの値*2+7E1FC2がそのフラグのアドレス
      00以下の2バイト不明
      フラグの値がYYなら02以下を実行
      違うなら01以下の3バイト+A0000をアドレスとしてジャンプ
F0 XX   音楽変更(XX=音楽番号)
F4 XX   効果音を鳴らす
      96:スイッチ音
      E9:回復の泉
      BB:洞窟を開く音
      E7:無音
F7     音楽演奏パターン変更(SPCでFC XX YY で指定された先に
     ジャンプする 魔列車などで使用)
FE    イベント終了

会話データについて

0x0CE602-0x0CFE56  会話データオフセット[size:2]

オフセットの値+0D0000 が会話データ文字列のオフセットになる。
会話番号71D以降は、オフセットの値+0E0000になる。
プラスする値(+0D0000と+0E0000)の境目となる会話番号は
0x0CE600-0x0CE601 の2バイトで指定されている。

例)ゲーム開始直後・炭坑都市ナルシェ
 ガード「帝国の魔導アーマー!?とうとうこのナルシェにまで!

この会話番号は00Dであり、会話データオフセットは0CE61Cにある。
その値は 67 02 なので 0267 + 0D0000 = 0D0267 からこの会話
データ文字列がある。
(この事から、会話を含むイベントの格納場所、会話番号、会話オフセット、会話データ文字列のうちどれかが分かれば、全てが逆算で導ける。)
メニュー
トップページ

Final Fantasy I


Final Fantasy III


Final Fantasy IV


Final Fantasy V


Final Fantasy VI


編集用



最新の10件

取得中です。


total -
today -
yesterday -