「ドアを追加する」の編集履歴(バックアップ)一覧はこちら
ドアを追加する - (2009/07/13 (月) 01:41:24) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
*ドアを追加する
部屋の繋がりを変更する際よくぶちあたるのが
「ドアが足りない状況」だと思います。
手っ取り解決手段は、やはりドアの多い部屋とポインタを入れ替える方法ですが
適当な部屋がない時にはなかなか困難です。
そんな時には部屋にドアを追加してしまいましょう。
ここでの方法を厳密に言うと、未使用領域に新しいドア情報を書き込んで
Door Outのポインタを変更する事でドアの数を増やす手順です。
----
#ref()
ドアが1枚しかない部屋を、ドア4枚にしてみましょう。
ドア本体の情報はFX1と同じ範囲、18000~1FFFFの間に書かれているので
バイナリエディタでロムを開き、1AD70へジャンプします。
ドアの情報は1枚につき12バイトです。
-1AD70~7B
-1AD80~8B
-1AD90~9B
-1ADA0~AB
上記にあるFFを、全て上書きで00に書き換えます。
#ref()
書き換えた部分を赤・青・緑・橙で囲ってみました。
では、書き換えるところがもう1か所あるので
7E9A0へジャンプします。
#ref()
78000~7FFFFの範囲は、どうやら7E99A以降が未使用領域のようです。
わかりやすく7E9A0から使ってみましょう。
さてここへ何を書き込むのかというと、さきほど1AD70あたりを00に書き換えましたが
この書き換えたところの先頭部分のアドレスを、頭の1を取ったうえで
上2桁・下2桁を入れ替えたものを書き込みます。
とてもわかりづらい説明ですが、つまり
-70AD
-80AD
-90AD
-A0AD
こういう事になります。
これに上書きで書き換えます。
#ref()
やはり赤・青・緑・橙で囲ってみました。
同じ色の囲いが、ドア情報とそれを指し示すアドレスとで対応しています。
最後の灰色で囲った0000は終了命令にあたるものなので、これも必ず書き込みます。
ここまで終わったら、変更を保存してファイルを閉じます。
最後にSMILEでポインタを変更しましょう。
#ref()
ドア情報の各アドレスを書き込んだ先頭、7E9A0の頭7を取った
E9A0に変更し、Save Pointers→いいえを押します。
#ref()
見事ドアが増えました。
ただしこの手順だと、ドア情報が全てクリアになってしまうので
すでに設定済だったドアがあった場合には、再度設定しなおす必要があります。