兵器登録コード

1兵器あたり88(58h)バイトのアドレスで管理され、
1陣営あたり64兵器の計5632(1600h)バイト、
5陣営総計320兵器、28160(6E00)バイトで構成される。

アドレスは鋼鉄・作戦ともに共通で8000h~EDFF。アドレスが10000hを超えることはない。
このセクションの値の変更はセーブデータには一切記録されないため、変更内容を保持したければステートセーブ等が必要になる。

マップ毎に出現可能な兵器を定め、兵器ごとの詳細な仕様を定義している領域。
逆に言えば、ここに登録されていない兵器は、例え改造コードを駆使しても出すのが難しい。
このセクションの書き換えにより全く同名・同性能の兵器を作ることまではできるが、
兵器アイコン(マップ上の見た目)はマップファイルに直接格納されているため、
マップファイルに含まれていない兵器アイコンは出すことができないのである。
一応兵器アイコンのコードも発見しているが、1アイコンあたり512ドット(256バイト)を書き換えつつ
マップをロードする必要があるため、いずれにせよ非現実的といえる。

他方バイナリ編集ではUNITPACKファイルのデータ構成とそのまま対応しており、改造において最重要の意義を担う。
武器・武装データや、マップデータ中のアイコンデータの編集と組み合わせれば、自作兵器の制作すら可能になる。

自陣営に輸送車・輸送機が登録されていない場合、兵器を輸送車・輸送機に格納できない(バグる)。
また進化先のコードを弄ったとしても、進化先は自陣営に登録されている兵器でなければならない。
この仕様のため、同じ国の同じ兵器でも陣営が違えば陣営ごとに登録されているのが普通である。
ただし片方の陣営にしか登録されていない場合もある。
例えば米キャンペーンでは空挺隊(米)が自陣営に一切登録されていない。これが進化できない理由である。

なお兵器が直接生産可能かどうかは、陣営あたり登録第30番目以内というのが条件である。
よって下記88バイト内で生産可能かどうかを定義するコードはなさそうではある。
空→陸→海の順に並んでいる必要はなく、防御タイプ(アドレス8047)の値に応じて自動的に空陸海の生産リストに振り分けられる。
また生産リストの順番も兵器登録順である。

第1陣営 第1登録兵器のコード

アドレス 内容 備考
改造
コード
UNIT
PACK
8000 0 兵器指定値
(2バイト)
無改造状態で、ここに目的の兵器指定値があるかどうかが、
その兵器が登録されているかどうかの条件となる。
なおここだけを書き換えても兵器性能は変化しないが、
新規でその兵器を出現させた際のポリゴンが変わる。
(既存部隊のポリゴンは部隊コードで定義されている。)

マップロードまたはフェイズを跨ぐとアイコンも変化する。
やはりそのマップに登録されている兵器指定値でなければ正常に変化しない。
(不正の場合、ダミー(0000)用のアイコンになる。)
8001 1
8002 2 兵器名
(1バイト文字×10)
文字指定値一覧の1バイト文字を参照。
通常1バイト/1文字だが、稀に2バイト分使って1文字を表現している場合もある。
なお10文字目まで指定できるが、文字が溢れてしまうため、通常9文字目までしか定義されない。
 ~
800B B
800C C 兵器名
(2バイト文字×10)
文字指定値一覧の2バイト文字を参照。
ただし10文字目は通常FFFFで、ここを弄るとバグる。
800D D
 ~
801E 1E
801F 1F
8020 20 兵器運用開始年(10進)? 現在のところ、以下が判明。
・アドレス8020、8022の値は30~50、
・アドレス8021、8023の値は1~12 のいずれかの値をとる。
・値にA~Fが一切含まれていない(10進法で記述している?)
・常に アドレス8020の値 ≦ アドレス8022の値
・新兵器ほどアドレス8020の値が大きい

つまり、これは新兵器開発・旧兵器破棄といった運用期間を
10進で示している可能性が高い。なおゲーム内で時期関係なく使われる兵器
(例えば共通の兵器群など)は39 01 50 01 となっていることが多い。

