以下では,シナリオ1のデータで武大プレイができるようにする例を説明します.
これは必ずやってください.
suidata1.sk1をバイナリエディタで開きます.
武大をプレイヤー好漢として選択可能にするため,武大と魯智深のデータを入れ替えます.
まず,「アドレス一覧表」から,武大と魯智深の人物番号とデータのアドレスを調べます.
名前 | 番号 | ステータス | 基本 |
---|---|---|---|
26バイト | 40バイト | ||
武大 | D1 | 153E | 5048 |
魯智深 | 01 | 001E | 2FC8 |
ここで「人物番号」は,データファイル中の各人物の通し番号です(00が高俅,01が魯智深,…,FEが潘巧雲).また,「ステータスデータ」とは人物のパラメータ(腕力など)のデータ,「基本データ」とは人物の名前などのデータを指します.それぞれ,表に書かれたアドレスから26バイト(または40バイト)を占めています.
次に,ステータスデータ(26バイト)を入れ替えます.武大のステータスデータ(アドレス153E~1557)と魯智深のステータスデータ(アドレス001E~0037)を入れ替えることになります.
名前 | 開始アドレス | 終了アドレス | 実際のデータ |
---|---|---|---|
武大 | 153E | 1557 | 00 00 00 00 1C 01 16 46 46 1A 41 08 07 09 12 00 00 00 00 01 00 00 00 00 00 A6 |
魯智深 | 001E | 0037 | 00 00 00 00 24 01 0E 64 64 3F 4A 58 5F 44 31 00 00 00 00 0F 00 00 00 00 00 83 |
入れ替えた後にアドレスがずれないように注意してください.正しく書き換えれば,153Eから26バイトが00 ... 3F 4A 58 ... 83に,001Eから26バイトが00 ... 1A 41 08 ... A6になるはずです.
さらに,基本データ(40バイト)を入れ替えます.武大のステータスデータ(アドレス5048~506F)と魯智深のステータスデータ(アドレス2FC8~2FEF)を入れ替えることになります.
名前 | 開始アドレス | 終了アドレス | 実際のデータ |
---|---|---|---|
武大 | 5048 | 506F | 95 90 91 E5 00 00 00 CC DE C0 DE B2 00 00 00 00 00 8D 92 8E F7 94 E7 00 00 00 BA B8 BC DE AD CB 00 00 00 00 00 75 04 80 |
魯智深 | 2FC8 | 2FEF | 98 44 92 71 90 5B 00 DB C1 BC DD 00 00 00 00 00 00 89 D4 98 61 8F AE 00 00 00 B6 B5 BC AE B3 00 00 00 00 00 00 0C 02 C0 |
やはり,入れ替えた後にアドレスがずれないように注意してください.正しく書き換えれば,5048から40バイトが98 ... 89 D4 98 ... C0に,2FC8から40バイトが95 ... 8D 92 8E ... 80になるはずです.
人物番号は通し番号なので,ステータスデータと基本データ2つの入れ替えによって自動的に人物番号も入れ替わります.つまり,武大の人物番号は01に,魯智深の人物番号はD1になります.
次は,ステータスデータ中にある「所属」「身分」を書き換えます.
「所属」は,その人物がどの勢力に属しているかを示すパラメータで,ステータスデータ26バイトのうち先頭から6バイト目に「所属する勢力主の人物番号」が書かれています.00なら高俅,02なら史進,といった具合です.例外として,どこにも所属していない(街にいる,または開始時に未登場の)人物の場合は,所属が01になるようです.
好漢の場合,所属は必ず自分自身です.なので,武大の所属を武大の新しい人物番号である01に,魯智深の所属を魯智深の新しい人物番号であるD1に,それぞれ書き換えます(武大の場合は最初から01だったので,実質的には書き換えません).書き換える位置は,それぞれのステータスデータの先頭から6バイト目(武大は0023,魯智深は1543)です.
名前 | アドレス | 変更前 | 変更後 |
---|---|---|---|
武大 | 0023 | 01 | 01 |
魯智深 | 1543 | 01 | D1 |
「身分」は,その名のとおり「好漢」「無頼漢」「居酒屋」「小娘」など人物の身分を示すパラメータで,ステータスデータ26バイトの最後に書かれています.
ここでは,武大と魯智深の身分を,「好漢」を示す83に書き換えます(魯智深の場合は最初から83だったので,実質的には書き換えません).書き換える位置は,それぞれのステータスデータの最後(武大は0037,魯智深は1557)です.
なお,実際にはここのデータは,「身分」の他に「ゲーム開始時に登場しているかどうか」と「船を持っているかどうか」も示しています.83は「ゲームに登場している船を持っていない好漢」になります.また,武大の変更前のデータA6は「ゲームに登場している船を持っていない商人」です.詳しくは「身分一覧表(準備中)」をご覧ください.
名前 | アドレス | 変更前 | 変更後 |
---|---|---|---|
武大 | 0037 | A6 | 83 |
魯智深 | 1557 | 83 | 83 |
以上で,人物に関するデータの書き換えは終わりです.残りは,勢力に関するデータの書き換えです.
ゲーム中に存在する好漢は誰か,その好漢の領土は何色か,その好漢は領土を持っているかどうか,という,勢力に関する情報のデータを書き換えます.
アドレスの19F7から1A02の12バイトには,ゲーム中の勢力(官軍および各好漢)が人物番号で書かれています.19F7は赤色の勢力の人物番号で,全シナリオを通じて00となっています.つまり,高俅です.19F8は桃色の勢力の人物番号で,シナリオ1では04(林冲),…,1A02は灰色の勢力の人物番号(シナリオ1では11,崔道成)となっています.詳しくは「勢力に関するデータ表」をご覧ください.
ここでは,武大と魯智深の勢力を登録します.武大については,19FAに01(もともとは魯智深の人物番号だったもの)とあるので,何もしなくても緑色の勢力になります.魯智深については,19FDから19FFのうちのどこかを,人物番号のD1と書き換えればよいでしょう.
いよいよ最後です.
アドレスの1A04から1A2Cには,ゲーム中の勢力が領土を持っている(逃亡中でない)かどうかが4バイトおきに書かれています.1A04は桃色の勢力(シナリオ1では林冲)の状態,…,1A2Cは灰色の勢力(シナリオ1では崔道成)の状態に対応します.アドレスは「勢力に関するデータ表」をご覧ください.データが00なら領土を持っていることを,01なら逃亡中を表しています.
武大,魯智深について,先ほど登録したのと同じ色に対応するアドレスのデータを,01(逃亡中)または00(領土あり)と書き換えます.たとえば,武大を緑色の勢力とした(19FAを01とした)なら,1A0Cを01として,武大を逃亡中にします(シナリオ1のデータの場合,最初から01になっているはずです).また,魯智深を紫色の勢力とした(19FDをD1とした)なら,1A18を01として,魯智深を逃亡中にします.
領土ありにする場合には,人物が現在いる府州に注意してください.現在の府州は,ステータスデータの7バイト目(先ほど書き換えた「所属」の次)に「府州番号-1」として書かれています.武大の場合は0024に16とあるので,23国にいることになります.逃亡中なら問題ありませんが,領土ありにする場合は,他の勢力の領土でないところに書き換えてください.また,魯智深の場合は1544に0Eとあるので,15国にいることになります.この場合は領土ありにしても問題ありません.
保存後のファイルのサイズが,オリジナルと同じ23,707バイトであることを確認してください.
配下の人物を設定したい場合は,その人物のステータスデータのうち「所属」「現在いる府州」「身分」を書き換えることになります.以下では,上記のように書き換えた武大の配下として潘巧雲を設定する例を説明します.「アドレス一覧表」によれば,潘巧雲のステータスデータは19D0から始まります.
まず所属を書き換えます.所属の情報は,先述のとおりステータスデータ26バイトのうち先頭から6バイト目に「所属する勢力主の人物番号」として書かれており,潘巧雲の場合,アドレスは19D5です.ここのデータを武大の(新しい)人物番号である01に書き換えます.初期データですでに01になっているので実際には書き換える必要はありませんが,もともとの01は「どこにも所属していない状態」を意味していたことに注意してください.
名前 | アドレス | 変更前 | 変更後 |
---|---|---|---|
潘巧雲 | 19D5 | 01 | 01 |
続いて現在府州の書き換えです.現在府州の状態はステータスデータの先頭から7バイト目に「府州番号-1」として書かれており,潘巧雲の場合,アドレスは19D6です.このデータを武大と同じ16と書き換えます.
名前 | アドレス | 変更前 | 変更後 |
---|---|---|---|
潘巧雲 | 19D6 | 05 | 16 |
なお,好漢が逃亡中でない場合は,必ずしも同じ府州にしなくても大丈夫だと思いますが,その府州の統治者を決める必要があるかもしれません(府州の統治者の決め方は次の項で説明します).また,他の勢力がいる府州にならないように注意してください.好漢が逃亡中の場合に配下を違う府州にした場合にどうなるかはわかりません.
最後に身分を書き換えます.身分はステータスデータの最後に書かれており,潘巧雲の場合,アドレスは19E9です.ここを85とすると,「船を持っていない無頼漢」になります.84だと「船を持っていない首領」,C5だと「船を持っている無頼漢」です.
名前 | アドレス | 変更前 | 変更後 |
---|---|---|---|
潘巧雲 | 19E9 | 2C | 85 |
なお,潘巧雲の変更前のデータ2Cは「ゲームに登場していない船を持っていない小娘」です.「ゲームに登場していない」ですが,実際には年が明けて1101年になった時点(実質上のゲーム開始)で登場するということのようです.身分について,詳しくは「身分一覧表(準備中)」をご覧ください.