最終更新:ID:Z4mHMkTkeg 2012年10月12日(金) 21:24:14履歴
これには公式があって、10進数で表すと、
タイルセット番号 = ( タイルセットのヘッダオフセット - タイルセット0のヘッダオフセット ) / 24
となります。
16進数だと、
タイルセット番号 = ( タイルセットのヘッダオフセット - タイルセット0のヘッダオフセット ) / 18
だから注意してね。
今回は「$9158E0」のあたりに空きスペースを見つけたので、それを使って計算したいと思います。
あ、そうそう。日本語版エメラルドのタイルセット0のヘッダオフセットは「$3B7B24」にあるらしい。
これを公式に代入して...
タイルセット番号 = ( $9158E0 - $3B7B24 ) / 24 = $393E7
これを10進数に変換して、「234471」が今回のタイルセット番号です!!!
と言いたいところですが、奇数はいけないらしいのです。と言うことでですね、「1」を足すんですよ。
その結果タイルセット番号は「234472」になります。
タイルセット番号 = ( タイルセットのヘッダオフセット - タイルセット0のヘッダオフセット ) / 24
となります。
16進数だと、
タイルセット番号 = ( タイルセットのヘッダオフセット - タイルセット0のヘッダオフセット ) / 18
だから注意してね。
今回は「$9158E0」のあたりに空きスペースを見つけたので、それを使って計算したいと思います。
あ、そうそう。日本語版エメラルドのタイルセット0のヘッダオフセットは「$3B7B24」にあるらしい。
これを公式に代入して...
タイルセット番号 = ( $9158E0 - $3B7B24 ) / 24 = $393E7
これを10進数に変換して、「234471」が今回のタイルセット番号です!!!
と言いたいところですが、奇数はいけないらしいのです。と言うことでですね、「1」を足すんですよ。
その結果タイルセット番号は「234472」になります。
で、さっきの式を変形して、ヘッダのオフセットを求めます。
タイルセットのヘッダオフセット = タイルセット0のヘッダオフセット + タイルセット番号 * 24
これが10進数版の公式。エメラルドだとこれに8を足さなければいけないという噂が。つまりこうなる。
タイルセットのヘッダオフセット = タイルセット0のヘッダオフセット + タイルセット番号 * 24 + 8
16進数にすると、
タイルセットのヘッダオフセット = タイルセット0のヘッダオフセット + タイルセット番号 * 18 ( + 8 )
になるのかな。(カッコ)はエメラルドの場合です。
今回はエメラルドを使っているのでこの「+8」が重要。代入して、
タイルセットのヘッダオフセット = $3B7B24 + $393E7 * 24 + 8 = $9158EC
だから、正しいヘッダのオフセットは「$9158EC」となります。
タイルセットのヘッダオフセット = タイルセット0のヘッダオフセット + タイルセット番号 * 24
これが10進数版の公式。エメラルドだとこれに8を足さなければいけないという噂が。つまりこうなる。
タイルセットのヘッダオフセット = タイルセット0のヘッダオフセット + タイルセット番号 * 24 + 8
16進数にすると、
タイルセットのヘッダオフセット = タイルセット0のヘッダオフセット + タイルセット番号 * 18 ( + 8 )
になるのかな。(カッコ)はエメラルドの場合です。
今回はエメラルドを使っているのでこの「+8」が重要。代入して、
タイルセットのヘッダオフセット = $3B7B24 + $393E7 * 24 + 8 = $9158EC
だから、正しいヘッダのオフセットは「$9158EC」となります。
これが厄介なのかな。ちょっと面倒です。
合計24バイトあって、先頭から色々と書き連ねていきます。
まず最初の1バイトは画像データの種類です。「00」で未圧縮画像、「01」で圧縮済み画像です。よく分からないのでひとまず圧縮済みの「01」ということにします。
次の1バイトはタイルセット1にするか2にするかです。ここで決まります。「00」でタイルセット1、「01」でタイルセット2です。
タイルセット1は色々と面倒らしいのでタイルセット2である「01」にします。
次にワンクッション、「00 00」が入ります。
次の4バイトはタイルセット画像のオフセットです。
今回は「$915904」なので、逆順で「04 59 91」。これじゃ足りないので末尾に「08」をつけて「04 59 91 08」となります。
そして次はパレットののオフセット。
「$915954」にあるから「54 59 91 08」。また最後に「08」をつけています。
で、ブロックデータ。
「$915B04」より「04 5B 91 08」です。絶対に「08」を忘れないように。
次の8バイト(4 + 4)はRSEとFRLGで分かれます。まずは4バイト。
RSEの場合ここには動作データのオフセットが入り、FRLGの場合はアニメーションの設定が入ります。
今回はエメラルドですから、動作データのオフセットを挿入します。今回は「$915B84」に入っているので、「84 5B 91 08」です。おなじみ「08」。
FRLGの場合、特にアニメーションを使用していない場合、「00 00 00 00」が入ります。アニメーションを使用した場合にどうなるかは分かりません。
次の4バイトは先程とは逆に、RSEの場合はアニメーションの設定が入り、FRLGの場合には動作データのオフセットが入ります。
今回アニメーションは特に使用しないので「00 00 00 00」とします。あった場合はどうすればよいのか、私には分かりません。(大事なことなので二回言います)
FRLGの場合は上と同じようにすればよいのではないでしょうか。
ということで、これを結合すると
「01 01 00 00 04 59 91 08 54 59 91 08 04 5B 91 08 84 5B 91 08 00 00 00 00」
となります。これをヘッダのオフセットとして計算して24バイト分空けておいたところへ挿入します。
これで作業は終了です。あとはAMを起動して、タイルセット2のところに先程計算したタイルセット番号を入力して変更してみます。
するとまぁ、見事なまでに追加されているわけでございます。
よく分からない点などございましたらコメント欄までお寄せください。それでは。
合計24バイトあって、先頭から色々と書き連ねていきます。
まず最初の1バイトは画像データの種類です。「00」で未圧縮画像、「01」で圧縮済み画像です。よく分からないのでひとまず圧縮済みの「01」ということにします。
次の1バイトはタイルセット1にするか2にするかです。ここで決まります。「00」でタイルセット1、「01」でタイルセット2です。
タイルセット1は色々と面倒らしいのでタイルセット2である「01」にします。
次にワンクッション、「00 00」が入ります。
次の4バイトはタイルセット画像のオフセットです。
今回は「$915904」なので、逆順で「04 59 91」。これじゃ足りないので末尾に「08」をつけて「04 59 91 08」となります。
そして次はパレットののオフセット。
「$915954」にあるから「54 59 91 08」。また最後に「08」をつけています。
で、ブロックデータ。
「$915B04」より「04 5B 91 08」です。絶対に「08」を忘れないように。
次の8バイト(4 + 4)はRSEとFRLGで分かれます。まずは4バイト。
RSEの場合ここには動作データのオフセットが入り、FRLGの場合はアニメーションの設定が入ります。
今回はエメラルドですから、動作データのオフセットを挿入します。今回は「$915B84」に入っているので、「84 5B 91 08」です。おなじみ「08」。
FRLGの場合、特にアニメーションを使用していない場合、「00 00 00 00」が入ります。アニメーションを使用した場合にどうなるかは分かりません。
次の4バイトは先程とは逆に、RSEの場合はアニメーションの設定が入り、FRLGの場合には動作データのオフセットが入ります。
今回アニメーションは特に使用しないので「00 00 00 00」とします。あった場合はどうすればよいのか、私には分かりません。(大事なことなので二回言います)
FRLGの場合は上と同じようにすればよいのではないでしょうか。
ということで、これを結合すると
「01 01 00 00 04 59 91 08 54 59 91 08 04 5B 91 08 84 5B 91 08 00 00 00 00」
となります。これをヘッダのオフセットとして計算して24バイト分空けておいたところへ挿入します。
これで作業は終了です。あとはAMを起動して、タイルセット2のところに先程計算したタイルセット番号を入力して変更してみます。
するとまぁ、見事なまでに追加されているわけでございます。
よく分からない点などございましたらコメント欄までお寄せください。それでは。
最新コメント