ご存じの通り、コードで日付を弄っても生産開発可能な兵器が変化するわけ
ではないし、この値の操作がゲーム内で何らかの影響を与えるかどうかは不明。
CPの途中で強制進化、処分される兵器の後半2バイトが50 01だったり、
逆に43 12なのに最終マップ(46年)でも生産出来たり、
実際のゲームとの不一致も多い。わざわざ10進表記してあることから、
開発者のためのメモという位置づけなのかもしれない。

開発表上の表示にも影響を与える(後述)。
8021 21 兵器運用開始月(10進)?
8022 22 兵器運用終了年(10進)?
8023 23 兵器運用終了月(10進)?
8024 24 進化1
(2バイト)
兵器指定値を用いる。ここの値を書き換えることで、任意の兵器に進化可能になる。
マップエディット目的では一番活躍するであろうコード。
8025 25
8026 26 進化2
(〃)
8027 27
8028 28 進化3
8029 29
802A 2A 進化4
802B 2B
802C 2C 価格 10$単位
(2バイト)
正確にはユニットの1補充あたりの価格。なので生産時(10ユニット)なら10倍になる。
802D 2D
802E 2E 開発表上の位置
(2バイト)
開発表のどの位置に兵器が載るかを示す。値が増える毎に、左上からИ字型に移動する。
カテゴリごとに以下の値を示す。

掲載なし:0000 戦闘機:0065~0074 攻撃機:00C9~00D8 爆撃機:012D~013C
牽引砲:0191~01A0 軽戦車:01F5~0204 中戦車:0259~0268
重戦車:02BD~02CC 歩兵:0321~0330 艦艇:0385~0394

ただし、開発表上でNOTとなっている位置を指定しても無効。
また見ての通り、カテゴリごとに値が飛び飛びになっている。

同じ位置が指定されている兵器が2つ以上ある場合、アドレス8020~8021の2バイト値が
大きい方が優先される。(結果、新兵器になる程優先される)
アドレス8020~8021も同値の場合、兵器登録順が後ろのものが優先されるものと思われる。
802F 2F
8030 30 兵器種 値の種類がかなり多いので、詳細は別表(下記参照)にまとめた。

<影響を受ける項目>
・歩行アニメーション(ここの値が歩兵系(18~1A)である必要がある)・占領可否(〃)
※例外的に鋼鉄のキョウリュウのみ兵器種トーチカで歩行アニメしているが、
プログラム上無理が生じたのかアイコンが表示されないバグが起きている
・パレットアニメーション(直ちに切り替わらないが、マップリロード等で変化する)
・変形可否 ・移動時の効果音(エンジン音など)
・トーチカ(31)を指定すると、回復タイプの値に関わらず回復不可になる(進化も不可)
・進化可能場所(航空兵器に地上の兵器種を適用すると、進化可能場所は都市になる)
・(COM操作時)都市(司令部周辺)、空港、港のどこで生産するか
・生産後空陸海のどのグループに振り分けられるか
・補給車が隣接していると回復するか(回復タイプに都市が指定されていないくても回復できる)
8031 31 移動力
8032 32 燃料上限
8033 33 全兵器共通で値01が適用されている模様。(兵器指定値0000:ダミー のみ00)
8034 34 最大補充量 1ターンあたりのユニット補充の上限を指定。
例えば歩兵系は殆どの場合5、戦艦系や一部の超兵器などは1に指定されている。
なお資金が少ない場合、補充量はこれより少なくなる場合がある。
8035 35 移動タイプ 地形(地形効果)における移動コストに影響を与える。ただし空中待機時の燃料消費、
輸送機・輸送車への変形などの付随仕様はこちらの管理下ではなく、
兵器種のコードに依存する。

00:ダミー 01:航空 02:装軌基 03:装軌弱 04:装軌浮 05:半軌 06:半軌弱 07:装輪路
08:歩兵車 09:補給 0A:歩兵基 0B:歩兵雪 0C:固定 0D:艦艇 0E:輸送艦 0F:予備

