☆☆太平洋の嵐3☆☆

太平洋の嵐3」のセーブデータを解析してみました。自分好みのデータに書き換えて遊んでみてください。

太平洋の嵐とは1987年にPC9801用として発売され、以後版を重ねてきたGAM制作のシミュレーションゲームです。
太平洋戦争開始から終結までの期間を日本軍の側を持って戦いますが、ゲーム中のシナリオはたくさんあり、もっと短いものもあります。

作品名対応機種価格発売年度備考
太平洋の嵐PC-9801 E/F/M/VF/VM/VX/UV/UX/VA12800円1987年HDD非対応
太平洋の嵐DXPC-9801 F/M/VF/VM/VX/UV/UX/VA12800円1988年HDD非対応
太平洋戦記Windows 95/98/Me14800円1997年CD-ROM版
太平洋の嵐2セガ・サターン6800円1997年 
太平洋の嵐3Windows Me/2000 Professional/98/959800円2001年CD-ROM版


解析したデータはセーブデータです。太平洋の嵐3をインストールすると、プログラムがコピーされますが、そこにセーブデータも格納されます。フォルダ構造は以下のようになっています。
例えばCドライブにインストールした場合

 c:\Program Files \SSA \太平洋の嵐3

最後の太平洋の嵐3のフォルダ内部に SAVE00.DATから SAVE99.DATまでの100個のセーブデータファイルがあります。
このうちの任意のファイルを編集するのです。

なお、ここで扱うのは太平洋の嵐3発売後にメーカーから提供された修正プログラムを用いて元のプログラムを修正している場合のセーブデータです。セーブデータの形式は修正していなくても変わらないかもしれませんが、一応修正プログラムを利用してください。



【ツール】
セーブデータの読み書きにはバイナリエディタが必要です。私が使ったのはStirlingです。漢字で検索ができるので便利です。
まずこれを入手してください。
他に必要なのは16進数の計算ができる関数電卓ですが、これは Windowsに付属しているもので十分です。アクセサリの中などにあります。この電卓を関数電卓モードにして使います。


『セーブデータの解析と書き換え』

まず、バイナリエディタでセーブファイル(SAV**.DATの形式のファイル)を開きます。
目的のデータがある場所(アドレス)に行きます。(各アドレスはあとで説明します)
根拠地名や、書き換えたい場所に入っている数値(16進)等で検索すると目的の場所を素早く見つけることが出来ます。16進で検索するとき、たとえば4E20 なら 20 4Eで検索してください。バイナリファイルでは数字は低位の数から順に格納されるので、格納データで C0 27 09 というのは 0927C050 C3C350 の意味です。
当然のことですが、データを書き換える時は全て上書きしてください。挿入するとデータが滅茶苦茶になります。

10進数と16進数の変換は、Windowsに標準付属の電卓で簡単にできます。
例えば10進数で100と入力し、16進数に切り替えれば16進で64となり、これが16進数での100の意味です。


【根拠地のデータ】
アドレス 6AB0 あたりから根拠地データが始まっています。最初はアキャブで、以下50音順に並んでいます。

例えば東京の根拠地データは図のようになっています。


このデータについて各アドレスの意味を以下に示します。

アドレス図の数字意味備考
EAB700支配国00:日本、02:米国、04:英国、05:ソ連、06:中国
EAB8,B9E8 03平地 
EABA,BB2C 01飛行場 
EABC03工場種別00:なし、01:精錬所、02:製鉄所、03:精油所、04:人造石油、05:航空機、06:弾薬工場、07:造船所
EABD04資源種別00:原油、01:鉄鉱石、02:石炭、03:ボーキサイト、04:食料、0D:なし
EAC1,C2AF 1FX座標 
EAC3,C42C 0BY座標 
EAC5~EAD593 8C 8B 9E 00 00 00 00 00
00 00 00 00 00 00 00 00
根拠地名この場合は東京
EAD6,D7EC 2C泊地この場合は11500
EAD8,D900 00在泊船数この数字はあまりあてにならない
EADA,DB84 03現在工場能力最大工場能力は最後(EC96)にあります
EADC,DD2C 01資源生産量この場合は300
EAE000防御施設この場合は 0
EAE119戦闘部隊数この場合は25部隊
EAE202設営部隊数この場合は2部隊
EAE302整備部隊数この場合は2部隊
EAE444航空機コード航空機コード表を参照してください。この場合は99双軽
EAE5,E627稼働機数この場合は39機
EAE7,E800整備1の機数 
EAE9,EA00整備2の機数 
EAEB,EC00整備3の機数 
EAED,EE00整備4の機数 
EAEF,F000整備5の機数 
EAF1,F200整備6の機数 
EAF3~EBD3 以下同様に、根拠地に存在する航空機とその数が16個続きます
EBDC~DFF8 77 08 00原油根拠地に備蓄されている量。この場合は555000
EBE0~E390 D0 03 00鉄鉱石       〃        。この場合は250000
EBE4~E700 00 00 00石炭       〃        。この場合は0
EBE8~EB00 00 00 00ボーキサイト       〃        。この場合は0
EBEC~EFF2 03 00 00食料       〃        。この場合は1010
EBF0~F300 00 00 00       〃        。この場合は0
EBF4~F700 00 00 00アルミ       〃        。この場合は0
EBF8~FBE8 03 00 00弾薬       〃        。この場合は1000
EBFC~FFF0 CC 01 00重油       〃        。この場合は118000
EC00~0390 7E 00 00ガソリン       〃        。この場合は32400
EC04,0500 00戦闘機搭乗員数連度1、この場合は0
EC06,0710 00連度2、この場合は16
EC08,0910 00連度3、この場合は16
EC0A,0B10 00連度4、この場合は16
EC0C,0D00 00爆撃機搭乗員数連度1、この場合は0
EC0E,0F09 00連度2、この場合は9
EC10,1109 00連度3、この場合は9
EC12,1309 00連度4、この場合は9
EC96,9784 03最大工場能力この後のEC98からは次の根拠地データ

