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

最新の投稿

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

 不具合修正や各種動作チェックも完了し、ようやくカスタムサントラモードの実装が完了しました。オプション画面やマップ画面の BGM設定を「ノーマル」にすればデフォルトの楽曲が再生され、「カスタム」にすれば任意のBGMを自分で用意した楽曲と差し替える事が可能です(どちらのモードでも再生される楽曲は強制的にステレオ出力になります)。また、動画の通りBGM継続パッチにも対応し、カスタムモードで差し替えた楽曲は楽曲ごとにバイナリエディタやBNE2で音量の指定設定も可能です。カスタムサントラモードはMSU-1チップをサポートした一部のエミュレーターやフラッシュカートリッジ(Snes9xやbsnes、 FXPAK PROなど )でのみその機能を使用できますが、ノーマルモードであれば他の環境でも問題なくプレイ可能(カスタムモードにするとBGMが再生されないだけ)です。 現状で確認できる不具合…というか仕様として、カスタムモードでサウンドテストを選択して楽曲を再生させた後にメニューに戻すと、再度サウンドテストのウィンドウを開いた際に楽曲の項目が1番目(デフォルトであれば「時を越えて」)になってしまうというものがあります。特にプレイに支障が出るものでもないと思うのですが、一応修正するアイデアがないわけでもないので、できる事ならば修正しておきたいところです。 今回は事前の知識としてBGM継続パッチやサウンドドライバ、BGMにSE周りのシステム関連の解析を行っていたので割と容易に実装可能となりましたが、作業量やデバッグの手間を考えるとその時間を他のリソースに割く方が懸命に思え、MSU-1関連のパッチ作成は他のタイトルでは積極的にやりたくはないというのが本音ですね。

第2次スーパーロボット大戦G イベントコード調査続報その1

 今回は久々に第2次Gのイベントコードを解析してみました。前回は不明だったマップ上イベントのコードがいくつか追加されています。調査中のコードに関しては詳細が判明次第内容を公開する予定です。


0x0003 ウェイト。 03 xx yy

    指定時間だけ操作受付禁止。xx yyは待ち時間。


0x0004 指定アドレスにジャンプ。 04 xx yy

    xx yyはROM(RAM)内のアドレス。

    経過ターンによるイベント制御の際はEDと組み合わせて「ED zz 04 xx yy」となる。


0x0020    ???    20    xx

    調査中。


0x0049 BGMの開始。 49 xx

    xxはBGM番号。F6との違いは不明。

    基本的にはF6が使われている事が多い。


0x0080 コントローラー操作を受け付け開始。 80

    コントローラーによるボタン操作や十字キー操作などを受け付けるようにする。


0x0081 イベントページの終わり。 81

    イベントページの実行を全て終了して次のフェイズに移行。


0x0084 パイロット参入。 84 xx yy

    xxはパイロットID。yyはレベル。


0x0085 機体入手。 85 xx

    xxは機体ID。


0x0086 パイロット離脱。 86 xx

    xxはパイロットID。


0x0087 機体離脱。 87 xx

    xxは機体ID。


0x0088 強制乗り換え 88 xx yy

    xxはパイロットID、yyは機体ID。


0x0089 自軍にユニット(パイロット搭乗済みの機体)が参入。 89 xx yy zz

    xxはパイロットのID、yyはパイロットのレベル、zzは機体のID。


0x008A フラグONならば指定アドレスにジャンプ。 F2 XX YY 8A xx yy


    xx yyはROM内のアドレス。「F2 XX YY」と組み合わせて使用。


0x008B フラグOFFならば指定アドレスにジャンプ。 F2 ww xx 8B yy zz

                                                                                        または9B 8B xx yy

    xx yyはROM内のアドレス。「F2 XX YY」と組み合わせて使用。

    択一イベントの場合は「9B」と組み合わせ。

    選択肢の二番目を選ぶとxx yyにジャンプ。


0x008C 指定ターンになったら指定アドレスにジャンプ。 XX 8C YY ZZ

    EDと組み合わせて使用。xxは指定ターン。yy zzは指定アドレスの座標。


