-REBUILD-FEBuilderGBAの問題点として、ROMのフラグメントがあります。何度もリポイントをしていると、細切れの領域がたくさん出来てしまい、ROMの容量を圧迫します。これは、とても大きな改造を作る場合には問題になります。REBUILDは、この問題を自動的に解決する機能です。たとえるならば、デフラグのようなものです。アルゴリズムアルゴリズムは以下の通りです。FEBuilderGBAが知っている領域のデータをすべてファイルに書きだします。無改造ROMにそのデータを取り込みます。↓クリーンアップしたROMを作成します。ようするに、既存のROMから、Buildfileのようなものを自動生成していると考えれば理解しやすいかもしれません。生成するデータは機械で読むことを前提としているため、buildfileよりも可読性は低下します。FEBuilderGBAが知らないデータ構造でも、LDR参照を頼りに追跡するので、動作します。FE8がもっとも正しく動作します。FE7,FE6だと未知のデータ構造がまだたくさんあるので、失敗する可能性が高いです。以下のような、途中から複雑な実行されるコードには対応していません。EAで書くとしたら以下のようなパッチです。MyLibようするに、指定されたポインタより上の相対アドレスに対して、BLで相対ジャンプしているコードです。このようなコードは、めったにありませんが、FE8Jでは、古い2つのパッチがこの書き方で書かれていました。0x01000000にあると、リビルドは失敗します。FE8Jの古い2つのパッチは、新規に書き直したバージョンがありますので、リビルドを利用する場合は、そちらを利用してください。再構築するときに、既にあるBINデータを共有してサイズを小さくすることがあります。ROM内にバイオリンの楽器データがあるのに、まったく同じバイオリンの楽器データを追加するのは容量の無駄です。REBUILDでは、このようなデータ構造があると、自動的に共有します。(ログにはSHARE!と表示されます。圧縮効率化だいたい2MB-11MBほどの圧縮効果があるようです。これは、昔作られた改造が楽器データを共有化していないためです。editorは、楽器を共有化ができませんでした。現在、私が拡張したバージョンやFEBuilderGBAは、楽器の共有化を自動的に行います。よって、10MBの容量減というのは、あまり期待しない方がいいです。だいたい2-5MB程度だと思われます。Buildfileで作られた改造に対しても、わずかではありますが、圧縮効果があるときがあります。効果はわずかなので、気にする必要はありません。利用シーン通常、REBUILDを利用する必要はありません。ROM容量が限界である32MB近くになったときに、検討すればいいでしょう。むやみに利用すると、バグを発生させる原因になるので、乱用しないでください。ROM.GBAをリビルドすると、ROM.R.GBAというファイルが作られます。ROM.R.GBAが、リビルドされたROMです。リビルド後は、必ずクリアテストをしてください。何か間違いがあったら、危険なので、リビルドしたROMは破棄してください。リビルドした結果壊れたROMの修復は、とても困難だからです。よって、リビルド結果を採用するかどうかのフルテストが絶対に必要になります。//ポインタが入るデータを格納するディレクトリ編集ダンプされる形式についてこのフォーマットは、機械で読むことを前提としています。手書きするべきではありません。@BIN以外はテキスト形式で格納しています。数字はすべて16進数表記です。区切りは、半角スペース1つ。ポインタでない限り1バイト単位です。ポインタだけは、4バイト固定です。labelに相当する.例:@08123456EAで表現すると以下のようになります。_08123456編集`ポインタアンチハフマンポインタです。テキストデータをアンチハフマン形式で格納している場合に利用します。例:`08123456編集+自己参照ポインタ開始アドレスからの相対位置を記録する。楽譜などによくつかわれる.例:+123編集&ASM関数へのポインタ特別な理由がない限り、偶数でポインタを記述します。した領域も探索します。編集@IFRフォームデータを表します。先頭に必ずINDEX番目が入ります。以降は、データが16進数表記で続きます。編集@BINポインタが一切入らないバイナリデータ画像など.編集@MIXポインタが混ざるデータです。LZ77に圧縮して利用する。戦闘アニメのフレームデータです。無変更のアドレスで利用される.EAで書くならば、何も定義しないラベルです。編集@_CRC32対応する無改造ROMのCRC32のハッシュです。このハッシュを元に無改造ROMを特定します。編集@_REBUILDADDRESSこのアドレス以降を再構築します。以前のリビジョンバックリンク文書の先頭へ。