この解析データをもとにバイナリエディタで任意の根拠地のデータを書き換えることができます。例えば任意の航空機を配備したり、搭乗員の数を増やしたりできます。ガソリンの量を増やしたいなら、ガソリンのアドレスに好きな量を書き換えます。この東京のデータではEC00から4バイトの数字を書き換えることになります。ただしゲームで扱う数字の上限は999999、16進数でF423Fですから、これ以上の大きい数字を入れるとエラーになる可能性があります。
書き換える場合、低位の数字から入力することを忘れないようにしましょう。F423Fと入力する場合 3F 42 0F としなければいけません。


【天候】
天候はE9C00付近の鳳翔の説明文から 320バイト前のアドレスから地図の横8ブロックが16バイト毎に縦に5つ並んでいます。これは地図の横8×縦5ブロックに対応しています。下の図の緑色でくくった部分です。
数字の意味は、00:晴天、08:雨、10:豪雨、19:スコール、20:霧、28:雪、30:吹雪、3A:台風、43:しけ、となっていますが、この数字は下段アドレスに行くにつれ1ずつ増えます。すなわち2段目では晴れは01です。
新しいターンには天候も変化しますが、せっかく攻撃準備しても雨では空母から航空機は飛び立てません。このようなときにまずそのデータをセーブし、バイナリエディタで該当の天候を晴れに書き換えてしまえばいいのです。(笑)



【開発】
科学技術はDFE8E付近からあります。すぐ下に航空機の開発部分があり、各航空機名が並んでいますから見つけやすいでしょう。下の図の赤色のアンダーラインの部分です。
まず最初に日本の磁気魚雷、VTヒューズ、レーダー、液化石炭の順に開発数値が2バイトずつ並んでいます。この数値を書き換えればレーダーの開発をいきなり500以上にできます。
次にDFEAA(DFE8Eから29バイト目)から1バイト毎に開発に割り振られる数値が続きます。最初は磁気魚雷で以下順に並びます。


【航空機開発】
DFEB8付近から開発されている航空機のデータが海軍機、陸軍機の順で続きます。上の図の緑色のアンダーラインが零戦32型のブロックです。以後37バイト毎に航空機のデータが並びます。
航空機名の先頭アドレスから22バイト目が航空機コード、23,24バイト目が必要完成度、25,26バイト目が現在完成度。
続いて定数、事後の開発航空機コード。
図の零戦32型の場合、必要完成度は75 00なので117、現在完成度は03 00で3、次から03 02 03 04 05 06と並んでいるので、定数は3、零戦32型の次は零戦22型、零戦52型、零戦63型、烈風と開発が続くことになります。ついで2バイト後、図ではDFED9が開発会社コードです。(00:三菱、01:中島、02:愛知、03:川西、04:九州、05:川崎、06:立川、08:空技廠、09:航空廠)
次の雷電21型の場合も同様に必要完成度は636、現在完成度は3、定数は3、開発予定は雷電21型、雷電33型、烈風改、秋水となります。
開発を早くしたければ現在完成度の数値を必要完成度近くにすれば次のターンで開発完了となります。
なお、そのラインでの開発が終了すると航空機コードのところがFFとなります。


