獄まったスパロボα

Counter

スパロボαでは資金が全然貯まりません。
それでついつい数年ぶりというデータ改造に手を染めてしまいました。
ここではこっそりそのデータ改造ノウハウを公開します。

道具

データ改造をすべくいろいろ調査した結果、強力な道具を発見しました。
この2つがあればWindows上で効率的に解析、編集ができます。

  1. メモリーカードキャプターさくら(以下MCCS)
  2. バイナリーエディタStirling(以下Stirling)

MCCSは読み書きが速く、またディレクトリエントリのチェックサムまで 面倒を見てくれるので編集してもデータが壊れることがありません。
ほかの、たとえばPS-MG2だと壊れたという報告があります。

Stirlingは解析に欠かせないファイルの比較機能はもちろんのこと、 一番の利点は構造体を定義してその上で編集できることでしょう。
解析の結果を簡単に利用でき、また情報交換にも便利です。
ちなみに、現在のスパロボαに関する構造体定義を以下に載せておきます。

Stirlingの構造体定義ファイル

では、これらの道具を使って改造する方法を以下に書いてみましょう。

改造その1:大金持ちになる!

まず、動機にもなった資金の増加を試みます。
資金は300hからの4バイトが対応します。
Little Endianなので4バイトめを0以外にすれば大きな値になります。

しかし、ただ書き換えただけではロード画面で「破損データ」と表示されます。
378hからの4バイトがチェックサムになっていて、こちらも対応して書き換える必要があります。
計算方法は4バイト単位のXORなので頑張って計算すればいいのですが、もっと簡単な方法があります。
303hは00のはずなので、303hと37bhの値を交換すればいいのです。

大きくなりすぎて表示がおかしくなっても困るので、 バイト全体ではなく下位4ビット分を交換しましょう。
たとえば37bhがE6だったら、 303hを06、37bhをE0にすればOKです。
ちなみに上位4ビットまで交換すると、8以上のときにマイナスになってしまい増えたことになりません。
そこまでしなくても億単位の資金が手に入るので十分です。

改造その2:強化パーツを揃える!

金持ちになったら当然武器やユニットを強化しますが、 もっと強くしたいと思うのが人情(笑)。
強化パーツを全部最大値(9個)にしてみます。

強化パーツは

がそれぞれ管理されています。

各ユニットの情報は3d0hから1ユニットあたり20バイトずつあります。
最初の4バイトが装備状況です。
たとえばマジンガーZに装備させると2ユニット分が書き変わりますが、 これはたぶんスクランダーなしとありの両方を同時に変えているものと思われます。
他にもそういうユニットはあります。
ユニットの残り16バイトは武器とユニットの強化段階に対応していますが、 どれが何に対応しているかは未調査です。

次に、パーツの総数ですが1A60hからの26バイトにあります。
これは1バイトが強化パーツの1種類に対応していて、 パーツリストに出る順序がバイトの並びに対応しています。

そこから6バイトおいて次の26バイトが装備していないパーツの数です。
総数と同じように1バイトが1種類に対応しています。

これらのデータにもチェックサムが別にあります。
1c00hからの4バイトがそれです。これも4バイト単位のXORです。
さらに、強化パーツはユニットが装備している数と総数と残り数のつじつまが合うようにしなければなりません。

これも頑張って計算すればいいのですが、もっと簡単な方法があります。
まず、ゲーム上ですべての強化パーツを装備からはずします。
当然総数と残り数は同じ数になります。
チェックサムはXORなので総数と残り数が同じ数である限り変化しません。
したがって、26バイトの2セットを全部9にするだけでOKです。
チェックサムを書き換える必要はまったくありません。

ここまでをやってみてからゲーム上で強化パーツを見てみましょう。
増やしたはずなのに持っていないと表示されているものがあります。
でも実はあります。表示されていなくても装備できてしまうのです。

これが気持ち悪いという人は1A5Chからの4バイトをいじれば大丈夫です。
これは強化パーツのどれを手に入れたかを示すビットマップです。
ビットの上位から順に1ビットが強化パーツの1種類に対応しています。
したがって、26個分なので4バイトをFFFFFF03とすればOKです。

