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

魔法グラフィックについて

0x107F8F~ 魔法グラフィックデータ
1つの魔法につき14バイトで設定
Byte
00 01   エフェクト1の番号(000から2FFまで、FFFFでエフェクト無し)
02 03   エフェクト2の番号(同上)
04 05   エフェクト3の番号(同上)
06     エフェクト1のパレット
07     エフェクト2のパレット
08     エフェクト3のパレット
09     効果音
10     不明(召喚魔法の場合、召喚獣のグラフィックを設定)
11 12   不明
13     ウェイト
このうち、エフェクトの番号はエフェクトプロパティとエフェクト制御コードの
両方を指定している。
例:ファイア(107F8F-107F9C)
C1 00 FF FF FF FF 38 00 00 16 25 FF FF 10
C1 00   エフェクト1=0C1
FF FF   エフェクト2無し
FF FF   エフェクト3無し
38     エフェクト1パレット=38
00     エフェクト2パレット=00(無し)
00     エフェクト3パレット=00(無し)
16     効果音16
25     ??
FF FF   ??
10     ウェイト10

0x14D000~ エフェクトプロパティ
1つのエフェクトにつき6バイト
(エフェクト番号を6倍して+14D000)
Byte
00     アニメーションのコマ数(00~3Fの範囲で設定)
01     使用する画像チップセット番号
02 03   アニメーションパターン
      (画像チップの並べ方を設定)
04     エフェクトの横幅(00~10、10で画面いっぱい)
05     エフェクトの縦幅(00~10、10で画面いっぱい)
例:エフェクト0C1(14D486-14D48B)
05 1C 4A 03 02 03
05     コマ数5
1C     チップセット番号1C
4A 03   アニメーションパターン34A
02     横02
03     縦03

0x120000~ 画像チップポインタ
(エフェクト3のみ0x12C000~)
画像チップセット番号を64倍(40h)して+120000(エフェクト3の場合のみ+12C000)
ポインタデータの長さはエフェクト1と2の場合は160バイト、エフェクト3だと128バイト
ポインタは2バイト単位
例:チップセット番号1Cの場合
1C*40+120000=120700
がポインタ

  • エフェクト1と2の場合
0x130000~ エフェクト1及び2の画像データ
ポインタの値を24倍(18h)して+130000した値が画像データのオフセット
例:50 02(上記の例より、120700の値)
ポインタの値は250なので、250*18=3780
3780+130000=133780
から画像データ
画像データの長さは24バイトで、メモリアドレス7FE400から展開
先頭から16バイトはそのままメモリにコピーし、残り8バイトは間に00を挟む
例:6D FF F9 EF FD 6F ED FF EE F9 2F 7D FF ED FB ED 
  EE AB EF FF FA BF FF FF
の場合、メモリに展開されるデータは
  6D FF F9 EF FD 6F ED FF EE F9 2F 7D FF ED FB ED
  EE 00 AB 00 EF 00 FF 00 FA 00 BF 00 FF 00 FF 00
となる。

  • エフェクト3の場合
0x187000~ エフェクト3の画像データ
ポインタの値を16倍(10h)して+187000した値が画像データのオフセット
例:46 04
ポインタの値は446なので、446*10=4460
4460+187000=18B460
から画像データ
展開するメモリアドレスは7FE400からでエフェクト1・2と同じだが、
エフェクト3の場合は16バイトデータなので、そのままコピーされる。

0x14DF36~ アニメーションパターンオフセット
エフェクトプロパティのアニメーションパターンの値を2倍して+14DF36
この値を基にアニメーションパターンの記載位置が決まる。
読み込む長さはエフェクトプロパティの「アニメーションコマ数」の値x2
(1つのポインタにつき1コマ分であるため)
例:4A 03(エフェクト0C1より、ファイアの炎)
値は34Aなので、オフセットは34A*2+14DF36=14E5CA
エフェクト0C1のアニメーションコマ数は5なので、データ長は5x2=10バイト 
14E5CAから10バイト
E9 26 EB 26 F7 26 03 27 09 27

0x110000~ アニメーションパターン
アニメーションパターンオフセットに記載された値(上記の例なら14E5CAの値)
に+110000した値が開始地点となる。
2バイト単位でチップの座標、チップの番号の順に並んでいる。
記述法則は以下の通り

まずエフェクトプロパティの横幅、縦幅の値を基にして格子を作る
例:エフェクトC1の場合は横02x縦03なので、座標は
  00     10  
  01     11  
  02     12  
となる。
これに基づいてチップの配置を記述する
基本的に00→10→01→11→02→12の順でチップを配置する
例えば、
00 09 10 0A 01 0B 11 0C 02 0D 12 0E の場合、
配置は
  09     0A  
  0B     0C  
  0D     0E  
となる。これで1コマ
座標が末尾まで達するか、10→00のように前の座標を指定すると終了

例:エフェクト0C1
上記の例から、ポインタは
E9 26 EB 26 F7 26 03 27 09 27
よって各コマ毎のデータオフセットは
1126E9(12 08)
1126EB(00 09 10 0A 01 0B 11 0C 02 0D 12 0E)
1126F7(00 10 10 11 01 12 11 13 02 14 12 15)
112703(10 17 11 0F 02 08)
112709(11 16 02 16)
となる。

上の例を座標に基づいて並べると
  無     無  
  無     無  
  無     08  
  09     0A  
  0B     0C  
  0D     0E  
  10     11  
  12     13  
  14     15  
  無     17  
  無     0F  
  08     無  
  無     無  
  無     16  
  16     無  
となる
これらを動かして
となる。(実際にはさらにこれを右から左に3回再生している)

0x11EAD8~        エフェクト制御コードポインタ
0x100000~0x1097FF    エフェクト制御コード
魔法グラフィックデータのエフェクト番号を2倍して+100000した値が
制御コードのオフセット
例:エフェクト0C1
C1*2+11EAD8=11EC5A
11EC5Aもの値は 2A 5Dなので
5D2A+100000=105D2Aからが制御コードの位置
制御コードの詳細は殆ど不明
C9 xx 効果音を鳴らす(魔法グラフィックで設定したものより優先する。00でなし)
8B xx アニメーションパターンのうち、XXコマ目までを使用する(00から)
89 xx xx単位時間ポーズ

メニュー
トップページ

Final Fantasy I


Final Fantasy III


Final Fantasy IV


Final Fantasy V


Final Fantasy VI


編集用



最新の10件

取得中です。


total -
today -
yesterday -