【航空機生産ライン】
E0A42付近から航空機の生産ラインのデータです。航空機名で検索すれば見つけやすいでしょう。35バイト毎に生産ラインのデータが並びます。
図で赤いアンダーラインは零戦21型の生産ラインです。最初の1バイトは生産能力で、この場合は08で8です。その4バイト後が航空機名で21バイトあります。航空機名の先頭から22バイト目(図ではE0A5B)が航空機コードで、次の2バイトが生産予定数です。次の2バイトが生産可能数です。つまり図ではE0A5Bから 01 64 00 04 00とあるので、零戦21型の生産予定数は100、毎ターンの生産可能数は4ということになります。次の FF 00 00 00 00ですが、4バイト目(E0A63)が生産会社コードです。この場合は 00なので三菱です。

なお、生産待ちの航空機の場合、航空機名の先頭から26バイト目が航空機コードで、27バイト目が生産待ちターン数を表します。図の深山(緑のアンダーライン)はE0AA6が1Dで深山を表し、次のE0AA7が生産待ち数なので0Fすなわち15ターン後に生産開始ということになります。この数字を1に書き換えれば次のターンに生産ラインに乗るということになります。


【造船所生産ライン】
DFB70付近から造船所のデータです。潜水艦隊のデータの後ですから、「潜水」で検索すると見つけやすいかもしれません。
先頭の地名コード(7D:横須賀、70:舞鶴、18:呉、47:長崎)の次から2バイト毎に艦船コード、17バイト後から建造状況です。

図の赤のアンダーラインは横須賀造船所のデータで、地名(7D)のあと 0D 00 0F 00 14 00 16 00 FF FF FF FF FF FF FF FFとあります。この意味は最初の生産ラインが000Dで軽空母「祥鳳」、次のラインが000Fで空母「飛鷹」、ついで装甲空母「信濃」、装甲空母「大鳳」となっています。FFは生産ラインに何も無いことを表します。
地名から17バイト目からは現在建造ステップ数です。この場合 63 00 BB 00 2C 01 17 00 00 00 00 00 00 00 00 00なので、軽空母「祥鳳」が0063つまり99ステップ、空母「飛鷹」が00BBで187ということになります。この現在建造ステップ数が8ライン16バイトあり、次からは各ラインの建造の種類が続きます。この場合は 全部新規建造ですから01ばかりです。(00:なし、01:新規建造、02:改造、03:修理)
したがって早く完成したければ現在建造ステップ数をその船の最大値近くにすればいいのです。次のターンには建造完了となります。


【艦船データ】
造船所で改造などするのはかったるいという場合は、いきなり艦船データを書き換える荒技もあります。(笑)
268F0付近から個々の艦船データが並んでいます。目的の艦船名で検索すれば容易に見つかるでしょう。
艦船名の先頭から7バイト前が艦船クラスのコードなので、改造可能な船ならその数字に1を加えて書き換えれば改造したクラスとなります。空母「翔鶴」ならクラスコードは01なので02にすれば対空火力増強型となります。
これを応用すれば02を05として「翔鶴」を加賀クラスにすることも可能です。


【艦隊データ】
DB0A0付近から艦隊データが並んでいます。艦隊名の6バイト前から4バイトがその艦隊の位置で(図の赤線)、X座標とY座標です。従ってこの値を書き換えれば艦隊を好きな場所に移動することができます。

例えば図の南雲艦隊は位置データが 28 3C 2A 12(X座標15400、Y座標4650)とハワイ付近ですが、これを 71 1F 61 0C(X座標8049,Y座標3169)と書き換えれば横須賀付近に持ってくることができます。
なお、艦隊の移動先は艦隊名の先頭から29バイト目から4バイトに座標の数字で書いてあります。この図の場合はDB0C5から FF FF FF FFなので、そこで止まっていることになります。


以上解説したデータを書き換えることによって自分好みのスタートデータを作ることができます。
例えば重油やガソリンといった資源を大量に備蓄したり、戦争末期に登場するような最新兵器を開戦初頭から戦場に投入したり、航空機搭乗員の数を増やしたり、任意の根拠地の資源を書き換えて大量に生産するようにすることが可能です。私は東シナ海で石油が生産されている世界を作ってみました。沖縄で原油が生産されるようにしたのです。ついでにシャンハイに精油所を作ってやりました。(笑)

しかし、バイナリエディタを使っていちいち書き換えるのは面倒と言えば面倒です。どなたかこのデータを使ってセーブデータ書き換えプログラムを作ってもらえませんか。(^^;)

と書いていたら、車 探偵長さんという方が掲示板にエディターを投稿してくださいました。
何度も改良され、解説が分割されていますので必要なバージョンをすべて掲載しました。
太平洋の嵐エディター ver.002
太平洋の嵐エディター ver.003
艦艇シルエット分割その1
艦艇シルエット分割その2
航空機シルエット1
航空機シルエット2
航空機シルエット3
太平洋の嵐エディター ver.004

なお、このプログラムを起動するにはMicrosoft .NET Framework Version 2.0がインストールされている必要があります。


home page
ホームページへ戻る