タイルセット

Last-modified: 2018-12-08 (土) 18:31:04

基礎知識

タイルセットは一つのマップにブロック0x27Fまでの第1部と0x280以降の第2部の二種類が設定されている。
第1部はあらゆるマップで使用する汎用的なタイルが揃った基本のタイルセット、第2部は特定のマップでのみ使用する拡張タイルセットとなっている。
第1部と第2部どちら用なのかはタイルセット毎に設定されており、この設定と逆に使用する事はできない。
(素FRではタイルセット0(汎用屋外)とタイルセット12(汎用屋内)だけが第1部で使用できる)

第1部と第2部の使用範囲

第1部第2部
FRLGRSEFRLGRSE
ブロック数640固定
(0x0~0x27F)
512固定
(0x0~0x1FF)
384まで
(0x280~0x3FF)
512まで
(0x200~0x3FF)
タイルセット128px*320px固定
(0x0~0x27F)
128px*256px固定
(0x0~0x1FF)
128px*192pxまで
(0x280~0x3FF)
128px*256pxまで
(0x200~0x3FF)
パレットパレット0~6
(0~111番)
パレット7~15
(112~255番)

※0x3DC~0x3FFはショップUIで上書きされる
※0x3F8~0x3FFはドアアニメで上書きされる
※パレット13~15はセリフ枠パレットで上書きされる為使用不可

タイルセット設定データ

0x298B44から開始 1タイルセット0x18byte

0x00画像の圧縮設定(1byte)00:未圧縮形式/01:圧縮形式
0x01パレット読み込み設定(1byte)00:第1部(0~111番)/01:第2部(112~255番)
0x02不明値0x00固定
0x03
0x04画像ポインタ(4byte)圧縮/未圧縮画像のアドレス
0x08パレットポインタ(4byte)未圧縮256色パレットのアドレス
0x0Cブロック画像設定ポインタ(4byte)後述するブロック画像設定データのアドレス
0x10アニメーションタイル設定ポインタ(4byte)使用しない場合は0x00000000
0x14ブロック動作設定ポインタ(4byte)後述するブロック動作設定データのアドレス

画像

画像圧縮設定で圧縮/未圧縮形式の選択が可能でどちらの形式でも使用できるが、
未圧縮画像は圧縮画像と比較して画像容量が桁違いに大きくなってしまうので基本的には圧縮形式のみ使用する。
(素FRではタイルセット18(通信部屋)のみ未圧縮画像が使用されている)

パレット

パレットは256色未圧縮パレットだがパレット読み込み設定よって参照されるパレットが異なる。
第1部の場合はパレット0~6、第2部の場合はパレット7~15(実質7~12まで)だけが読み込まれ、それ以外のパレットが使用される事は無い。

ブロック画像設定データ

AMのブロックエディタで設定可能。
1ブロック0x10byte

0x0下位左上のタイルNo上位4bitでパレット設定。+0000:パレット0/+1000:パレット1/+2000:パレット2…
下位4bitで反転設定。+400:X反転/+800:Y反転/+C00:XY反転
0x2下位右上のタイルNo
0x4下位左下のタイルNo
0x6下位右下のタイルNo
0x8上位左上のタイルNo
0xA上位右上のタイルNo
0xC上位左下のタイルNo
0xE上位右下のタイルNo

ブロック動作設定データ

AMのブロックエディタで設定可能。
1ブロック0x4byte

0x0タイルアクション通過時の効果やメッセージの表示設定。タイルアクション参照
0x1属性フィールド秘伝技の実行判定に影響する。草むら:0x02/水上:0x04/滝:0x06(滝は設定しなくても動作には影響ない?)
0x2不明値0x00固定
0x3野生出現/描写レイヤー指定00:下BG2・上BG1/20:下BG3・上BG2/40:下BG3・上BG1
+1:野生出現(草むら)/+2:野生出現(水上)

タイルセット設定アドレス一覧

Noアドレス
00x298B44
10x298B5C
20x298B74
30x298B8C
40x298BA4
50x298BBC
60x298BD4
70x298BEC
80x298C04
90x298C1C
100x298C34
110x298C4C
120x298C64
130x298C7C
140x298C94
150x298CAC
160x298CC4
170x298CDC
180x298CF4
190x298D0C
200x298D24
210x298D3C
220x298D54
230x298D6C
240x298D84
250x298D9C
260x298DB4
270x298DCC
280x298DE4
290x298DFC
300x298E14
310x298E2C
320x298E44
330x298E5C
340x298E74
350x298E8C
360x298EA4
370x298EBC
380x298ED4
390x298EEC
400x298F04
410x298F1C
420x298F34
430x298F4C
440x298F64
450x298F7C
460x298F94
470x298FAC
480x298FC4
490x298FDC
500x298FF4
510x29900C
520x299024
530x29903C
540x299054
550x29906C
560x299084
570x29909C
580x2990B4
590x2990CC
600x2990E4
610x2990FC
620x299114
630x29912C
640x299144
650x29915C
660x299174
670x29918C

新規タイルセットの追加

FRには未使用の没タイルセットが16/24/33/35/39/55/56の7種存在しているので潰して再利用する事ができる。
それ以上追加したい場合はタイルセット設定データを追加する必要がある。

タイルセットの設定データは0x298B44から連なっているがこのデータ群はテーブルではない。
マップフッターデータを確認すると分かるように実際にはタイルセット設定データのオフセットが直接指定されており、
AMのタイルセット番号はデータの始点の0x298B44を基準に算出されたAM独自の概念でゲーム上には存在しない。
その為テーブルの移動/拡張といった特別な作業は必要なく、任意の空き領域に新しく作成したタイルセット設定データを配置し、マップフッターデータのポインタで指定する事で自由に新規タイルセットを使用できる。
AMを使用する場合はタイルセット番号算出の関係上、0x18byteの倍数のオフセットに配置しないとアドレスがズレて保存されてしまうので注意。