この場合、チェックサムを自分で計算して修正する必要があります。

これであなたもアンドロメダ焼き使い放題。

改造その3:経験値を増やす!

上のもすでにそうかも知れませんが、少なくともここから下は クリアしてから試した方がいいと思います。
1368hから下は12バイトを1単位としてパイロットのデータです。
12バイトはstruct.defではSRWPILOTという構造体で書いてあります。
最初の2バイトはパイロットに固有のIDです。

ゲームの進め方でどの位置に誰のデータが来るかが異なります。
このIDでパイロットを特定する必要があります。
どのIDがどのパイロットかはこのファイルにあります。

ちなみにこれを書き換えるとシンジがダミープラグになったりクワトロがハマーンになったりしますが、
これでゲームを進めてもどこかでフッ飛ぶでしょう。
試したことはありません。

さて、IDの次の2バイトが経験値です。
ここを書き換えればレベル130超も夢ではありません。(通常は99が最高)

チェックサムは強化パーツのときと同じく1c00hからの4バイトです。
2人分同時におなじ量だけ増やせば計算のし直しもいりません。

ちなみに、レベルを100以上にしても一度敵を倒すとレベル99になります。
精神コマンド専用のキャラに適用するのがいいかもしれません。
ボスのレベルをメチャクチャ上げて脱力放題。

改造その4:究極の強さ99999ダメージ!

ここまでいくと明らかにやりすぎ。
バルカンですら99999ダメージが可能になります。

スパロボαでは通常の経験値とは別に格闘と射撃それぞれの経験値があり、
それによって格闘、射撃の値にそれぞれボーナスがつきます。

格闘の経験値は通常の経験値から4バイト飛ばした次の2バイト、
射撃の経験値はその次の2バイトです。

ここを大きな数値にすると格闘と射撃の値が大きくなります。
2バイト目を0xFFにすると3000を超える数値になります。
あまりに強すぎて必殺技を使うとオーバーフローしてかえって弱くなります。

これもチェックサムは1c00hです。
2人分をやれば再計算不要なところも同様です。

改造その5:使えないロボットを別のに替える!

ジム・カスタムとか登場マップ以外で使う人はあまりいないと思います。
それを別のマシンに替えることができます。
これをやると部隊を分割するときにフッ飛ぶことが分かりました。
そういうときは1つ前のマップで元に戻しておけば大丈夫です。


3c8hから下は20バイトを1単位としたロボットのデータです。
これもパイロットと同様に順序は固定ではなく、IDで特定しています。
このIDは特殊で、最初の1wordの下12ビットがIDです。
ちなみに、残り4ビットと続く1wordがユニットの強化レベルです。

あとは要らないロボットのIDを探してそれを欲しいロボットに変えればOK。
ロボットのIDはこのファイルにあります。
まだジャイアントロボなどが入ってないので不完全です。

チェックサムは1c00h。
同じマシンが2つあるときはそれを同時に変えれば再計算は不要です。
それ以外の場合は再計算が必要になります。

なお、キュベレイとかの敵が使うマシンに替えることも可能ですが、乗り換えができないのであまり使えません。
また、強制的に使うマシンを決められてしまうマップもあるので注意。

改造番外編:主人公の特技を増やす!

集中力やSP回復といった主人公の特技は誕生日と血液型で決まります。
誕生日と血液型はデータ中ではニックネームの後に出てきます。
ふと思いついて誕生日と血液型をいじってみました。
するとなんといじる前の特技が残ったままで新しい誕生日に対応する特技が増えているじゃないですか。
そしたらすることはひとつです。
集中力、SP回復、天才といった便利な特技を持った誕生日を渡り歩かせました。
できました。スーパー特技主人公。
特技が表示し切れなくなって地形特性が「空: 念動力LV6」なんてことになってる。
喜びいさんで次のマップへGO!
が、しかし…、天才の効果で高くなってたはずのレベルが元に戻ってる。
おや?と見てみたら増えてた特技は消え、誕生日から決まる本来のものだけになってました。
うーん、使えん。


ゲームのページへ