・00:ダミーは01:航空と同じ性能と思われる。
・0F:予備 は使用未確認。
・値10以降は兵器性能画面がバグる。
動員兵(日)(改造コードでしか出現しない)のみ、値31が適用されている。
(こちらも性能画面がバグっている)
8036 36 索敵 6が最大。7以上を指定すると、性能画面上は設定値通りだが、
索敵0と同じ仕様になってしまう(索敵0の場合、未索敵領域に入ると
自らの姿が見えなくなり、その後は選択もできない)。
対潜索敵>索敵の場合、未索敵領域の中に潜水艦だけが表示されたりする。
8037 37 対潜索敵
8038 38 搭載可能数 4が最大。
8039 39 進化ランク値 この値を基に、進化に必要な経験値が計算される。
進化前兵器のこの値をX、進化後兵器のこの値をYとすると、

Y-X≦0 の場合、必要経験値 50
Y-X≧4 の場合、必要経験値 250
それ以外の場合、必要経験値 50×(Y-X+1) となる。
要は差が1つ大きくなるにつれ必要経験値が50ずつ加算される。

例えばすべての兵器を一律同じ値にすると、常に経験値50のみで進化可能になる。
また値がどれだけかけ離れていても、進化コード(アドレス8024~802A)
さえ設定されていれば、経験値MAXで進化できる。

あくまで進化に用いるランク値であって、兵器性能そのものとは必ずしも比例しない。
ご存じの通り、(Y>Xにも関わらず)進化改良後に性能が下がる場合もある。
ちなみに正規の最高値はヤークトティーガーの16h(10進で22)。
803A 3A 武装指定値I
(2バイト)
武器指定値とは仕様が異なり、1つの2バイトコードで武器1~4の種類・弾数上限を
まとめて管理している。新規生産兵器の武器種類・弾数はこちらに依存する。
I~IVは航空機における武装切替用であり、航空機以外はII~IVが0000になる。
803B 3B
803C 3C 武装指定値II
(〃)
803D 3D
803E 3E 武装指定値III
803F 3F
8040 40 武装指定値IV
8041 41
8042 42 対空防御
8043 43 対地防御
8044 44 対艦防御
8045 45 回復タイプ ビットフラグ形式で補給可能箇所を定義。
01:空港、艦船搭載 02:都市 04:港 08:補給不可 10:?
キャンペーン自軍の補給車はここが08になっている。
二式飛行艇は01+04で05になっているため、空港と港の両方で補給可
ただし補給車が隣接していると回復できるかどうかは兵器種に依存する。
8046 46 空母:01、補給車:02、他の兵器:00 と設定されている模様。
8047 47 防御タイプ ここの値を編集することで防御タイプが変化するが、他にも様々な特性が変化する。
01:司令部 02:航空 04:装甲 08:非装甲 10:艦船 20:潜水

<影響を受ける項目>
・ZOC特性 ・武装変更可否(ここが航空なら他の設定が陸上でも可)
・(人間操作時)都市(司令部周辺)、空港、港のどこで生産できるか
(ただし生産後の空陸海グループの振り分けは「兵器種」の値に基づく)
・地形効果の有無(例えば航空(02)を指定すると地形効果が常に0になる)

これも見ての通りビットフラグ形式と思われるので、
複数の防御タイプを兼ねることも可能かもしれないが、何が起こるかは不明。
8048 48 搭載可能兵器(海) ビットフラグ形式で搭載可能兵器を定義。下のアドレス8049の値と対応。
例えば10+01で11にすると、8049の値が10の兵器と01の兵器を搭載可。

輸送船は3E、空母系は01になっている。3Fに変更すると空母兼輸送船になるが、
搭載時補給が行われるかどうかはアドレス8045(回復タイプ)による。

