スキップしてメイン コンテンツに移動

最新の投稿

ファミコン版天地を喰らう 軍師キャラの隊列変更阻止について

 天地を喰らうシリーズは策略を使うにあたって「軍師」に任命された武将がいないと使用不能になるのですが、軍師に任命された武将は戦闘が開始されると隊列の一番後ろに配置され、隊列が6人以上になると直接戦闘に参加できなくなるというシステムになっています。これがいわゆる文官タイプ(武力や兵士数が低く知力が高い傾向の武将)であればまだいいのですが、劉備や馬謖や姜維のように文武両道の武将を軍師に任命する必要がある場合は事情が変わってきます。そこで、軍師に任命した武将がどのような処理で隊列の一番後ろに回されてしまうのか調べてみました。その結果、大まかに言うと「戦闘開始時にまず隊列の人数をチェックし、6人未満である場合は各武将の状態をチェックし、正常であれば隊列の位置そのまま、それ以外の状態の武将は隊列の最後尾に変更する。6人以上の場合は軍師を隊列の最後尾に移動させるが、負傷中の武将がいる場合は更に軍師の後ろに配置する」という処理内容でした。ここで言う武将の状態は「00=負傷中(戦闘不能)、40=軍師、80=正常、C0=正常かつ軍師」の4種類で、この処理内容を変更すれば軍師に任命した武将も隊列の変更がないまま戦闘に参加できそうです。つまり「隊列が6人以上でも6人未満でも武将が正常な状態であれば隊列の位置そのままを維持し、負傷中の武将のみ隊列の最後尾に変更する」とすればよいのではないでしょうか。この仮説を基に改変を行い、成功すればパッチとして公開する予定です。

第4次スーパーロボット大戦 キリマンジャロバグ修正パッチを公開しました


 全面が空中という異色のマップ「キリマンジャロの嵐」は飛行適性がない機体は出撃できないのですが、その特殊な処理(実は空中マップと見せかけた陸上マップで、ユニットは全て「空」や「雲」という名の陸上地形パネルに着陸しているという扱いなのです)の影響で地形適応は「空」ではなく「陸」が参照されてしまい、正常なダメージ計算が適用されません(通称「キリマンジャロバグ」)。少し解析してみたところ地形適応をチェックするプログラム内にはこれをどうこうするような対策はされておらず、結局のところこれを解決するには専用の新たな地形適応チェックのルーチンを組むしかなさそうです。…というわけで、修正パッチを作成してみました(パッチ名は「地形適応バグ修正パッチ」です)。以下のURLからダウンロード可能です。本来のソフトに存在する不具合なのでパスワードは設定していません。


 以前、私の友人がこの不具合の解決に取り組んだのですが、参考までにその方法を聞いてみたところ「RAMのシナリオIDをチェックして現在のマップが『キリマンジャロの嵐』であれば陸の地形適応判定を強制的に空の地形適応判定に変更するサブルーチンにジャンプする」というものだったそうです。なかなか面白そうな処理ですが、その場合は他に同じような空中マップを自作する場合に応用が利かないという欠点があります。そこで私は「RAMのマップ状態設定IDがキリマンジャロ(=空中マップ)のIDである場合は地形適応判定を全て空の地形適応判定に変更する」という方式にしてあります。これならば他の空中マップを作製した場合でもそのまま使用できますし、応用として月や火星の地形適応を第3次スーパーロボット大戦やスーパーロボット大戦F完結編のように宇宙扱いに変更する(あまり知られていませんが、F完では月や火星は陸上でも空中でも宇宙扱いの計算が適用されます)にできます。今回公開したパッチはキリマンジャロ上空の場合は強制的に空、月の場合は強制的に宇宙の地形適応が参照されます。火星に関しては処理を組み込んだのですが、ダンバイン系の機体が活躍できなくなる事を考慮し、処理の作成後に「EA」で消去しています。これを再現するにはパッチ適用後にノーマル版であれば29FFD4~29FFD7を、4M版であれば3FEDA4~3FEDA7を「C9 12 F0 0A」に置き替えて下さい。

コメント

人気の投稿

キャプテン翼4 ファンベルグの「光るシュート」とオルミーガの「吹っ飛ばし補正」について

第4次スーパーロボット大戦 初期型ROMと後期型ROMの物理的な見分け方と入手方法

第4次スーパーロボット大戦 改造コスト&改造数値分岐パッチを公開しました