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

最新の投稿

第4次スーパーロボット大戦 BGM追加 「ジョジョの奇妙な冒険~激闘~」

 コブラジョジョことSFC版ジョジョの奇妙な冒険といえばコブラチームが世に送り出した事で有名ですが、ゲームデザインとシナリオに関してはコブラチーム(バンダイ)が、実際のゲーム制作に関してはウィンキーソフトが担当していますので当然サウンドドライバはいつものウィンキーソフト仕様となっています。今回はジョジョのサウンドドライバやサンプリングデータなどの解析がてらDIOの館のテレンス・ダービー戦以降のスタンド使いとの戦闘で使われている中ボス用BGM「激闘」をコンバートしてみました。解析内容に関しては時期的な事もあってかヒーロー戦記のサウンドドライバと同一の仕様で各種データや展開先などの管理方法も同しなのですが、ROM内のデータ収納先は全然違う位置でした。ジョジョの場合は無圧縮のグラフィックデータがROMの後ろ側に大量に入れてありますので、その関係かもしれません。  さて、「激闘」にはギター系のサンプリングデータが大量に使われているのですが、例によって第4次側にジョジョ側のサンプリングデータに似たものがあまりなかった事とサンプリングデータの組み合わせ次第ではバッファオーバーフローを起こしてフリーズしたり戦闘中にSEがうまく再生されなかったりするのでかなりアレンジする羽目になってしまいました。ゲスト系のボスクラスBGMとして使ってみると面白いかなと思ったのですが、実際に使ってみると何だかイマイチな気がしなくもありません。  ちなみにこのデータを作成後にもう一度解析を行ったところ、ジョジョに関してはいくつかのサンプリングデータでヘッダやサンプリングデータの一部の記述を工夫すれば第4次でも使える事が判明しました。ひょっとするとジョジョやヒーロー戦記のサンプリングデータはヘッダの仕組みを理解すれば原則として全て第4次で使えるのかもしれません。そうなるとBGMデータのコンバートがかなり楽になるのですが、それはまだ先の話になりそうです。

第4次スーパーロボット大戦 マップ上でのユニット展開数増加不具合の原因判明とSRAMの仕様による一時断念

 マップ上にユニットを65体以上展開させた場合の不具合の原因が判明しました。結論から言うと、現状では一時断念せざるを得ません。HiROMの状態ではRAM容量(外付けRAMを含む)の不足でオーバーフローし、65体目以上のユニット情報が維持できないというのが不具合の原因でした。マップ上で展開しているユニットの情報はRAMの7E2000、7E4000、7E6000の各領域にリアルタイムで読み書きされているのですが、この単位が0080hのため0080*40(64体分)=2000hとなり、65体目以上の情報が維持できなくなってしまうのです。これがLoROMであればSRAM領域を1バンクあたりにつき4000hまで展開、最大で256Kbまで拡張できるので該当するデータを大容量化したSRAMに逃がして問題解決となるのですが、HiROMの場合は1バンクあたりのSRAM領域が2000hしか維持できないうえに128Kbが容量の限界となっています。多量のデータをSRAMで処理している魔装機神ではHiROMではなく従来のソフトによくあるLoROMという仕様(32MBLoRAM+32kbSRAM+SA-1チップとやや特殊ではありますが)を採用しているのはこの対策のためだと思われます。大容量のデータの場合はROM情報を特殊チップ仕様に変更してそちらで処理するという方法もあるらしいのですが、現状ではそれらしい資料が見つからず、これといってよい方法が見つかりません(一応リザーブRAM領域にデータを逃がすと正常に動くように見えるのですが、やはり維持できないのかだんだん動作が怪しくなり最後は突然ゲームオーバーになったりフリーズします)。魔装機神と同様にメモリマップをLoROMに変更する事も考えましたが、さすがに作業量を考えると厳しいものがありますので改善策が見つかるまで一時断念し、まずはSRAMに登録した増加ユニットの正常動作だけを目指す事にします。

コメント

人気の投稿

第4次スーパーロボット大戦 BGM追加 「バトルロボット烈伝~通常バトル~」&未使用機体グラフィック ヤクト・ドーガ(緑)

第4次スーパーロボット大戦 未使用BGM「THE LAST JUDGEMENT」の不具合修正パッチを公開しました