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

最新の投稿

第4次スーパーロボット大戦 爆発エフェクト設定変更パッチを公開しました

 第4次スーパーロボット大戦では、各機体の撃墜時の爆発エフェクトは機体データのBGM設定と一緒の部分(機体データの6番目)に格納されたサイズ設定とBGM設定に依存しているのですが、これをそれぞれの機体毎にオフセットテーブルで管理・設定できるパッチを作成してみましたので、よろしければお使い下さい。各機体の撃墜エフェクト設定は3FE780以下のオフセットテーブルで変更可能です。オフセット設定は下位1バイトでマップ上での撃墜エフェクト(00=爆散、01=キノコ雲、02=黒い光+キノコ雲、03=黒い光+爆散、04=光の柱)、上位1バイトで戦闘アニメでの撃墜エフェクト(00=爆発しない、10=爆発、20=フラッシュ、40=光の玉)を設定可能です。  これにより、従来はBOSS属性の機体でのみ使用可能だった光の玉による爆縮やLLサイズ専用だった画面が真っ白になるエフェクトをサイズやBGM設定に関係なく設定できるほか、F以降の一部の生身ユニットに見られる「爆発しないまま戦闘が終了する」というエフェクトも選択できるようになりますので、ドモンやマスター・アジアのような人間が直接戦闘する機体の再現もある程度違和感なく再現可能です(但し、マップ上ではどうしても撤退エフェクトが選択できず、第2次Gのマスター・アジアのように何かしらの爆発エフェクトを選択する必要があります)。ダウンロードは以下のURLから。ファイル解凍に必要なパスワードは「-c.r5m*9ncdj.Kwa」です。 https://ux.getuploader.com/retrogamelaboratory/download/101  次回は機体のBGMを機体依存から「パイロット依存パッチ」のようにオフセットテーブルで設定、かつ3F(64曲)まで設定できるようにするパッチを作成する予定ですが、これを作成すると従来のBGM継続パッチが全て使用不能になりますので、その点も含めると作業はそれなりに大掛かりになりそうです。欲を言えば「カスタムサントラパッチ」のようにディップスイッチでBGM設定をパイロットと機体で切り替え可能にするか、あるいは反撃命令のようにユニット毎にBGMの基準設定を行えるようにできるとよいのですが、前者はディップスイッチに余裕がなく、後者はセーブデータ用のRAMに余裕がないためなかなか...

第4次スーパーロボット大戦 自軍メンバー登録限度拡張に関しての考察

 ざっと解析してみたところ、自軍登録メンバーの数を65以上にするにあたっての課題点が見えてきました。以下にその課題点を列挙していきます。

  • 各種データの計算用RAM領域。これに関しては足りない分をコーエーの作品に見られる大容量SRAMや特殊チップ搭載ROMのように「外付けRAM」で増量してそちらに読み込みデータを逃がして展開させればいいが、中断データのセーブ・ロードの際の内容を大幅に変更しないと実現が難しい。外付けRAMがSRAMだった場合はリセットしたり電源を落としてもデータが更新されるまで逃がした展開データが保持され続けるので、中断データがある状態で別データのプレイをするとSRAM領域のデータが更新されてしまい内容が消えてしまう(=中断データが正常に再現されない)。特殊チップに展開する場合はリセットしたり電源を落とすと展開データ自体が消えてしまう。いずれにせよ、中断データにこの展開データを別領域にセーブ・ロードする処理を組み込む必要があり、作業量を考えると現実的ではない。
  • 通常のセーブデータに保持できる内容はRAMでいうところの7E1000〜7E15D5まで。これより下の領域にセーブデータの内容を拡張しようとすると中断データに影響を及ぼし、やはり外部RAMへの展開データ拡張とセーブ・ロードの方式の変更が避けられない。
  • 登録可能数を増やすとその分だけRAM各パラメーターの読み込み領域も増やさないといけない。通常は自軍・敵軍を合計して64体分で、これを超過するとRAMからデータがはみ出して不具合を起こすので一部パラメーターの分を丸ごと外部RAMに移す必要があるが、例によって中断データに影響を及ぼす。
  • MAP上では展開データ領域は自軍・敵軍で共用64体分を使用するが、インターミッションでは同じ領域を自軍のみで64体分を使用する。つまり、逆に言うとそれぞれで使用するRAM領域が違えばインターミッションで使用するRAM領域だけ増やせばいいという事になる(MAP上で自軍・敵軍を合わせて65体以上出現させなければいいだけなので)。
 以上の内容から見えてくるのは「7E1000〜7E152Dまでに登録データ数を保持しつつ不要と思われる内容を整理してセーブデータ領域に空きを作り、この空き容量を使って残りの登録データ容量を拡張。そしてインターミッションでのパラメーター閲覧や機体改造、乗り換えなどの作業実行の際には外付けRAMを指定してデータを展開して処理、対してMAP上では従来の通常メモリマップ内のRAMを使用して展開データを処理する」、つまりインターミッションの時だけ外付けRAMを使って増加させたデータを処理するという方法です。こうする事によって、理論上はセーブデータのSRAMへの書き込みや読み込み処理の大幅な改変をせずとも登録メンバーを増やせるのですが、そのためにはやはりSRAMに保存されるデータを一部減らさなければなりません。そうなると候補になるのが武器の個別改造とパイロットの撃墜スコアです。仮に武器の個別改造を捨ててパイロットやユニットの保持数を引き上げようとした場合、計算上は従来の64体から80~83体(個人的には80体を推奨したいところです)、パイロットの撃墜スコアを削除すればもう少し増やす事が可能になりますが、撃墜スコアはこれを利用した未使用のイベントコードが存在するので削除を避けたいところです。「武器の個別改造を捨てても16体分くらいしか増やせないのか」という見方もありますが、16体分増やせればできる事の幅は色々と広がると思います。

 SRAM容量はROM内のRAM容量の項目を変更すれば最大で256kbiteまで増やせるので容量不足の心配はありませんが、問題はインターミッションの時だけ外付けRAMにアクセスしてデータを書き込み・読み込みできるという処理が実現できるかどうかですね。これによって登録メンバーの拡張ができるかどうかの明暗が分かれますが、できる限り実現への努力をしてみるつもりです。

コメント

人気の投稿

第4次スーパーロボット大戦 カスタムサントラモード完成