天地を喰らうシリーズは策略を使うにあたって「軍師」に任命された武将がいないと使用不能になるのですが、軍師に任命された武将は戦闘が開始されると隊列の一番後ろに配置され、隊列が6人以上になると直接戦闘に参加できなくなるというシステムになっています。これがいわゆる文官タイプ(武力や兵士数が低く知力が高い傾向の武将)であればまだいいのですが、劉備や馬謖や姜維のように文武両道の武将を軍師に任命する必要がある場合は事情が変わってきます。そこで、軍師に任命した武将がどのような処理で隊列の一番後ろに回されてしまうのか調べてみました。その結果、大まかに言うと「戦闘開始時にまず隊列の人数をチェックし、6人未満である場合は各武将の状態をチェックし、正常であれば隊列の位置そのまま、それ以外の状態の武将は隊列の最後尾に変更する。6人以上の場合は軍師を隊列の最後尾に移動させるが、負傷中の武将がいる場合は更に軍師の後ろに配置する」という処理内容でした。ここで言う武将の状態は「00=負傷中(戦闘不能)、40=軍師、80=正常、C0=正常かつ軍師」の4種類で、この処理内容を変更すれば軍師に任命した武将も隊列の変更がないまま戦闘に参加できそうです。つまり「隊列が6人以上でも6人未満でも武将が正常な状態であれば隊列の位置そのままを維持し、負傷中の武将のみ隊列の最後尾に変更する」とすればよいのではないでしょうか。この仮説を基に改変を行い、成功すればパッチとして公開する予定です。
前回は搭乗フラグ設定の解析と変更について論じてきましたが、色々と推論を立てて関連するサブルーチンを書き換えてみたところ、ようやくSRAMの65人目以降に登録されたパイロットがマップ上に表示されるようになりました。これで何とかパイロットや機体のいわゆる「64体の壁」は突破できたのですが、SRAMに記録されるデータはともかくWRAMに読み書きされる各種データの拡張に関して依然不具合が残っています。これは以前にも触れた話ですが、マップ上では出撃している自軍と敵軍の合計64体までをチェックすればいい反面、出撃準備画面では拡張した65体目以降のパイロットや機体のデータをWRAM上で展開できるようにしなければならないのです。
セーブデータに使用される通常SRAM領域の確保の問題に関しては、既に限界反応の領域を使用した武器一括改造システムを導入すれば副産物として空き領域となった武器改造値記憶部分を転用する事で80体、または96体のパイロットと機体を登録・確保する事ができるという事が判明していますので、出撃準備画面でパイロットや機体のデータを閲覧したり強化パーツの付け替え、機体の乗り換えなどをしなければ問題ないのですが、とはいえいくら何でもそんな事は不可能なのでこれを解決しなければなりません。
WRAMの領域は大きくないためあまり大掛かりな構成変更はできず、またWRAMの代わりに追加SRAM領域を使用すると中断データが正常に使えなくなってしまうという弊害が生まれます。その点を鑑みるとやはり変更するのであれば出撃準備画面で各種データを処理する際に使用するWRAMを拡張SRAM領域に肩代わりさせるしかなさそうです。問題はSRAMの拡張を行って追加領域でデータを処理する場合、そのプログラムが実機できちんと作動してくれるかどうかですね。
とりあえず今回作成しているパッチ(仮に「シナリオ分岐補完パッチ」とでも呼んでおきます)ではむやみに新たなシステムは採用せず、既に完成しているゲッターチーム、コンバトラーチーム、獣戦機隊、ザンボットチームの仕様変更システムでパイロットと機体の登録数の11体分削減が実現できていますので、これを活用してやりくりしていくつもりです。今のところ他にやりたい事と言えば、エレとシーラの二人を両方とも救出してそれぞれのルートで参戦するパイロットや妖精の両立(エレルートであればニーとキーンとリムル、シーラルートであればガラリアとエルとベル)を可能にしたいところですが、これはさすがに難しいかもしれません。構想としては片方のオーラシップをヘンケン隊かエゥーゴの救援に行ってもらうという名目、または後から救出した側のオーラシップを修理不能という名目で離脱させる事で片方だけ使用可能にしようと思っているのですが、やはりFのようにエレもシーラも使いたいという意見の方は多いと思いますので…。
コメント
コメントを投稿