武将数を増やす
1.武将データを作る
追加だけではなく既存武将も変更する場合は大掛かりになるのでExcelなどで表を作ったほうが良い。
武将データ、人徳データ、武将名データ、顔行列データは別々に
バイナリデータにしておくのが良い。
2.人徳データを移す領域を決める
武将データ241名分は2B54h~32DBhで追加14名分(112バイト)の領域を追加しなければならない。
ちょうど武将データ領域直後(32DCh)から人徳データ(241バイト)が詰まっているので255人分(255バイト)の空き領域を見つける。※空き領域:FFが連続している箇所
FFの連続しているところならばどこでもいいという訳ではありません。
とりあえず近場で言うと3E69h~400Fまでが空き領域なので3F10h~400Ehに人徳データを移す。
3.人徳データ先頭アドレスを変更する
2018hに人徳データの先頭アドレスが格納されているのでそれを移したアドレスに変更する
|
値 |
R@Mアドレス |
変更前 |
$92CC |
32DCh |
|
↓ |
|
変更後 |
9F00h |
3F10h |
ここでのR@Mアドレスからメモリアドレスを求める計算は3F10+5FF0=9F00h
4.人徳データ(退却時用)を移す領域を決める
1083Bh~1092Bhにある人徳データを2.と同様255バイトの連続空き領域に移す領域を探す
115CEh~11A8Fhが空き領域なのでここのどこかに移す
例)117B0h~118AEhに移す
5.人徳データ(退却時用)先頭アドレスを変更する
12C68hに人徳データ(退却時用)の先頭アドレスが格納されているのでそれを移したアドレスに変更する
|
値 |
R@Mアドレス |
変更前 |
$882B |
1083Bh |
|
↓ |
|
変更後 |
&97A0 |
117B0h |
ここでのR@Mアドレスからメモリアドレスを求める計算は117B0-8010=97A0h
6.顔データの列番号データを移す
顔データの行番号と列番号は連続しているのでそれぞれ14バイトずつ計28バイトを追加することになる
列番号の直後にあるデータ群57バイト(未解析のため何に使用しているか分からない)を(空き領域に)移動し、顔データ行番号の追加と顔データ列番号を移動させる
未解析のデータ群の参照アドレスは1F518h
|
値 |
R@Mアドレス |
変更前 |
$F71D |
1F72Dh |
|
↓ |
|
変更後 |
&9E90 |
19EA0h |
ここでのR@Mアドレスからメモリアドレスを求める計算は19EA0-10010=9E90h
7.顔データの列番号データの先頭アドレスを変更する
1F4C8hにある顔データ列番号先頭データアドレスを変更する
|
値 |
R@Mアドレス |
変更前 |
$F62C |
1F61Ch |
|
↓ |
|
変更後 |
&F639 |
1F649h |
ここでのR@Mアドレスからメモリアドレスを求める計算は1F649-10010=F639h
8.追加・変更した武将名データのアドレスを変更する
武将名データは2204h~262Bhの1064バイトの領域がありその直後は都市名データが格納されている。追加や変更に伴いこの領域では足りないであろう。
ここでも後半にあるデータを移すかというとそうではない。武将名は一人ずつ名前のアドレスが設定されているので空き領域に武将名データを作ればよい。
人徳データを移動しているのでそこに241バイト、3E69h~400Fにも空き領域は残っているので任意の場所にデータを作りそこを参照すればよい。
足りなくなることはほぼ無いと思うがチョウコウやチョウショウなど同名の武将を追加した場合は参照先を同じアドレスにすればよい。
他にも
アドレス |
2204 |
2205 |
2206 |
2207 |
2208 |
2209 |
… |
240A |
240B |
240C |
240D |
値 |
C6 |
FE |
FB |
C2 |
C6 |
6D |
… |
E2 |
C2 |
C5 |
47 |
文字 |
キ |
゙ |
ュ |
ウ |
キ |
ン |
… |
モ |
ウ |
カ |
ク |
というデータがあれば、ギュウキンは2204h、ウキンは2207h、モウカクは240Ah、カクは240Chのアドレスを指定すれば領域を節約できます。
9.武将データ、人徳データ、武将名データ、顔行列データを変更する
1.で作成したデータを貼り付ける。
※Excelやテキストエディタで作成した16進数はそのままではバイナリエディタ上で貼り付けはできません。貼り付けると文字コード(SHIFT-JISの)が貼り付けられてしますので注意!
必ず
バイナリに変換したデータを貼り付けてください。
最終更新:2009年12月10日 01:21