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

最新の投稿

第4次スーパーロボット大戦 続・地形適応のCOMPACTシリーズへの仕様変更案

 なかなか時間が取れず作業が進んでいませんが、僅かに余暇ができましたので地形適応計算の仕様変更案を形にしてみました。上の写真を見て頂くとお分かりのように、DC兵士が乗るドムの地形適応が「陸A」となっています。本来であれば下の写真のように「陸B」となるのですが、計算方法を変更した結果このような表示になりました。 ドムの機体としての地形適応 は次の写真のように「空-、陸A、海D、宇宙A」となっていますが、 仕様変更前は以下の写真のようにDC兵士の地形適応「空B、陸B、海B、宇宙B」のパラメーターに引っ張られる形で「空D、r陸B、海C、宇宙B」という結果になります。 これを仕様変更後はパイロットの地形適応を計算に入れないようにしています。それに伴い、現状では以下の写真のようにパイロットの地形適応表示を強制的に「-」で固定値にする(パイロットの地形適応は生きていますが、計算に使用しないので表示上は「-」とする)処理を追加して組み込んでいます。 これにより、見た目は単純に「機体の地形適応値=総合地形適応値」という処理(内部処理的には機体の地形適応値を再度加算)になっており、攻撃力や防御力の実効計算値も機体の地形適応値をそのまま使用したものになっています。この後はパイロットのパラメーター側のウィンドウのレイアウトを変更して撃墜数(これは単純に数値で表示できるように変更します。)と次のレベルまでの経験値を下側に表示、撃墜数と地形適応の表示欄を特殊技能のウィンドウとして拡張表示しスキルを6個まで表示できるようにできないか挑戦してみる予定です。

第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次スーパーロボット大戦 続・地形適応のCOMPACTシリーズへの仕様変更案

第3次スーパーロボット大戦 変更アイデアあれこれ