第4次スーパーロボット大戦ではコン・バトラーVダンクーガ、ザンボット3といった合体後に複数パイロットが乗るようになる機体のサブパイロットの台詞を反映させる機能はありませんが、以前作成したゲッターチームの仕様変更のシステムを応用すれば「F」以降のコン・バトラーVのように合体後専用の特殊台詞を反映させる事が可能であると判明しました。 具体的な手法は「特定のパイロットが特定の機体に搭乗している場合はSRAM上のパイロットIDを保持したままRAM上のパイロットIDを入れ替える」というもので、これは以前にも少し触れたハイパーモードや暴走システムの手法と同じものですが、これを応用すれば、例えばバトルジェット搭乗時の豹馬とコン・バトラーV搭乗時の豹馬のパイロットIDを個別に用意する事で異なる台詞パターンを適用できるという事も可能になります。また、同時に複数精神コマンドのサブパイロット適用パターンも変更できるため、非分離型のコン・バトラーVを用意するといった必要もなくなります。但しこの方法には欠点もあり、例えば敗北条件に豹馬の撃墜が設定されている場合にこのパイロットIDが合体前と合体後で別々であると、パイロットIDが合致しなくなってしまった途端に敗北条件を満たしてゲームオーバーとなってしまいます(これはハイパーモードや暴走の再現時にも当てはまる問題です)。そのため、台詞の変更のみに留めるのであれば特殊サブルーチンを組んで特定のパイロットが特定の機体に搭乗している場合は台詞の参照IDを変更(例えば、豹馬がコン・バトラーV搭乗の場合は通常の台詞IDではなく専用の台詞IDを参照)するという手法の方がいいのかもしれません。もっとも、シナリオ上での敗北条件を設定する際にそれら両方のパイロットIDを全て確認できなかった場合にのみ敗北とすれば問題はないので、あくまで好みの問題とも言えそうです。
BGMの貧弱さに定評があるキャプテン翼4ですが、これを補うべくサンプリングデータを差し替えられないか調査を始めてみました。サンプリングデータは050300から始まるオフセットテーブルで定義付けられており、最初の2バイトがデータ長、次に続く2バイトがサンプリングデータの展開先というパターン(これはSPC共通の仕様ですね)になっています。
さて、オフセットテーブルが判明している以上、ROM拡張をしてそこに音質の良いデータを書き込んでアドレス指定すればサンプリングデータの入れ替え自体は可能なのですが、問題はそれをサウンドドライバに組み込んだ場合に他のサンプリングデータと干渉しないようにできるかどうか、という事です。サンプリングデータは予め書き込み先が指定されていますので、このデータ長が他のサンプリングデータと干渉しないようにうまく調整するか、あるいはサウンドドライバ自体を書き換えてサンプリングデータの展開先アドレス領域を変更する必要が出てきます。干渉すれば当然オーバーフローを起こしてフリーズしますので、そういう意味でもなかなか面倒な作業になりそうです。
コメント
コメントを投稿