ストーリー変更(ロマリア~ノアニール2)

さて、まずはフィールドマップの変更を行います。「変更」といってもDQ3に存在しない「壊れた橋」のマップパーツ(1×1のデータ)を追加する必要があるので「追加」になります。追加するとなると新しくデータを追加する領域が必要になるのでいろいろ作業することになります。フィールドマップデータの構造については、例によって図で説明した方がいいと思いますが、図を用意する余裕がないのでとりあえずやったことだけ列挙しておきます。

  • マップパーツ地形情報($2836D8-,可変長)を$2406CE-に移動(マップパーツ1のサイズを拡張するため)し、237バイト目に2バイトFFを挿入する。
  • グラフィックインデックス($0E8D00-)*1に新レコード(#$8D)を追加。グラフィック読み込み位置は#$8E1D、グラフィック読み込み数は264、付加データのアドレスは$E51B1Eをセットする。
  • グラフィック読み込み位置データ($100000-)*2のレコード番号#$8E1D-8F1Cに#$13C4-14D3の内容をコピーする。
  • マップパーツ群データ($051450-)のレコード番号#$04以降のレコードを変更する。#$04については、グラフィック読み込みデータIDを#$8D、マップパーツ数を239、地形データ参照アドレスを$E406CEに変更する。#$05については、地形データ参照アドレスを$E407BDに変更する。以降のレコードについては「マップパーツ先頭」の値を全て2増やす。
  • マップパーツ1(#$2543A0-)のレコード番号#$260の場所に空のレコードを2レコード(14バイト)追加する。
  • フィールド構成パーツデータ($2DA49C)を#$3C9F22-に移動。さらに32バイト(2マップパターン分)拡張する。この際、先頭から2621バイト目ずつに2バイト00を追加していく必要がある(バイナリwikiのマップの項を参照のこと)。さらに、移動前のアドレスを参照していた17箇所x16について新しいアドレスを参照するように変更する。

枠を増やす作業だけでもこれだけ作業する必要があり、基本バイナリエディタ上での作業になります。特に一番最後の作業は非常に煩雑で参照するアドレスが2バイトずつずれていくので面倒なことこの上ないです。ひとつひとつの作業ごとに動作確認を取り、バックアップを取っておくことが作業のロスを減らすコツです。

*1:拡張パッチで場所が移動しています。これは移動後のアドレスです

*2:拡張パッチで場所が移動しています。これは移動後のアドレスです