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

最新の投稿

第3次スーパーロボット大戦 反撃命令による武器や行動選択の解析結果

 反撃命令による武器選択の基準がよく分からないと言われているSFC版第3次スーパーロボット大戦ですが、反撃命令の設定箇所をざっと解析してみたところ、それぞれの命令で使用武器の選択基準が違っている事が分かりました。大まかな内容ですが、基本的には以下のような基準で反撃武器や行動を選択しています(なお、原則として敵軍やNPCのパイロットは「必ず反撃せよ!」に設定されています)。  「必ず反撃せよ!」は、残弾や残りENにかかわらず命中率が1%以上ある最強の武器を選択。その武器の命中率がゼロになる場合は、次に威力が高く命中率が1%以上ある武器を選択するという思考を繰り返す。どうしようもない場合は命中率がゼロでもとにかく現状で使用可能な最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる。弾切れや射程外からの攻撃には何もしない。先攻側の攻撃でHPがゼロになると判断しても反撃を試み、それができない場合は反撃不能扱いとなる。原則として武器選択の際に相手の残りHPは考慮しないため、反撃相手のHPが仮に残り1であろうとも最強の武器で反撃する。前述の通り、敵軍やNPCは原則としてこの命令が設定されているため、回避力(=パイロットの反応と操縦と直感の総和に機体のサイズ補正を適用した数値)が低いユニットは威力重視の武器で反撃される事が多い。残弾やEN消費も気になるところだが、分身持ちであるゲッター2系やF91であればこの命令を活用できるかもしれない。  「積極的にいけ!」は、相手が一撃で倒せる場合は命中率が1%以上ある最強の武器を選択。但し、その武器の残弾が残り1だったり、その武器を使用してもう一度使用できるだけの残りENがなくなる場合は使わず、次に威力が高く命中率が1%以上あり、かつ残弾が残り2以上か現在のENで二回以上使用できるEN消費武器を選択するという思考を繰り返す(EN消費武器に関してはたまに例外あり)。どうしようもない場合は弾切れ、またはEN枯渇にならない命中率がゼロの現在選択できる最強の武器を選択する。これに合致する武器がない場合は反撃不能扱いになる(そのため、条件を成立させれば弾切れでなくともパイロットが弾切れの台詞を吐く姿を拝める)弾切れや射程外からの攻撃には何もしない。。相手を一撃で倒せない場合の思考も同様。やはり原則として武器選択の際に反撃相手...

第4次スーパーロボット大戦 RAM拡張による登録メンバー増加実験と進捗状況

 SRAMを大型化して外付けRAMに見立て読み込みデータや書き込みデータの容量を増やす試みを行っていますが、現状ではあまり上手くいっていません。とりあえず武器の個別改造とそれに付随するセーブデータを削除する事でパイロット・機体共に96体まで登録できるようにRAM内容を書き換え、当初の予定にあったインターミッション限定ではなくマップ上でもSRAMを96体まで参照できるように変更(これによって理論上はマップ上に自軍・敵軍を合わせて96体まで展開可能)、更にRAMの読み込みや書き込みの数量制限(64体までの制御)に関わるプログラムを調べられる限り調べて書き換えてみたのですが、主に強制出撃イベントを中心に不具合を起こしてしまいます。

 SRAM上には参入した機体やパイロットがきちんと登録されているのですが65体目以降の機体に乗っているパイロットが出撃不能になったり、65人目以降のパイロットが登録されても出撃不能になったりする(インターミッションではパラメーター参照や乗り換え、機体改造やパーツ変更はできるのですが…)他、敵軍のデータをRAMに書き込む際に関しても一部できちんと書き込まれなかったり読み込まれなかったり、設定ルーチン通りの行動をしないなどの異常が見られます。また、外付けRAM領域に書き込まれる内容はどういうわけかメモリビューワーから確認する事ができず、いちいちバイナリエディタや外部のプロセスエディタでSRAMのファイルを見て確認する必要があります(一応SRAMには指定した場所にデータが書き込まれているのが確認できました)。単純にプログラム部分の書き換えミスだと思うのですが、やはり修正・改変しなければならない箇所があまりにも膨大なので厳しい状態であるのは事実です。また、予想通り中断データをセーブした後で最初から、あるいは通常のシナリオセーブデータをロードするとSRAMの内容が上書きされてしまい中断データの内容がおかしくなってしまいます。中断データに関してはエミュレーターであればステートセーブを利用する、実機のプレイであれば中断データのセーブ、または中断データのロードをできないようにする(一応これは解析によって可能となりました)しかないのが現状です。余談ですが三國志英傑伝は戦闘マップ上での中断セーブができない、SUPER三國志は一騎討ちモードでのセーブデータと通常セーブデータがリンクしていて一つしか保持できない(シナリオモードを最初からプレイすると一騎討ちモードのセーブデータが初期化されてしまう)のですが、これらの作品も同じ原理でSRAMを外付けRAM化しているようで、不具合回避のためにそうした処理や仕様を組み込んでいるのだと思います。制作しているデベロッパーは違いますが、こうした作品の処理方法を参考にしてデータの処理方法を研究する必要性を感じています。まだまだ実現への道のりは遠そうです。

コメント

人気の投稿

PS版スーパーロボット大戦F完結編 BNE2設定ファイル完成&第4次S基準化バランスパッチ作成の構想

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