なお、輸送船と同じような形の輸送車は実現困難。陸上兵器にこれを設定しても、
格納した陸上兵器の展開が港・砂浜でしか行えないためである。
しかし3Fの場合はなんと乗せた陸上部隊を「発進」することが可能になる。
(艦載機のビットフラグが有効なのが条件。港・砂浜でなくても陸に接していれば発進可。)
8049 49 着艦・乗船タイプ 詳細は上記参照。なおここの艦載機フラグが有効であれば、
他の設定が地上であっても空母への着艦・発進が可能になる。
00:着艦・乗船不可 01:艦載機 02:補給車 04:装甲 08:非装甲(歩兵・牽引砲除く)
10:歩兵(トラック変形可除く) 20:トラック変形可(輸送車自体も含む)
804A 4A UNITPACKファイルではこれ以降の領域は全て00で埋められる。
(下記8054~8057の値も00であり、マップロード後に自動的に変化する)
 ~
8053 53
8054 54 アイコン(マップ上の姿)
(2バイト)
登録されている兵器の範囲内で、兵器アイコンを変えることができるが、
登録されていない兵器のアイコンに変える手段はない。
アイコングラフィックはマップファイル側に格納されており、
その数も限られているためである。また0000~00AFは(恐らく)
メニューアイコンなどのために確保されている領域であり、
実際の兵器アイコンが出現するのは00B0以降である。
基本的には兵器登録通りの順番であることが多く、
歩兵系は歩行アニメのため、アイコン枠を3枠使用する。
登録アイコン領域の後は、何も見えなくなるか、グラフィック断片などが出現する。
なお、ここでアイコンを変更しても、コード実行停止後ターンやフェイズをまたぐと、
兵器指定値(アドレス8000)通りの姿に戻る。
8055 55
8056 56 アイコンのパレットアニメ、
陣営色など
兵器アイコンのパレットアニメーションや色などを管理。
なお、歩兵の歩行アニメはこちらでは管理していない。

00:点滅(航空機のプロペラ、牽引砲の砲口など) 01:静止
02:キャタピラ駆動(車両、戦車など) 03:静止
04:水面の波表現(艦艇など) 05:静止 06:静止

以上に+07h:第2陣営の色、以下第5陣営まで。
8057 57
  • 兵器種詳細
兵器種 兵器種 兵器種 兵器種
00 - 10 TD 駆逐戦車 20 BC 巡洋戦艦 30 ES 補給・工作車
01 FC 艦上戦闘機 11 R 対空戦車 21 CA 重巡洋館 31 G トーチカ
02 F 戦闘機 12 RU 自走高射砲 22 CL 軽巡洋艦 32 A ダミー
03 FD 局地戦闘機 13 U 自走榴弾砲 23 DD 駆逐艦 33~ 以降は画面がバグる
04 FA 戦闘攻撃機 14 - 24 Z 潜水艦
05 DB 急降下爆撃機 15 QT 牽引対戦車砲 25 CV 空母
06 AC 艦上攻撃機 16 QR 牽引高射砲 26 CVL 軽空母
07 A 陸上攻撃機 17 QU 牽引榴弾砲 27 -
08 B 爆撃機 18 I 歩兵 28 -
09 - 19 MI 機械化歩兵 29 C 輸送機
0A - 1A AI 空挺兵 2A T 輸送車
0B SC 偵察車 1B - 2B HQ 司令部
0C LT 軽戦車 1C - 2C TR 輸送船
0D MT 中戦車 1D - 2D FCA 重巡
0E HT 重戦車 1E - 2E FBB 戦艦
0F AG 突撃砲 1F BB 戦艦 2F FCV 空母

他の登録兵器のコード

  • 第1陣営 第2登録兵器のコード
→上記アドレスに+58h
 第3登録兵器以降も同様
 以下陣営ごとに第64登録兵器まで

  • 第2陣営 第1登録兵器のコード
→上記アドレスに+1600h
 第3陣営以降も同様

以下第5陣営 登録第64登録兵器まで
最終更新:2024年05月25日 23:26