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

最新の投稿

第4次スーパーロボット大戦 戦闘アニメーション数拡張パッチの作成計画

 ご無沙汰しております。リアルの生活でかなり忙しい日々が続いており、なかなか各種コンテンツの更新ができず申し訳ございません。正直なところ新たなメンバーを迎えて様々なソフトの解析やパッチ作成などを充実させていきたいのですが、そういう訳にもいかないのが現状です。  さて、本題に入ります。第4次スーパーロボット大戦の戦闘アニメーションは本来512種類、予備のオフセット絶対値を使用すれば最大で1,024種類まで作成できるのですが、恐らくROM容量の関係で本来のオフセット領域にまで戦闘アニメーションのデータを書き込んでしまっています。このため、私は戦闘アニメーションのデータそのものを拡張したROMの空き領域に移して仕様変更しています。また、戦闘アニメーションで使用するSEに必要な波形データ設定のオフセットテーブルも拡張して512種類まで設定できるようにしていますが、これを1,024種類に拡張するにはプログラムそのものを書き換える必要があります。これを書き替えなかった場合、513番目の戦闘アニメーションには1番目の戦闘アニメーションの波形データが、514番目に戦闘アニメーションには2番目の戦闘アニメーションの波形データが…というように適用されていきます。それはそれで同じ内容の色やオブジェクト違いの戦闘アニメーションを量産する際に便利なので敢えて書き換えないという方法もありますが、それはさておきこれらの拡張データを設定できるようにしたパッチを作成しようと検討しています。しかし戦闘アニメーションの拡張や作製に関する関心や研究はSFC版スーパーロボット大戦のロムハック界隈ではほぼ皆無なので、そこまで熱が上がらないのも事実ではあります。実際問題として戦闘アニメーションのスクリプトやアニメパターンコードの調査をしているのは私の知り得る限りTileViewerの作者様、友人が三名、そして私の計5名しか心当たりがありません。これは武器数数拡張パッチがいまひとつだった事から、そもそも武器の種類やアニメーションの数はさほど重要ではないという事実の裏返しなのかもしれませんね。  とりあえず、私が使用しているROMと同じようにオフセット領域の拡張や各種スクリプトデータの移設と仕様変更、そして一部の武器アニメーション(ビームサーベルやビームライフル、ビーム砲など)の色違いアニメーションを組み込んだもの

スーパーファミコンのLoROMイメージのHiROMイメージ化について

 キャプテン翼4や紋章の謎などの各種データ拡張のためにROMイメージの大型化を検討していましたが、LoROM特有の面倒な仕様=8000h単位でバンクが切り替えられてしまうため、大きなデータを移設するには色々と不自由していました。そこで、ふとした思い付きからROMイメージの仕様そのものを変更できないかと試みてみました。簡単に言えばLoROM仕様のROMイメージをHiROM化する事によりバンク切り替えの仕様を8000h単位から倍の10000h単位にしてしまおうという訳ですが、各種プログラムを移動させるとアドレスアクセスのためのデータを全て変更しなければならず、さすがにそれは面倒なので試しに元のLoROMの各バンク8000h毎に8000h分の空データ(=全て「00」や「FF」で埋めたダミー)を挿入し、これにより各アクセスアドレスを変更する事なくデータ位置を変更し、なおかつROMヘッダの15h(00FFD5)に+01してHiROM化してみました。これで理論上はアクセスデータのアドレスを変更する必要はない事になります。

 これによりROM容量は元の倍の容量になってしまいましたが、1.5MBのキャプテン翼4(変更後は3.0MB=24メガバイト)や2.0MBのキャプテン翼5(変更後は32メガイト)はLoROMではなくHiROMとして認識され、かつ本来はメモリマップ上の領域が変更されるはずのSRAMも正常に読み書きがされました。なお、変更前に3.0MBだった紋章の謎は6.0MB(=48メガバイト)に拡張したところ残念ながら正常に起動しませんでした。エミュレーターによるのかもしれませんが、どうやら拡大後のROMイメージが4MB=32メガバイトに収まり、そしてSRAMの容量が8KBのように小さければLoROMの状態でもHiROMの状態でも問題は起こらないようで、正常にROMの中身が所定の位置にメモリマッピングされています。そしてこれを実行した後でメモリの状態を調べてみると、どうやらの400000~7DFFFFはROMの中身の常にLoROMの状態=つまり下位アドレス状態で408000から10000h単位で展開されており、上位アドレス(4000000や500000)には何も書き込まれていません(=「00」の状態)でした。ROMの上位アドレスに書き込んだデータはC00000以下のアドレスから読み込む事が可能で、HiROM化してあれば当然バンクの単位は10000h単位として扱う事が可能です。また、各種アドレスのアクセスにもHiROMと同じアドレスが使用できるようになるので作業性は大幅に向上します。

 これから先どんな不具合が発生するのか十分に調査する必要性はありますが、LoROMのソフトの容量拡大を考えておられる方は従来のようなROMイメージの末端を拡大する方式ではなく、この方式を参考に作業をされてみてはいかがでしょうか。実験に使用したキャプテン翼5のROMイメージ用パッチを作成しましたので、ROMイメージやメモリの構造がどのように変化するのか確認してみたい方は以下のURLからダウンロードして下さい。


https://ux.getuploader.com/retrogamelaboratory/download/86

コメント

人気の投稿

第4次スーパーロボット大戦 武器数拡張パッチを公開しました

キャプテン翼4 レベル補正変更パッチを公開しました

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