◆ 幻のマップ・イベント拡張パッチ復元
--------------------------------

今回はMinさんが製作されたFF5マップ・イベント拡張ver1.24.ipsの機能をどうにかして復元
してみようという企画です。筆者はアセンブラをほとんど理解できていないので、内容は全く
わかりません。でも、機能を部分的に復元させるだけなら強引ではあるものの、手段があり
ます。幻のパッチが再び入手可能になるか、似たようなパッチが出るまでのつなぎとして、
幻のパッチの機能を部分的に復元するパッチの作り方をご紹介します。


・新たに判ったこと New!

FF5CDに適用されているFF5マップ・イベント拡張ver1.24.ipsには新規マップチップの拡張
プログラムは搭載されていないことがわかりました。このコーナーで紹介した方法で作った
ROMにマップ画像、マップデータ、マップ構成設定、マップ性質設定を追加しても、それらを
読み込まないことから、追加マップチップ関連プログラムはオプショナルパッチになっていた
か、FF5ACのみの搭載だったと推測できます。


・既存の作品のパッチからの機能抽出

マップ・イベント拡張パッチは、FF5ACとFF5CDに組み込まれています。これらのどちらかの
パッチからマップとイベントの拡張機能の部分を絞り込んで、そこを移植します。そうすれば
同じ機能の一部を復元させるパッチを作れます。このパッチの全機能を完全に復元させる
のは機能が多岐に渡るため困難ですが、とりあえずマップとイベントを追加可能にするだけ
なら、ちょっとした作業でどうにかなることが判明しました。次項から順を追って説明します。


・マップ・イベント拡張機能の抽出

$000000〜$00FFFFまでをFF5CDから原作に移して少し修正すれば、マップ・イベント拡張の
プログラム部分を導入できます。以下で全工程を紹介します。作業はStirlingで行います。

手順
ヘッダなしの原作にFF5ACとFF5CDのパッチを当てて、2作品を作成しておきます
LunaExpandで原作を3MBにします
CDコピー $000000-$00FFFFまで
3MBに拡張済の原作の$000000-$00FFFFまでを削除して、コピー内容をペースト
$008A99 を 81 に書き換え
$008A9D から3Bytesを FF F0 12 に書き換え
$008ACC を 81 に書き換え
$008AD0 から3Bytesを FF F0 12 に書き換え
$008AE2 を 08 に書き換え
$00CAF8 から4Bytesを BF 00 68 D0 に書き換え
$00CC13 から4Bytesを BF 00 68 D0 に書き換え
$012CD5 から4Bytesを 22 20 FF F7 に書き換え

プログラムの導入はこれにて終わりです。あとは追加データの修正となります。

CDコピー 300000-3FFFFF
3MBに拡張済の原作の末尾にこれをペースト

・モアイフラグの解除
3B2701〜の2Bytes F4 48を切り取って3B2730にペースト

・CDのマップ移動オフセットをACのものに書き換え
ACコピー $366800〜$3689CB
3MBに拡張済の原作の$366800〜$3689CBを削除してコピー内容をペースト

・人々の配置の修正
3MBに拡張済の原作の$0E5DC2から14756Bytesをコピー
$370800から14756Bytesを削除してコピー内容をペースト

これにて、原作にFF5マップ・イベント拡張ver1.24.ipsを当てたのとほとんど同じ状態の
ROMになりました。ただし、FF5CD独自のイベントやセリフ等のデータは残ったままです。
人々の配置やマップ移動を書き換えることでFF5CDの追加イベントにアクセスできない
状態になっているので、プレーする上では原作にモアイダンジョンが加わっただけの
ROMとなっています。追加の宝箱などのデータ配置は全然わかっていません。

また、マップチップの追加方法、登録方法も不明です。上記の方法では実質的にモアイ
ダンジョンと漢字を追加するにとどまり、Minさんのマップ・イベント拡張パッチに本来
搭載されている多くの機能が未活用のままです。恐らく正規に配布されたパッチには、
BNE2やデータの圧縮・展開ができるプログラムなどが同梱されていたものと思われます。
マップチップの登録データは圧縮されているようなので、どうしてもそこが難しいところです。
いずれにせよ、Minさんのマップ・イベント拡張パッチを持っている方々が現在は活動して
いないようなので、まさにごく少数の改造者のみが所持する幻のパッチといえます。

