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

最新の投稿

スーパーロボット大戦F 武器アニメーションスクリプトファイルの解析を開始しました

 BNE2設定ファイルを作成する際の課題として、第4次のように武器アニメーションの各攻撃エフェクト表示位置を変更できる事を命題としていましたが、色々と試行錯誤してみた結果、どうやらエフェクトの表示位置はシステムファイル内ではなく武器アニメーションスクリプトファイルの中に格納されているらしい事までは分かってきました。まだはっきりとした事は分かりませんが,、基本的には第4次と同じように武器アニメーションのアニメパターントスクリプトのコマンドコード内で座標を指定し、そこからユニットID毎のアニメーションエフェクトや武器グラフィック表示の指定座標設定を反映して最終的に表示させているもようです。  先にこれらのデータを調べた方によると「Fのアニメーション座標指定はアニメーションIDでしっかりと固定されており第4次のようにユニットID毎に細かい表示座標指定はできない」というお話でしたが、そうなるとビームサーベル各種やビームライフルのアニメーションのように多くの機体でアニメーションIDを共用している武器のアニメーション表示の説明がつかないので、やはり何らかの形で第4次と同じような方式を採用しているのだと思います。PS系のプログラムに使用されているR3000の仕様に詳しければもっと簡単に解析ができると思うので、もっとしっかりと勉強しなければいけませんね。

第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次スーパーロボット大戦 改造コスト&改造数値分岐パッチを公開しました

第4次スーパーロボット大戦 「マジンガーZ」&「ゲッターロボ!」改変パッチを公開しました