基礎知識
タイルセットは一つのマップにブロック0x27Fまでの第1部と0x280以降の第2部の二種類が設定されている。
第1部はあらゆるマップで使用する汎用的なタイルが揃った基本のタイルセット、第2部は特定のマップでのみ使用する拡張タイルセットとなっている。
第1部と第2部どちら用なのかはタイルセット毎に設定されており、この設定と逆に使用する事はできない。
(素FRではタイルセット0(汎用屋外)とタイルセット12(汎用屋内)だけが第1部で使用できる)
第1部と第2部の使用範囲
第1部 | 第2部 | |||
FRLG | RSE | FRLG | RSE | |
ブロック数 | 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 | アドレス |
0 | 0x298B44 |
1 | 0x298B5C |
2 | 0x298B74 |
3 | 0x298B8C |
4 | 0x298BA4 |
5 | 0x298BBC |
6 | 0x298BD4 |
7 | 0x298BEC |
8 | 0x298C04 |
9 | 0x298C1C |
10 | 0x298C34 |
11 | 0x298C4C |
12 | 0x298C64 |
13 | 0x298C7C |
14 | 0x298C94 |
15 | 0x298CAC |
16 | 0x298CC4 |
17 | 0x298CDC |
18 | 0x298CF4 |
19 | 0x298D0C |
20 | 0x298D24 |
21 | 0x298D3C |
22 | 0x298D54 |
23 | 0x298D6C |
24 | 0x298D84 |
25 | 0x298D9C |
26 | 0x298DB4 |
27 | 0x298DCC |
28 | 0x298DE4 |
29 | 0x298DFC |
30 | 0x298E14 |
31 | 0x298E2C |
32 | 0x298E44 |
33 | 0x298E5C |
34 | 0x298E74 |
35 | 0x298E8C |
36 | 0x298EA4 |
37 | 0x298EBC |
38 | 0x298ED4 |
39 | 0x298EEC |
40 | 0x298F04 |
41 | 0x298F1C |
42 | 0x298F34 |
43 | 0x298F4C |
44 | 0x298F64 |
45 | 0x298F7C |
46 | 0x298F94 |
47 | 0x298FAC |
48 | 0x298FC4 |
49 | 0x298FDC |
50 | 0x298FF4 |
51 | 0x29900C |
52 | 0x299024 |
53 | 0x29903C |
54 | 0x299054 |
55 | 0x29906C |
56 | 0x299084 |
57 | 0x29909C |
58 | 0x2990B4 |
59 | 0x2990CC |
60 | 0x2990E4 |
61 | 0x2990FC |
62 | 0x299114 |
63 | 0x29912C |
64 | 0x299144 |
65 | 0x29915C |
66 | 0x299174 |
67 | 0x29918C |
新規タイルセットの追加
FRには未使用の没タイルセットが16/24/33/35/39/55/56の7種存在しているので潰して再利用する事ができる。
それ以上追加したい場合はタイルセット設定データを追加する必要がある。
タイルセットの設定データは0x298B44から連なっているがこのデータ群はテーブルではない。
マップフッターデータを確認すると分かるように実際にはタイルセット設定データのオフセットが直接指定されており、
AMのタイルセット番号はデータの始点の0x298B44を基準に算出されたAM独自の概念でゲーム上には存在しない。
その為テーブルの移動/拡張といった特別な作業は必要なく、任意の空き領域に新しく作成したタイルセット設定データを配置し、マップフッターデータのポインタで指定する事で自由に新規タイルセットを使用できる。
AMを使用する場合はタイルセット番号算出の関係上、0x18byteの倍数のオフセットに配置しないとアドレスがズレて保存されてしまうので注意。