このROMと手付かずのヘッダなしの原作ROMからパッチを作れば、不完全ながらも復元
パッチとなります。正規品かそれに代わるパッチが入手可能になるまでのつなぎとして。

最後に筆者が調べて判っているデータ配置のみ、以下に転載しておきます(メモ原文ママ)。


・付録:FF5AC追加データ配置メモ

・追加マップチップ画像 (FF5ACのみ) New!
画像オフセット 320000〜32005F[4Bytes? * ]
画像データ 320060〜[4BPP、16色]

・追加マップ設定 (FF5ACのみ) New!
3CF000-3CF051 マップ性質設定オフセット[2Bytes * ]
3CF052-3CFFFF マップ性質設定(LZSS圧縮)

3D0000-3D0047 マップ構成設定オフセット[2Bytes * ]
3D0048- マップ構成設定(LZSS圧縮)

・VRAMのパレット特定作業 (FF5ACのみ)

月の地下渓谷の宝箱パレットを部分的に復元してサーチする

青3 03 64
青4 02 40
グ5 bd 6f
青6 c2 7c
黒7 00 00

03 64 02 40 bd 6f c2 7c 00 00

追加マップ用パレット 3e2000〜(32bytes * )

・地下渓谷のVRAMパレット (ACのみ)
まとまったデータが3e2000〜3e20ff
これが地下渓谷のVRAMパレットと判った

・追加漢字 36f000〜36f80f (AC、CD共通)
YYCHRで追加漢字の画像を確認可 ※画像形式:1BPP 16x 12 (FF5)に設定

扉壁修種類倒
存在戻』撃押移亡
多準備真魂簡単順
舞牢引像呪結埋込
襲侵確認排果栄念
未我恐怖禁断定捕
練奥治相効果凶
暴達挑選進深遅状
態象応津設況調油
断技苦誰懐呼実際
術弾買側巨注

※ 試が重複。GBA版がそうなっているのかも

7000〜9fffの間に漢字拡張部がある
範囲 37f9b0〜37ff20辺りか
8a73が漢字誘導 22 60 FF F7

8a8a 5C 40 FA F7
8a98 22 C0 FA F7
8aac 22 B0 F9 F7

8f40 22 20 ff f7

・イベント拡張
348d40〜34b8ef イベントデータ

358720〜35b05e セリフ拡張

360000 何かのオフセット?

361000〜362e1d 会話イベント?

364000〜3644bb イベント場所オフセット? [2Bytes]

364800 イベント場所[4Bytes * ] 2B:座標
365668〜365984 追加分(3688bytes)

1マス砂漠を封鎖 40 a2 3648b8→3d
モアイ 3648d4

・マップ拡張
366800- : マップ移動 オフセット[2Bytes * 512]
368612〜 追加分

36b000〜36b971 マップエントリ
32 01〜5c 02まで設定済。その直後に5d 02が手付かずのまま残されている

36f000〜?

370800〜 人々の配置[7Bytes * ] 原作 15932bytes
37463c〜 追加分

37f0c0〜 追加プログラム群
cdだと37fad0〜3800a8

・マップデータ New!
マップデータオフセット 380000〜38053F[2Bytes * ]
圧縮マップデータ 380540〜 ※デリミタは00 10か?

388002〜38810c 1マス砂漠のおうちレイヤー1
38810d〜388211 1マス砂漠のおうちレイヤー2
388212〜3884e5 月の地下渓谷b1
3884e6〜3887bb 月の地下渓谷b2
3887bc〜388a65 月の地下渓谷b3
388a66〜388da5 月の地下渓谷b4

・フラグデータ
3b0a00〜3b271b 18e600〜と同じデータ群を移設している

indexへもどる