0X0091 ユニット強制配置。 91 xx yy zz …FF FF

    xx yyはマップ上のX座標及びY座標。

    zzはパイロットIDで、そのパイロットが乗った機体が指定したXY座標に配置される。

    必要な人数分だけ入力後、「FF FF」で命令終了。


0x0092 会話イベント開始。 92 xx yy zz

     xxはパイロットID。yy zzはメッセージID。


0X0094 ??? 94

    調査中。


0x0095 カーソルの座標指定。 95 xx yy

    xx yyはマップ上のX座標及びY座標。

    指定したマップ上の座標にカーソルをクローズアップ。


0x0097 敵側パイロットの会話。 97 xx yy zz

    指定した敵パイロットにカーソルを合わせて会話イベントを開始。

    xxはパイロットID、yy zzはメッセージID。


0x0098 マップ上のその場にて会話イベント開始。 98 xx yy zz

    xxはパイロットID。yy zzはメッセージID。

    カーソルが表示されている位置で会話イベントを開始する。


0x009A メッセージ呼び出し。 9A xx yy

    顔アイコンのないメッセージを表示する。

    xx yyはメッセージID。


0x009B 択一イベント開始。 9B 8B xx yy

    基本的に「8B xx yy」と一緒に使用。

    選択肢の二番目を選ぶとxx yyにジャンプ。


0x009E ワールドMAPを呼び出してポインタを付ける。 9E ww xx yy zz

    wwはワールドMAPのID、xxは地名ID、yy zzはMAP上の座標。


0x009F 指定座標にポインタを動かす。 9F xx yy zz

     xxは地名ID、yy zzは目標座標。


0X00A0 出撃機体数、及び出撃座標指定。 A0 aa xx yy xx yy …FF FF

    そのマップで出撃できる機体数を指定し、出撃順にマップ上に配置する。

    aaはその命令で出撃できる機体数、xx yyは出撃した機体が配置される場所。

    aaの数だけxx yyを入力し、規定数の分を入力したらFF FFで終了。

    

0x00A4 表示ウィンドウを消す。 A4

    表示されているメッセージウィンドウを消去してマップのみを表示する。


 0x00C8 指定機体の改造引き継ぎ。 C8 xx yy

    指定した機体同士の武器、及び機体改造状態を引き継ぐ。

    xxは引き継ぎ元の機体ID、yyは引き継ぎ先の機体ID。


0x00C9 指定パイロットを出撃禁止にする。 C9 xx

      xxはパイロットID。

    CAで解除するまでそのパイロットは出撃準備画面に表示されなくなる。

    ついでに搭乗中の機体も乗り換えやパラメーター確認の対象外になる。


0x00CA 指定パイロットの出撃禁止を解除する。 CA xx

    xxはパイロットID。


0x00CE 次のシナリオの指定。 CE xx

    xxはシナリオのID。


0x00E1 指定パイロットが経験値を取得。 E1 xx yy zz

    xxはパイロットID、yy zzは取得する経験値。


0x00ED ターンチェック開始。 ED  xx yy

    規定のターンになるまでxx yyの座標にジャンプ。

    この後に「zz 8C xx yy」と続いていき、zzのターンになったらxx yyの座標にジャンプ。

    最終イベントへのジャンプ命令は「zz 04 xx yy 」となり、

    このzzターンを超過した後は最初のED xx yyの座標にジャンプするようになる。


0x00F0 指定フラグをONにする。 F0 xx yy

    xx yyはフラグ番号


0x00F1 指定フラグをOFFにする。 F1 xx yy

    xx yyはフラグ番号。


0x00F2 指定フラグを参照する。 F2 xx yy

    8A、8Bと組み合わせて「F2 xx yy 8A XX YY」や「F2 xx yy 8B XX YY」と記述し、

    分岐条件チェック(条件を満たす、または満たさないとXX YYにジャンプ)として使用。

    xx yyはフラグ番号。


0x00F4 資金を入手。 F4 xx yy

    資金を増やすイベント。

    xx yyは入手する資金の額。


0x00F6 BGMの開始。 F6 xx

     xxはBGM番号。49との違いは不明。

    BGMのIDに+80hでBGM終了まで操作受付不能処理が可能?

    基本的にはF6が使われている事が多い。

コメント

人気の投稿

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

第4次スーパーロボット大戦 ジェノサイド・マシンパッチ改を公開しました