戦闘モード時のメモリ情報 追加分(仮)
ACのメモリ解析のための覚え書き
/ ガレージのメモリ情報
戦闘時のメモリ情報01
/ 戦闘時のメモリ情報02
/ 戦闘時のメモリ情報03
/ 戦闘時のメモリ情報04 /
戦闘時のメモリ情報05
戦闘中のメモリ情報(仮)
経津さんより頂いた追加のメモリ情報を一旦まとめた仮ページ。アドレスは全てMA。適当に改造して遊んだり、フリーズさせたり、「さて…こんなに沢山ど〜しよう?」と頭抱えてたりといった状態だったのでとりあえず簡単にhtml化。確認、検証、主にPPでのアドレスの確認などが出来たら既存のページに追記、もしくは新規にページに作って移動させようかと。
メモリデータ群配列マップ / ファイヤーコントロールデータ群 / ロジック設定関連
2D表示セッティング / ミサイル発射時設定
/ モーション連動処理データ群
3Dモデリング関連 / ACモーション配列群
/ ステージ照明設定関連
検索範囲の絞り込み用に適当にチェックしただけなのでデータ群の開始や終了位置は正確ではありません。見落としたデータ群もあるかも。特にアリーナシステム領域以前の範囲はほとんど未調査でざっとあたりとりした程度です。
※空改行はブランク群
※★はデータ構造を別ファイルに分離。
※可変長データは選択ステージやアセンによってデータ長が異なり、ヘッダでデータサイズなどを指定しているので手動で追加&削除もできるっぽい。
00:メモリ先頭アドレス。Pointer形式データの起点
この間未調査
011000〜011C5A:ゲームシステム領域ヘッダ(テキスト域)
011C5C〜011DAA:ゲームシステム領域ヘッダPointer形式データ配列(システム処理要素のインデックスリスト?)
011DAC〜036AF8:ゲームシステム処理領域("08 00
E0 03"から始まる親要素配列で構成?。マシン語っぽいのでアセン言語が解れば読めるかも?)
03700E〜03700E:未調査。何かの設定値配列?。ソートされた数値配列と一定長のパターン配列。以降システム領域用の処理用数列や設定値かなにか?
037010〜037107:未調査。1か2の羅列。
※システム領域の改造は処理の改変になり意図しないメモリデータが書き換わる場合があるのでテスト後再起動推奨(システム領域の値を元に戻しても復帰しない場合がある)。
※システム領域改変中にクラッシュした場合は再起動推奨。メモリデータを復元してもハードウェア(エミュ)側への影響が復元できず通常起こらない現象や暴走のリスクあり。
※ゲームシステム領域の改変値はゲームリセットしないと復帰しない。
037210〜037862:未調査。いくつかのデータ群集合?。Pointer形式データ配列、フラグ?配列、一定値のパターン配列など。
037C84〜037DBA:未調査。
037E0C〜03806A:未調査。0x4E長のデータ配列。
038074〜0381A4:未調査
0381AA〜0389AC:0〜4096の範囲で昇順にソートされたシームレスな値群、ロックサイトやカメラ関連に影響する値を確認。システム領域処理における定数などを格納する配列?。
0389BC〜038B4A:同、4096〜8175のソートされた値群。モーション連動処理(描画など)倍率に影響する値を確認。
038B60〜038CDE:4096〜2052の降順にソートされた値群。弾速等への影響する値を確認
038CEE〜03CCEA:昇順ソートの値と降順ソートの値が交互に配置されたデータ群。広範囲(全域?)でモーション連動処理倍率関連の係数?。
03CCEC〜03D4EC:0〜512、昇順。モーション系の処理用係数?
※ここまでがおそらくゲームシステム領域(プログラムの本体側)で末尾に""Library Programs (c) 1993-1997 Sony Computer Entertainment Inc., All Rights Reserved.""とある。
03E2EC〜040A7C:小データ群の集合、未調査。前半はモニタ表示関連らしきもの、後半はガレージモード用かな?
043C92〜043CC8:未調査。
043D0A〜04400E:未調査1E長のデータ配列群。
044020〜044030:未調査。
04404C〜04406E:未調査。
04407C〜044156:未調査。
04416A〜044460:未調査。
04477E〜045190:未調査、サウンド関連?
045198〜04519C:未調査
0451B8〜0453B2:★1P用ファイヤーコントロールデータ領域
0453B4〜045552:1P運動性能&機体性能&火器管制設定データ群(末端に1Pユニット参照用のPointer)
045558〜045752:★2P用ファイヤーコントロールデータ領域
045754〜0458F2:2P運動性能&機体性能&火器管制設定データ群(末端に2Pユニット参照用のPointer)
0458F8〜045948:未調査
045960〜04598E:未調査
045990〜04623E:カスタムアリーナ1機目アセン〜AI設定。
04625C〜04A7DE:同2〜9機目。
04A7E4〜04A8F8:全て0〜2(8bit値)、未調査。
04AA06〜04AA1E:小データ群、未調査。
04AB38〜04AB4E:小データ群、未調査。
04AB8C〜04ABBA:小データ群、未調査。
04AC70〜04AC96:小データ群、未調査。
04ACA0〜04ACC4:★AIロジックパラメータ1次配列、読み込み時参照用。カスタムAI作成中も有効。
04ACC8〜04B4C7:ガレージモード背景画像データ(何故かアリーナモードに入る時にも再生成される)
04B528〜04B83B:未調査、幾つか別のパターン配列を持つデータ群で境界不明。
04B848〜04BAA2:未調査。
04BE50〜04BFEA:未調査
04D450〜04D90A:未調査。
04DC50〜04DD46:未調査。〜ここまではガレージモードと配列パターンが共通な部分が多数。
04E5D0〜04EAF6:未調査、以降シームレスなデータ群内で戦闘中変動値多数。フィールド上ユニットの動作状態など?
04EB10〜04EC7A:未調査。
04EC94〜04ECD6:未調査
04ECE0〜04F08A:未調査。
04F188〜05093F:未調査。14byte長の固定値データ配列群。
050990〜050D5B:未調査。
050DFC〜052292:アリーナシステム領域ヘッダ。テキストに続いて処理要素のインデックスリストと思われるPointer形式データ配列。
052294〜096B8E:★アリーナシステム領域(システム領域とデータ構造と類似し"08
00 E0 03"から始まる要素で構成?配列内に小配列がある要素もあるなど不等長非同構造配列群。ガレージとアリーナで書き変わる)。わずかに設定パラメータが含まれるがほとんどアルゴリズム不明(マシン語っぽいのでアセン言語で読めたりするのかな?)。
08F138〜:アリーナシステム領域の武器(弾や判定)関連処理(冒頭がダメージ処理かな?)。
096B9C〜096F22:★2D系UI表示設定データ群。
096F28〜097082:★画像ベースのフィールドオブジェクト(樹木など)表示設定データ群、後半はRGB設定群(対象未調査)
※この間は上記オブジェクト設定用の空欄っぽい(周期的にヘッダ部分だけ残っている)。
097100〜097142:小データ群、未調査。アニメーションエフェクト関連か明滅光源のRGB?
097200〜097242:小データ群(上と同じ構造&データ長)、未調査。
097300〜097F00:おそらく上と同じデータの延長の空欄部分、100置きにヘッダ数値のみ。
098000〜09804A:小データ群、未調査。24bit(4byte)参照アドレス指定配列群。
098068〜0980AE:★背景画像設定データ。ステージ遠景設定、リプレイ中□×ボタン表示。
0980B0〜0980DA:続いて小型データ塊、未調査。リプレイ関連?
0980F2〜098100:何かのフラグ?。リプレイ俯瞰モードっぽいのがあるのでリプレイ関連?
098104〜09821A:軸無視武器の弾設定データ群
09821C〜09827A:★ミサイル発射設定データ群
09827C〜0982AA:キャノンデータ群
0982AC〜09884A:未調査。短いデータのパターン配列、SE関連?
09884C〜098856:チェインエフェクト
098858〜0988AC:機体破壊時エフェクト。終了アドレス不明、後半に基準高度ベースの値に-200以上の高度でスイッチする値が4つあるが別要素かあるいは下のロジック側のデータかも?。
0988B0〜098A9C:★ダメージ分岐型実効ロジックデータ領域(移動関連)。
098B74〜09995E:★2D系武器関連表示設定データ群、2D系文字非関連表示設定データ群
099960〜099A16:E系ライフルの弾設定データ群
099A30〜099A5A:機雷の弾設定データ群
099A5C〜099AAE:爆雷の弾設定データ群
099ACC〜099CD2:ハンドガン系の弾設定データ群
099D4C〜099D6A:未調査。
099D6C〜09A016:ロケット弾(ポリゴンモデル)系武器の弾設定データ群
09A1EC〜09A25C:着弾エフェクト設定(未調査。ブレードの着弾エフェクト指定あり、アニメーションタイプ用かな?)
09A260〜09A466:ミサイル弾設定データ群
09A468〜09A498:グレネードデータ
09A49A〜09A890:爆風データ群(※末尾のデータは用途不明)
09AAEA〜09AC24:再プレイ用の機体性能データのコピー?
09AE8A〜09AFC4:同CPU機体性能データのコピー?
09EFD0〜09F026:小データ群、未調査。フリーズ注意
09F128〜可変長:ステージ関連データ?、未調査。海底ドームの魚の移動関連やエリアラインの描画データなどを観測。
0A38CC〜0A3906:小データ群、未調査。全域が強制上書き
0A39C8〜0A3A4A:★フィールドオブジェクト型照明のRGBデータ。一部常に変化(おそらく明滅エフェクト)。
0A3AC8〜0A3B0A:これもRGBっぽい。ほとんど赤系統だけど用途不明
0A3BC8〜0A3C0A:同じく、赤系統とグレー?。
0A49C8〜可変長:★モーション連動処理データ群。機体モーションについて各種設定値などを参照した計算結果を最終的に格納する動的データ群、各パーツの位置や向き、スケール倍率など。前半が1P、後半が2P用。
0B49C4〜0B4CFF:未調査、ステージ照明の描画関連?。ステージ照明データセットとほとんど同じ(ブロックグループB〜Cにあたる部分の光源設定の数と値が異なる)構造と値のデータ配列、配列数も同じ18。冒頭に画面内の描画が動くと変動する値群があり固定すると機体の影が明滅する。
0B4E36〜0B4E72:小データ塊、未調査。照明データと類似フォーマット(1セット分)。
0B4F12〜0B4F66:未調査。照明データと類似フォーマット(2セット分)。
0B4F68〜0BB394:★ポリゴンベースの弾頭や爆風のモデリングデータ群、固定アドレス固定データ。
0BB396〜0BC406:未調査。固定アドレス固定データ。冒頭にステージモデリングデータ群のアドレス指定らしき値、武器のサウンドエフェクト関連?。データ群内の前半後半でフォーマットが異なる。
※以降は選択ステージ、アセン等で各データ群の先頭アドレスとデータ長が変動する。
※★以降は調査用アセン[4Sle6uGT,msCN]、調査ステージ海底ドームでのアドレス。
0BC5B8〜0C6A74(可変長):ステージ用モデリングデータ群。未調査。(このデータ群ヘッダアドレスはおそらく固定、以降浮動)
0BC610:ステージモデリングデータ長
0C6A76〜0C950A:フィールドオブジェクト関連のモデリングデータ群?。
0C950C〜0C9F3E:未調査、サウンドエフェクト関連に類似したフォーマット、位置的にも可能性大。
0C9516:モーション設定データ群のアドレス指定
0CA13C〜可変長:★モーション設定データ群
※簡易検索法:ステージ用モデリングデータ群後端の共通値(6899656464834560000:64bit)を検索しヒットした最後尾アドレスに+21C。
※モーション設定およびモデリング座標データは移動や弾速などの実座標とは単位が異なる。
0D1938〜可変長:コアモデリングデータ群
0D4938〜可変長:脚モデリングデータ群
0D9938〜可変長:頭モデリングデータ群
0DB138〜可変長:★腕モデリングデータ群(※左下腕ブレードモデリングデータの末尾にブレード判定に使われているデータあり)
0DF138〜可変長:ブースターモデリングデータ群
0E1938〜可変長:右手武器モデリングデータ群
0E3938〜可変長:左肩武器モデリングデータ群
0E4938〜可変長:右肩武器モデリングデータ群
0DF938〜可変長:2P側モーション設定データ群(調査アセンから脚のみタンクに変更した時も同じ)。
※0EB138〜:1Pが逆関節(1Pが401、調査アセンから脚のみ変更)時の2P側モーション設定データ群
※0EC138〜:1Pが軽二(カラス、調査アセンから脚のみ変更)時の同
※0ED138〜:1Pが重二(3001、調査アセンから脚のみ変更)時の同
※0EE138〜:1Pが中二(1001、調査アセンから脚のみ変更)時の同
以降おそらく固定アドレス
14FF68:未調査。大半が変動値で上書きされる。値を固定すると画面表示が明滅するので表示関連の処理中変数などの格納用データ群?。
172F68:同、2P用?。違うかも、上とほぼ同じデータ処理を時間差でしているっぽい?
195F68〜1A5F70:未調査。完全なパターン配列で大半が変動値。モニタ表示そのものの描画処理?
1A5F74〜1A608C:未調査。モニタ描画関連?
1A614C〜1A6194:小データ群、未調査。アセン、ステージで変化無しっぽい、Pointer形式データ配列?。
1A628C〜1A6294:未調査、24bit(4byte)参照アドレス指定の配列、未調査。冒頭の4byteが1Pのモーションデータ群を参照、次の4byteが2P用。後方に同フォーマットのデータ配列が複数、フィールド上のユニットリスト?
1A649C〜可変長:ステージ関連の地形ブロックデータリスト?。Pointer形式データを含む。
1A669C〜可変長:未調査、モーション連動処理データ群のヘッダから参照されており、かつ同データヘッダに1P実効処理データ群への参照がある。大半が変動値もしくは強制上書きされる。
1AC4B4〜1AC60F:★画面表示処理関連。冒頭にUI表示一括ON/OFF。使用されてないっぽい画面コントラスト(?)フィルター設定などあり、それ以外は強制的に上書きされる。
1AC610〜1ACD8C:★ステージ照明設定データ配列群。
1AD03B〜1AD0B3:未調査。
1AD240〜1AD4A9:未調査。冒頭に照明データっぽい配列、以降カメラか視点描画処理関連?
1AD4D0〜1B14CE:未調査、16byteおきに"FFFF"のみ。
1B14DC〜1B1836:未調査、たぶん着弾エフェクト処理のデータ配列格納領域。前半は開幕時0。
1B1838〜可変長:未調査。ステージオブジェクト判定関連?
1C1838〜可変長:未調査。ステージブロックデータ群?。次のデータ群へのPointer形式参照を含むデータ配列群。
1C9838〜可変長:未調査ステージ描画関連?
1D183C〜可変長:未調査、おそらくステージ関連、全域が変動値もしくは強制上書きされる。
1D3610〜可変長:未調査、ステージ(地形)判定関連?
1D55D8〜可変長:未調査、ステージ(地形)判定関連?
1D6760〜可変長:★ステージ環境設定関連?、エリアラインや背景(空)設定など。
1D8360〜1D870C:移動や機体動作などの実処理関連。速度や動作、APなどの実データ。
1D8718〜可変長:未調査、上記実処理領域から参照されており前半が1P用、後半が2P用。それぞれデータパターンが配列要素の配列アドレスリスト+配列要素っぽい多分アセン(脚)で変わる。
1DA71C〜可変長:レコード関連?、入力データ履歴の格納領域。
1E1F38〜1E21DE:★実効ロジックデータ群およびターゲット監視用データ領域。
1E21EA〜1E2216:カメラワーク関係。
1E222C〜1F0654:弾判定処理データの配列格納領域。
1FBF00〜1FC04E:未調査、何かの処理領域?、未調査。
間に小データ塊がいくつか。
1FDFA0〜1FE364:未調査。
1FECD0〜1FF898:未調査、これもロック関連?、0固定にするとロック開始時フリーズ、未調査
1FFB38〜1FFFFA:ロック関連処理領域、未調査。ロックや予測射撃時に関連するPointer形式データが生成されるので参照先を調査すれば何かわかるかも。
210000〜2103FA:未調査、何か(動作関連?)の処理領域、未調査。
211000〜2110F6:未調査
211800〜211826:未調査
〜21FFFF:メモリ領域終点
だいぶ前にミサイル初速を調べたついでで他のパラメータが無いかをチェックした時のメモに少し追記しただけのものですが一応参考までに。その後モーションやら判定やらいろいろ発見がありましたが、アリーナシステム領域はアルゴリズムが解らない現状ではほとんど意味無さげなのでスルーして下さい。
○ゲームシステム領域
・ゲーム起動時に生成されるので改変した値は再起動しないと復帰しない(全てのモードに影響する)、手動で値を戻しても復帰しない場合がある(処理を改変すると作業用メモリ領域を自動的に改変するっぽい)ので注意、検証や分析時には改変しない方がよさげ
・処理そのものの改変が可能っぽい、マシン語臭いのでお手上げ。
★は使い道のありそうなアドレス
12C36:移動関連処理?空中着地や水平移動制限等
1410C:描画関連?
141A0:描画倍率関連?
1444C:★視点広角化?
2A056:モーション関連?(四脚空中ブレが薙ぎ払いに近くなる)
389AC:カメラ倍率?
38CEE:★機体パーツ倍率係数?、この周辺は処理用の数列格納領域?(※アリーナとガレージでは描画倍率の仕様が違うっぽい)
※領域末尾にテキストコードで"Library
Programs (c) 1993-1997 Sony Computer Entertainment Inc., All
Rights Reserved."とある。
※これ以前はゲームシステム領域(PS仕様に沿ったプログラム本体側のメモリ領域)と思われるがACのゲームシステム側なのでパラメータに類するものも無いと思われる。
○アリーナ用システム領域
・ゲームシステム領域と同じ“08 00 E0 03”で始まるデータ配列でパラメータやセッティング等のデータとは異なり特定の処理データなどを格納していると思われるアリーナ用のシステム領域。
・先頭にインデックスと思われるPointer形式データ配列があるので、それを適当に潰してフリーズするかで目的の処理領域を調べられるかも?どのみち参照先のデータアルゴリズムがわからんちん(未調査)。
・パラメータ類がまぎれていないか思い当たる値やキリのいい値で検索しながらざっと周辺の当たり取りをした程度。
・確認できたパラメータは重力加速度およびブレホ中の重力加速度(爆雷やミサイル弾頭に対する重力加速度は不明)、ブレホレンジ、正負ブレホ範囲、ミサイル初速、迎撃レンジと思われる値もあるが正常に機能しない?。
※ミサイルと爆雷の重力加速度は未発見。同範囲で256、384、512、768で検索したが見当たらない(雑感で機体より大きい)。
4EDF8:サウンドON/OFフラグ?…と思ったら前に飛びすぎてシステム領域じゃなかった。
この前未調査
56FB4:ジェネゲージ関連表示
57010:ジェネゲージ目盛表示
57032:ENERGY表示
57146:ジェネゲージ半透明化
57274:AP表示
572F4:レコードゲージ表示
574F6:enemy limit表示
5755F:敵AP表示
57908:レーダー表示
5791C:武器弾数表示
57BE8:方位計表示
57EFA:強制Timeup
57F0C:HUD表示
57F0E:HUD表示
57F10:カーソル表示
57F12:カーソル表示
57F70:CONTINUE表示
58022:GO
58036:READY(+GO)
58080:DRAW
5819E:色々消える
584E1:リブレイCOMカーソル消去
584EB:リプレイカーソル消去
584F3:リプレイYOUCOM消去
584F5:リプレイカーソル&ネーム消YOUCOM去
58678:HUD描画関連
※画面表示系は表示設定データ群で全て消去可能、UI表示はステージ照明設定領域に一括ON/OFFするアドレスあり。
5AEE5:このあたりは機体描画関連?
5AFC0:マスター描画倍率(参照元?)※アリーナでの描画は接続元の倍率を引き継ぐので均一に拡大縮小されない。
この周辺から機体モーション処理関連
5B630:パーツ分解(おそらくモーション中のパーツ関連の参照設定)
5B7EE:★モーションが狂う(アセンで異なる、、調査時アセン[sKc880EO,oA1z])。空中ブレードモーション:0、2、4、5、7、9、10、21、26(明滅タイミングで光刃の軌道が変わって見える)、37、41あたりがわりとまとも?。正規のモーション設定を発見したので改変が面倒な時用、四脚以外だと歩行等のモーションも狂う。
5B836:空中モーション関連?
5B841:腕モーション関連?
5B854:腕モーション周辺
5CCA2:ブレ判定消失
67EA8:★機体エフェクト表示(ブレード、ブースト炎の表示方法の切り替えが可能、周辺にスラストやマズルフラッシュなどのエフェクト照明関連もあり)
7482A:ブレード判定消失、別の理由で判定が消失するアドレスっぽい、周辺フリーズだらけなのでスルー
7B074〜7B46A:この周辺ブレード威力に影響、パラメータ系はなさげ。
7D5BA:ブレードモーション異常
7E79E:★PAUSE表示関連、消去可能、周辺未調査
802C8:この周辺ブレードやマズルフラッシュ等のエフェクトON/OFFに影響
このあたりから空中ブレード判定処理関連
80DB9:空中ブレード判定に影響(アセンで影響するアドレスが違うっぽい?、調査時は四脚)
80DC0:威力無効&強衝撃化?(衝撃0でもノックバック)
80DC2:威力無効
80DC8:判定変化(アセンで影響が異なる、調査時アセン[sKc880EO,oA1z])。0〜1中伸長多重、2〜3正面右寄り大伸長、4標準、5〜6ロス、7小伸長多重など(判定が可視化できないので適当、遊び用には便利)。ブレード判定設定を発見したので用済みかな。
80DCC:1で判定が正面に密集してかなり広く
80DDC:1で判定が右寄り前方に密集して広く
80DEA:左に長く前方分は消失?
80DFC:自ダメージ(自ヒットした分の判定も消費)
80E12:全体的に大きく右に旋回?、この周辺は微変化多数。位置や角度がズレたり拡大縮小したり?。
80E18:方位固定で大きく拡大?
80E34〜80E37:方位固定でより大きく拡大?
80E3A:方位固定でさらに拡大?
80E3E:方位固定で大きく拡大?
80E76:ブレホ無しで同条件で斬ってもヒット数が揺らぐ。
80EA5:以降未調査
80EEC:衝撃、威力が変動?ジャミングエフェクトが付く事も。
80EEE:威力無視して一撃死状態異常(火炎&ジャミング)
80EEF:衝撃異常。
空中の速度処理関連
80F14:★ブレードモーション中の重力加速度(ACテスト)
81000:空中ブレホ関連?〜
81250:★ブレードモーション中の重力加速度(アリーナ)
81468:1でブレホ中静止
815F4:★重力加速度(ACテスト)
8185C:1で地上ブースト静止
8194C:空中ブースト加速度の処理関連?
81978:★重力加速度(アリーナ)
81A9C:空中速度処理関連?
81D20:地上ブーストモーション関連?
予測射撃の処理関連
81DD4:フリーズ、必ず2P現在位置と1PFCSターゲット現在位置が同じ値?。
81DD6:同上
81E74:ロックオン(射撃系)関連?
81F50:2次ロックがずれる
81EF0:2次ロック無効
81F04:予測アルゴリズム関連?、2次ロック時間が変化、予測位置が変化、ミサイルには影響なし。
81FEC:2次ロック無効
82284:エイムギミック処理関連
823A0:ミサイルロック無効
823DC:ミサイルサイト外エイム有効(菱形のみ、鍵形はサイト内のみ)
82424:鍵形カーソル機能不全
826F0:ロック数増加(菱形カーソル再生成関連?)
82714:菱形カーソル消失
827FE:菱形カーソル手動化
82A3C:ミサイル発射無効
82A7C:プラズマ爆雷発射無効(射撃武器のEN消費処理かも)
82A92:プラズマ爆雷発射時EN回復
82AA0:プラズマ爆雷で入力中にエネが減り続ける
82AEE:プラズマ爆雷(右肩)選択発射無効(構えなくなる)
82B18:射撃武器が2連バースト風になる
82B28:同時発射無効?
82B34:発射時弾消費関連
82B48:指の弾消失。射撃武器関連
82CD4:右肩プラズマ爆雷構えなし
82CEC:マズルフラッシュ固定
82D10:射撃武器発射不能
82D2C:射撃武器を自動連射(値によってはリロードなしの手動連射)
82DEC:射撃武器の発射位置関連?
82E94:ロック中の射撃が狂う
82EC6:非ロック中の射撃が狂う
82ED0:非ロック中の射撃が狂う0で全方位
82F5C:1で指が大量のプラズマ爆雷化
82F7E:プラズマ爆雷が自機に当たる(近接信管化?)
82F90:プラズマ爆雷が通常爆雷化
830E8:発射時の弾の消費が狂う
8310C:指の弾速が狂う
83128:指の描画色に異常
8312C:指の描画色関連?
83130:指描画関連?
83134:指描画関連?
83150:指着弾片関連
83154:指着弾エフェクト
8321C:リロード関連?
ミサイル処理関連?(マルチの分裂設定がないか調べたがそれらしきもの無し)
832A6:ミサイル発射無効
832E8:ミサイル誘導無効
832EA:誘導無効
83344:マルチ発射方向
8337C:同
83390:同 上向き?
83394:同右向き
833CC:発射位置
833E8:ミサイル散開解消?
833F8:全周囲ランダム化?あるいは後ろ向き化
83410:垂直化
83498:★ミサイル発射速度(初速)
834B4:発射時の判定発生退避措置を無効化?
834F4:マルチが単発ミサに変化
83568:下
8356C:両方1で全弾バースト発射
83594:弾種が変わる?
835C4:ミサイルポッド非可動化
835C8:ミサイル構え無し(前の武器の姿勢のまま発射)
835D0:非推進(放物線投射)消費2
83674:自動発射化
83730:発射方向変化、複数同時発射
83744:推進無効(放物線投射)
83758:非誘導化
837C0:ミサイルロック関連?
837F0:フリーズ
83800:フリーズ
83830〜84582:まで不明(調査当時ブレ、指、マルチ、E爆雷装備、他の武器種だと思われる、一部ミサイル追尾中にフリーズ?)
84584:フリーズ
845A8:特定動作でタイムアップする
845B0:右肩(プラズマ爆雷)の位置が変わりモーションがおかしくなる
845C0〜845C6:1で両者炎上ドロー
迎撃関連
846D2:迎撃関連(0にすると迎撃無効)
84704:迎撃関連(8bit0で自ミサも迎撃)
8470A:迎撃関連(自ミサに反応)
8470C:迎撃起点がずれる?
84748:迎撃関連(自ミサに反応)
847D0:迎撃レンジ?
847F0:迎撃レンジ?(S0コアで調査)それっぽい動作をする時と関係無い時があるので不明。
848AE:迎撃範囲が広がる?
848B0:迎撃範囲が広がる?
848B2:迎撃範囲が広がる?
848D0:迎撃起点関連?
848F4〜848F8:迎撃レーザー光色?
848FA:ランダム光色化
8490C:迎撃レーザー光色?
8491C:迎撃レーザー光色?
8492A:超迎撃(1で100%撃墜、ただし範囲内1処理1撃墜なので全弾は落せない)
84930:迎撃成功率0?(レーザーは出る)
84933:超迎撃
84934:超迎撃
84960:迎撃成功時に破壊ではなくミサの位置が変わる?、5でノックバック?
849AC:迎撃成功時のみレーザー照射。レーザーは失敗時と成功時を別枠で描画してるっぽい。周辺は迎撃失敗時のダミー描画?
84A4C:レーザー残像(起点ズレ)
エネルギー処理関連
84A62:EN収支異常
84A70:EN消費異常
84A7C:EN回復異常
84B5C:EN収支異常
84B60:EN収支異常
84B7C:EN収支異常(後退時のみ消費)
84B88:空中で移動中EN消費(よく初代系のアンリアルとかいうあれ?)
84B8A:ブースター消費無効(EN武器の消費は有効)
84B8C:空中で常にEN消費
84BC0:ブースター消費異常
84BCC:ブースター消費異常
84BE2:ブースター消費異常
84BE4:ブースター消費無効(EN武器の消費は有効)
84BFE:EN回復不能
84C08:EN容量無効
84C14〜84C1A:EN容量上限無効
84C22:EN瞬間回復
84C24:EN回復不能
武器切り換え関連
84C3A:武器切り替え不能
84C60:武器切り替えエラー(あらゆる操作で切り替わる)
84C64:武器切り替えエラー(ループ)
84C6C:武器切り替え連射
84CA8:武器切り替えで何かの数値が表示される。周辺多数。
84CBC:を1にして切り替え続けると何か入力情報的なものが表示。
84D30:ブレード・ブレホ消失(判定は有り)
84D64:武器切り替えで強制モーション
84D66:武器切り替えでフリーズ
ロックオン処理関連?
84D9C:全武器ロックオン不全
84DA4:全武器ロックオン不全
84DD6:フリーズ
84DE6:ロックオンカーソル消失(ロックアルゴリズム無効)
84E14:ロックオンカーソル消失(右旋回時は有効)
84E36:右手武器と左肩ミサイルから連動ミサイル発射?
84E38:ミサイルロックアルゴリズム無効?
84E4A:右肩連動関連?ロックオン可の武器を積んでないと機能しない?
ブレード処理関連?
84EFC〜84F00:ブレードが発動する入力ボタン?
84F14:ブレード連射フラグ?
84F78〜84F84:ブレードEN消費関連?
84FA8:ブレホがなんか違う?気のせいかも
84FAA:空中でブレードを振るとピッチが狂う
84FC0:★ブレホレンジ
84FD4:★ブレホ範囲(マイナス域)(-512固定)
84FDC:★ブレホ範囲(プラス域)(512固定)
84FDE:以降しばらくブレホ関連
850AC:地上ブレード発動時のモーションID
850B8:空中ブレード発動時のモーションID
8541A〜85428:フリーズ
移動処理関連?
8558C:移動速度関連?
855A4:素ジャンプにブレーキがかかる
855AC:速度関連?
855B0:垂直速度関連
855BA:素ジャンプ無効(速度0で空中へ)?
855BE:素ジャンプ無効?
85614:ダッシュジャンプが強制素ジャンプになる(周辺に多数同類)
85620:地上ブースト無効(二脚も四脚風のジャンプになる)
85646:待機中に素ジャンプの初期モーションを繰り返す
8564A:歩行モーション無効?(地上ブーストする)
856D4〜856E0:ダッシュジャンプが強制素ジャンプに
856E2〜85702:ダッシュジャンプでフリーズ
873D0〜873E4:フリーズ(四脚)
873EE:〜ここまで四脚マルチ指ブレで変化無し
873F4:移動しながら右旋回不能(四脚)
873FE:旋回以外不能
87400:地上滑走不能(速度0のまま)
8740C:地上滑走が前進以外不能
8740E〜87420:滑走でフリーズ
8743E:〜滑走速度処理関連?
87598:〜無抵抗滑走
875A0:滑走瞬間ブレーキ
875AE:〜ここまで無抵抗滑走
875B0〜87678:変化無し不明(四脚)
87658:ステージ中央付近に水柱っぽいエフェクト発生?一度抜けたら再現しなくなった
8767C:高速でどっかに吹っ飛ぶ、周辺フリーズ頻発
876BC:二脚で移動に異常
876D6:地上姿勢異常
876D8:地上滑走不能
876E6:四脚でモーション異常
87706:四脚滑走後待機モードに戻らない
87714:四脚滑走モードにならない
8771C:変形中の姿勢をスキップ
877A2:〜このへんまで四脚地上走行関連?
87846:僅かに浮上落下を繰り返す(四脚)
87922:〜ここまで変化無し
87928:フリーズ周辺は旋回以外できなくなるパターン
87A28:〜ここまで不明
87A30:旋回以外の移動ができない
87A90:空中移動関連?
87A92:以降しばらく未調査
8846C:自機が左へかっとんでいく
88968:ブレードで左加速
88B62:この付近は空中移動関連?
89028:傾斜姿勢になる
この周辺CPUロジック関連?
89FD0:CPUロジック関連?相手のタンクがブーストしっぱ
89FD2:飛行ロジック無効?
8DAE6:射撃ロジック無効?
8DAF0:0でブレード連射
8DAFA:敵ロジック関連?(★射撃&ブレ&回避以外を無効、回避率0で木偶化、検証には使わないほうがよさげ)
8DAFE:同
カメラ処理関連
8E100:カメラ関連
8E12A:★エイム追尾解除、ロック方向に自動でサイトが寄る動作を無効化
8E1BA:この後周辺にカメラ追跡方法
8E278:旋回追尾のみ解除?
武器関連処理データ群
8F138:開始位置(推定)
8F13B:〜フリーズ
8F13C:フリーズ無し
8F15C:ミサイルの着弾エフェクト消失
8F170:ダメージ処理関連?
8F2D0:ミサイル、爆雷の着弾爆風(エフェクト?)無効
8F2FC:プラズマ爆雷の爆風エフェクト?
8FB58:発射したミサイルが消失
8FB60:ミサイルの着弾エフェクト無効
8FB74:着弾?エフェクトが連続で発生?
8FB7C:ミサイル関連?
8FB94:フリーズ
8FD40:ミサイル判定関連?
8FE5C:テールスモーク関連?
8FF92:ミサイル予測目標?
8FFA4:ミサイル予測目標?
92070:ミサイル初速関連?
935D0:超爆風
93630:弾描画固定?
9364B:着弾エフェクト関連?
9365B:着弾エフェクト関連?
93690:弾描画(軌跡も)固定…ちょっと目的を見失ったので以降スルー
※特定の配列要素が特定の武器種に影響するが必ずしも武器種ごとにまとまっていない(武器種というより特定の処理に関わる)。
※主にIDと参照先アドレスや係数かなにかでパラメータ系はなさげ。
・FCSがロックオン時に参照する実効データなどを出力している領域。
・ブレード実効判定の起点と終点座標がリアルタイムで出力されるアドレスがあるが判定幅は確認できない(過去の検証で空中判定にはそれぞれ幅があることを確認)。判定設定は左下腕モデリングデータの末尾付近にある(モデリングデータ群参照)。
・ターゲット現在位置が予測射撃の実効(予測処理の参照)値、ここに1f遅れのデータを出力されるのが2P補正の直接的な原因と思われる。
・同データはブレホも実効している事を確認。ミサイルはロックオン時のみで追跡には無関係、ミサイル発射方向にも無関係っぽい(エイム機能のあるらしいトリプルでも向きが変わらない、無追跡状態では未検証)。
0451B8:1Pファイヤーコントロールデータ先頭アドレス_入力フラグ(予測処理側からの参照位置)
0451BA:入力フラグ
0451BC:入力フラグ
0451BE:入力フラグ
0451C0:0
0451C2:0
0451C4:ブランク
0451C6:ブランク
0451C8:選択武器のロックタイプ
0451C9:選択武器(装備中の武器)
0451CA:ブランク
0451CC:ブランク
0451CE:ジェネ残量
0451D0:チャージングフラグ()
0451D2:残ロック数
0451D4:0
0451D6:0
0451D8:菱カーソル位置(縦)
0451DA:菱カーソル位置(横)
0451DC:0
0451DE:菱カーソルエイムフラグ
0451E0:ターゲット予測位置Y(ロック処理時のみ、追尾は無関係)
0451E2:ターゲット予測位置Z
0451E4:ターゲット予測位置X
0451E6:0
0451E8:★ブレード実効判定_起点座標Y ※値を固定すると発動時にその範囲に判定が発生
0451EA:★起点座標Z ※空中では起点終点とも機体半高(実全高を0にしている場合は機体座標位置)で固定
0451EC:★起点座標X(発動中瞬間的にPointer形式になる?)
0451EE:不明(Pointer後半?別値の時もあるっぽい、特に地上ブレ)
0451F0:★ブレード実効判定_終点座標Y
0451F2:★終点座標Z
0451F4:★終点座標X(発動中瞬間的にPointer形式になる?)
0451F6:不明(Pointer後半?別値の時もあるっぽい、特に地上ブレ)
0451F8:地上ブレードフラグ?
0451FA:ブランク
0451FC:Pointer_SE参照?
0451FE:
045200:ブランク〜
04522E:〜ブランク
045230:Pointer_4byte下を参照
045234:Pointer_ターゲット(2P)座標データ領域のヘッダを参照、ロック開始で生成、ロック中毎f更新。
045238:距離(1次ロック表示用?、予測処理には影響せず)
04523A:0
04523C:ロックオンカウンター(射撃武器は不明)
04523E:ロック継続時間?
045240:ロック角度(縦)に連動
045242:ロック角度(横)に連動
045244:★ターゲット現在位置Y(予測射撃実効、ブレホ実効、ミサイルは無関係)
045246:★ターゲット現在位置Z(同、判定高の50%)
045248:★ターゲット現在位置X(同)
04524A:ロック状態
04524C:垂直エイム角度?
04524E:水平エイム角度?
045250:0
045252:ロック継続時間?
045254:ターゲット予測位置Y(用途不明、固定しても予測射撃等に影響せず)
045256:ターゲット予測位置Z(同)
045258:ターゲット予測位置X(同)
04525A:ロック継続時間?(負)
04525C:0
04525E:0
045260:0
045262:0
045264:用途不明ロック関連配列要素1(ミサイルのみ?)
045294:用途不明ロック配列要素2
0452C4:用途不明ロック配列要素3
0452F4:用途不明ロック配列要素4
045324:用途不明ロック配列要素5
045354:用途不明ロック配列要素6
045384:用途不明ロック配列要素7
0453B2:データ群終了位置
※"0"は値改変で0にリセットされるもの、されないものはブランクと表記。
045558:2Pファイヤーコントロールデータ領域先頭アドレス_入力フラグ
045550:Pointer_1Pユニット参照
0458F0:Pointer_2Pユニット参照
1FFB38:ロック&予測実行処理領域(未調査)
1FFFFE:/ロック&予測実行処理領域
※予測処理領域はPointer形式データが多数生成、同領域内参照の他、射撃システム関連の設定やシステム領域を参照。その他、位置情報や予測到達fなどの変動値他。
補正原因調査メモ
・予測処理にはまず現fと前fの2f分の位置情報もしくは現fと実速度の情報が必要(そのほか弾速と相対距離もしくは自機位置)。
・火器管制処理データ群のターゲット位置情報に実際の位置と違う値(ロック範囲内でないとロックが切れるので注意)を代入すると射撃武器の目標位置が変わるので予測射撃起点の参照元に使われている。
※同データ群の予測位置情報を固定しても予測射撃に変化は見られない→予測位置情報は予測射撃の参照元には使われていない。
※同方法でブレードホーミングの目標位置が変わり、ミサイルはロック処理に影響するが発射と追尾には影響しない。
・外部ツールでターゲット位置情報を現在位置とずらして固定、完全固定できないのでパルス状にデータが元に戻る状態で予測射撃の挙動を観察。
→敵x軸位置0、ターゲット位置情x軸値200で固定、予測射撃は現在位置かx軸のマイナス側(逆側)に逸れてプラス側(固定したターゲット位置情報側)に逸れない。
→ツールで改変した値は前f位置として現f位置まで1fで移動した距離という扱いになるっぽい。つまりターゲット位置情報は少なくとも前f位置として参照されている。
→ターゲット位置情報が現f位置としても参照されていればこのアドレスへの出力データを改変することで2P補正を解消できる可能性がある。
→ターゲット位置情報を特定値に完全固定すれば参照タイミングは関係ないので、現f位置としても参照しているなら固定位置に安定して予測射撃をするはず(現f位置扱いではないなら逆向きに射つはず)
→外部ツールによる値固定は周期的に書き換えもしくは値が変動した場合に書き換えているっぽいので、その前(データが更新された直後)に参照されていると確認できない。
→Pauseで1fコマ送り状態にしてターゲット位置情報を毎f手動で改変しても確認できない(まあ多分当たり前だろうけどPauseはfが切り替わった処理の後に介入かな?)。
・試しにロック実効処理領域の先頭付近に生成されたPointer参照先のアリーナシステム領域を絨毯爆撃していたところターゲット現在位置に出力されるデータを改変するアドレス(07A1E0)を発見
※このアドレスはシステム領域で、他の多数のアドレスへの出力にも影響するっぽいので注意
→値を100から104にすると双方ともターゲット現在位置の出力データが第一武器の残弾で始まる6byte配列と同じデータに切り替わる(ただしロックオン不能)
→この状態で機体データ側を改変するとターゲット位置データにも反映される→同データはロック処理用に参照値のコピーを出力しているっぽい。
→出力される残弾値も2P側はリアルタイムで1P側は1f遅れる→1P側だけ参照から出力の間に1f遅らせる処理をかませている?。
→ターゲット位置データのヘッダで目標機体の座標関連データ群を参照しているので、生の機体座標データを参照していると思われる。(他に1f遅れる位置データは機体座標データの後方にもあり、正確な位置データは予測処理データ群にもあるがいずれも改変しても予測射撃に影響せず)
→同システム領域のアドレスでターゲット位置データへの出力が固定値かつロック可能になる値("38"など)でテストするとズレた位置に安定して射撃→前fと現f両方の参照値として使われている可能性が高まったがシステム領域改変なんでなんともいえない(予測処理側の参照も同時にズレている可能性を否定できない)。
※同アドレス値は"176"で通常通り、"112or120or192"で自機角度付近を参照、"184"でCPU機体角度付近を参照(機体実サイズが機体旋回に連動して変動値化、フリーズ注意)。デバッガで見るとシステム領域はアセン言語が解れば読めるっぽい?。
※やっぱりプロセスメモリエディタベースでは偶然が重ならない限り時間の無駄なので調査中止。
・ロジック設定関連はカスタムAIデータ群、カレントAIデータ、ダメージ分岐型実効ロジック領域、ターゲット監視型ロジック実効領域の四箇所。
○カスタムAIデータ群(未調査)
45990〜4623E:カスタムアリーナ1機目アセン〜AI設定。
4625C〜4A7DE:同2〜9機目。
○カレントAIデータ
・現在戦闘中のAIおよび設定中のカスタムAI用カレントデータ
・アリーナ戦闘開始時に一番先に読み込まれるロジック一次データ(性能Lvみたいな扱い)、再戦時も使用。
・カスタム設定可能な要素(X0)は7種、その設定から自動算出される要素(X1〜X2)が8種、設定不能要素(Ukx)が20種。
4ACA0:強化/2,5,7
4ACA1:飛行/F1=(100-F0)
4ACA2:飛行/F2=(100-F0)
4ACA3:飛行/F0
4ACA4:Uk1
4ACA5:Uk2
4ACA6:Uk3
4ACA7:Uk4
4ACA8:Uk5
4ACA9:ブレ/B0
4ACAA:ブレ/B1=(100-B0)+5
4ACAB:ロック/L1=(L0+1)(※100で0)
4ACAC:ロック/L2=(100-L0)/4(※32以上でクラッシュ注意)
4ACAD:射撃/S1=(S0+1)
4ACAE:回避/A0
4ACAF:Uk6
4ACB0:Uk7
4ACB2:Uk8
4ACB4:飛行&レンジ/Z1=(50-(F0-R0)/2)
4ACB5:Uk9
4ACB6:飛行&レンジ/Z2=(50+(F0-R0)/2)
4ACB7:Uk10
4ACB8:レンジ/R0(※SHORT100%=0、MID=50、LONG100%=100)
4ACB9:Uk11
4ACBA:Uk12
4ACBB:Uk13
4ACBC:レンジ/R1=(100-R0)
4ACBD:Uk14
4ACBE:Uk15
4ACBF:Uk16
4ACC0:Uk17
4ACC1:Uk18
4ACC2:Uk19
4ACC3:Uk20
4ACC4:ブランク
○強化関連
※強化Lvに連動するデータは機体性能関連のみでロジック系はなさそう。
457AB:2P強化回数(光波ON>0)
457CD:ミサイルセンサー(ON=1)
457CF:レーダー(強化グリッド=3)
457D0:肩キャ(強化肩キャ=3)
・および消費/回復速度の変化
※光波は射つので強化回数を参照している?
○ダメージ分岐型実効ロジック領域
・戦闘開始時にカレントAIデータから生成されダメージ変動値を分岐条件にする移動関連のロジック領域。
・ロジック配列は20(発動中のロジックIDはもう一つの実効ロジック領域に出力されている)、それぞれダメージ変動値を伴うパターン指定要素の配列を生成。
・各ロジック内の設定値とダメージ変動値から優先度(計算値は未発見、ないかも)が比較されて特定のロジックが発動する仕組みだと思われる。
・各要素は以下のフォーマットで構成される。各要素の効果は推測で詳しくは未調査
δ指定(24bit+8bit):用途不明Pointer。非正常値でもフリーズしないので用途および配列の境界不明(先頭か最後尾)。
α指定(24bit+8bit)):同ロジック発動時の動作パターンを参照(アリーンシステム領域)しているPointer。他ロジックと入れ換えると動作パターンが入れ替わり、参照先を弄ると動作が変化。他ロジックと共通値はなく、ロジック発動時に0もしくは非正常値でフリーズ。
β指定(24bit+8bit)):用途不明Pointer、非正常値で発動時のみフリーズ。βγδ指定値はロジックによって位置が入れ替わるのでおそらく共通フォーマット。
Time?(16bit):発動したロジックは優先度を逆転されなくてもこれに比例する時間で一端終了するっぽい、最長継続時間もしくは係数的な扱い?。継続中でも他のロジックが発動すると強制的に切り替わる。
A値(16bit):開幕時にカレントAI設定値から生成、もしくは固定値。ABC各値を基準に優先度が決定されロジックが発動する。
B値(16bit):開幕時にカレントAI設定から生成、カスタムAIでは設定外。
C値(16bit):ダメージ変動値。初期値はA値。変動は+ダメージ*1/2、同ロジック発動中のみ被弾で409(固定?)にリセットされ以降被ダメージで減少(0以下で再リセット)、かつ与ダメージで上昇(上限値3868)。
γ指定(24bit+8bit)):A値有効時に生成され常駐する制御用のロジック参照Pointe
ダメージ分岐型実効ロジックデータ配列
988B0:δPointer=0
988B4:αPointer=0/ブランクロジック?
988B8:βPointer=0
988BC:Time=0
988BE:A値=0
988C0:B値=0
988C2:C値(ダメージ変動値)
988C4:γPointer=0(ロジック無効)
988C8:δPointer→8A098
988CC:αPointer→8A248/距離維持飛行系(1Pより高高度優先、目標不明、距離維持型、エリアライン退避)
988D0:βPointer=0
988D4:Time=176
988D6:A値=16384(固定、C値上限固定用の指定値?)
988D8:B値=0
988DA:C値(A値スタート、ダメージ変動値、初弾で3686固定)
988DC:γPointer→8A098
988E0:δPointer→8A2EC
988E4:αPointer→8A3A4/離脱系(1Pより高高度優先?、目標無限遠)
988E8:βPointer=0
988EC:Time=176
988EE:A値=16384(固定)
988F0:B値=0
988F2:C値(A値スタート、ダメージ変動値、初弾で3686固定)
988F4:γPointer→8A2EC/(ロジック発動条件不明、通常発動せず?)
988F8:δPointer=0
988FC:αPointer/ブランクロジック?
98900:βPointer=0
98904:Time=0
98906:A値=0
98908:B値=0
9890A:C値(A値スタート、ダメージ変動)
9890C:γPointer=0(ロジック無効)
98910:δPointer→8A658
98914:αPointer→8A6BC/接近系(地上のみの二次元、目標敵裏、距離不明)
98918:βPointer=0
9891C:Time=220
9891E:A値=Z1*4096/100
98920:B値=Uk9*4096/100
98922:C値(A値スタート、ダメージ変動)
98924:γPointer→8A658
98928:δPointer→8A828
9892C:αPointer→8A870/接近系(1Pより高高度優先、目標敵裏、距離不明)
98930:βPointer=0
98934:Time=220
98936:A値=Z2*4096/100
98938:B値=Uk10*4096/100
9893A:C値(A値スタート、ダメージ変動)
9893C:γPointer→8A828
98940:δPointer→8A9AC
98944:αPointer→8AA34/1Pの正面特定角度範囲もしくは射程内から離脱(1Pより高高度優先)
98948:βPointer=0
9894C:Time=176
9894E:A値=R0*4096/100
98950:B値=Uk11*4096/100
98952:C値(A値スタート、ダメージ変動)
98954:γPointer→8A9AC
98958:δPointer→8AB38
9895C:αPointer→8AB78/小ジャンプor水切りor素ジャンプ(1P真後ろ目標、自武器選択レンジ維持)
98960:βPointer→8ACAC
98964:Time=176
98966:A値=Uk12*4096/100
98968:B値=Uk13*4096/100
9896A:C値(A値スタート、ダメージ変動)
9896C:γPointer→8AB38
98970:δPointer→8ACBC
98974:αPointer→8ACC4/前進接近(目標三次元敵位置)
98978:βPointer=0
9897C:Time=176
9897E:A値=R1*4096/100
98980:B値=Uk14*4096/100
98982:C値(A値スタート、ダメージ変動)
98984:γPointer→8ACBC
98988:δPointer→8AD3C
9898C:αPointer→8AE04/特定距離内正面退避、移動優先エイム(目標1P裏)
98990:βPointer=0
98994:Time=44
98996:A値=2048固定?(参照元不明)
98998:B値=2048固定?(参照元不明)
9899A:C値(A値スタート、ダメージ変動)
9899C:γPointer→8AD3C
989A0:δPointer→8B194
989A4:αPointer→8B2B8/距離維持飛行(1Pより高高度優先、目標不明、距離維持型、エリアライン退避)
989A8:βPointer=0
989AC:Time=22
989AE:A値=4096固定?(参照元不明)
989B0:B値=0固定?(参照元不明)
989B2:C値(A値スタート、ダメージ変動)
989B4:γPointer→8B194
989B8:δPointer=0
989BC:αPointer=0/ブランクロジック?
989C0:βPointer=0
989C4:Time=0
989C6:A値=0
989C8:B値=0
989CA:C値(A値スタート、ダメージ変動)
989CC:γPointer=0(ロジック無効)
989D0:δPointer=0
989D4:αPointer=0/ブランクロジック?
989D8:βPointer=0
989DC:Time=0
989DE:A値=0
989E0:B値=0
989E2:C値(A値スタート、ダメージ変動)
989E4:γPointer=0(ロジック無効)
989E8:δPointer=0
989EC:αPointer=0/ブランクロジック?
989F0:βPointer=0
989F4:Time=0
989F6:A値=0
989F8:B値=0
989FA:C値(A値スタート、ダメージ変動)
989FC:γPointer=0(ロジック無効)
98A00:δPointer→8B4E0
98A04:αPointer→8B514/1Pの正面特定角度範囲から前進離脱(1Pより高高度優先)
98A08:βPointer=0
98A0C:Time=1320
98A0E:A値=Uk15*4096/100
98A10:B値=Uk16*4096/100
98A12:C値(A値スタート、ダメージ変動)
98A14:γPointer→8B4E0
98A18:δPointer→8B5D0
98A1C:αPointer→8B7C0/不明、距離維持型?
98A20:βPointer→8B61C
98A24:Time=1320
98A26:A値=Uk17*4096/100
98A28:B値=Uk18*4096/100
98A2A:C値(A値スタート、ダメージ変動)
98A2C:γPointer→8B5D0/発動時にロジック無効化、有効化トリガー不明
98A30:δPointer→8BA8C
98A34:αPointer→8BB14/前進接近(三次元)
98A38:βPointer=0
98A3C:Time=176
98A3E:A値=Uk19*4096/100
98A40:B値=Uk20*4096/100
98A42:C値(A値スタート、ダメージ変動)
98A44:γPointer→8BA8C
98A48:δPointer→8BBFC
98A4C:αPointer→8BC80/低空飛行斬撃優先(目標1P機体、炎刃系ロジック)
98A50:βPointer=0
98A54:Time=176
98A56:A値=b0(B0>100時のみ)
98A58:B値=2048?(A値有効時のみ)
98A5A:C値(A値スタート、ダメージ変動)
98A5C:γPointer→8BBFC/特定CPU機専用ロジック(生成トリガー不明)
98A60:δPointer=0
98A64:αPointer=0/ブランクロジック?
98A68:βPointer=0
98A6C:Time=0
98A6E:A値=0
98A70:B値=0
98A72:C値(A値スタート、ダメージ変動)
98A74:γPointer=0(ロジック無効)
98A78:δPointer=0
98A7C:αPointer=0/ブランクロジック?
98A80:βPointer=0
98A84:Time=0
98A86:A値=0
98A88:B値=0
98A8A:C値(A値スタート、ダメージ変動)
98A8C:γPointer=0(ロジック無効)
98A90:
98A92:
98A94:
98A96:-1
98A98:
98A9A:
98A9C:-1
98A9E:
参考
・原則としてABC値の高いロジックが優先されるが、2種類のロジックのみ有効な状態にしてABC値を改変しながら比較すると発動条件や継続時間がγ指定先で変化するのでロジックによってABC値に軽重があるっぽい、β指定が関わるかは未調査。
・γ指定はA値有効時のみ生成されるが、特定CPU機専用(炎刃型)ロジックは他に生成トリガーがあるらしくカレントAIデータからA値を有効にしても生成されない(トリガー未調査)。トリガー無効状態ではγ指定を正規値に改変しても0にリセットされてしまうのでα値かγ値を別ロジックと入れ換えれば機能する。
・動作パターンは主にα指定に依存するが、α指定だけ他のロジック配列に入れ替えて発動させると動きが変わる場合があるのでβγδ指定で目標や動作基準になる監視対象などに違いがあると思われる(参照先を解析しないとわからんけど沼りそうなのでスルー)。
・ブランクロジックもα指定とγ指定を設定してABC値の優先度を満たせば発動し正常に機能する(炎刃型ロジックも可)。
・非正常値でのフリーズの有無を調査。各種動作、エリア警告、残AP、各ロジック設定など。
→γ指定は常にフリーズ(常駐、ロジックの発動を管理)
→β指定はロジック発動時にのみフリーズ
→α指定は発動中に常にフリーズ(発動中のみ常駐)
→δ指定はフリーズ例なし
○ターゲット監視型実効ロジック領域
・前半がターゲットおよび自機(CPU)との相対的な状態監視用と思われるデータ群(カメラ設定とかあるけど気にしない)。
・状態監視データの末尾にロックロジック設定値を基準にエイム用ターゲットデータ配列が生成される。
・後半が移動以外の実効ロジックデータ群。
ターゲット監視データ群
1E1F38:Pointer(レコードデータ最後の入力アドレスを参照)
1E1F3C:1P動作継続カウンタ
1E1F3E:?(開幕時のみ-1)
1E1F40:1P入力ビットフラグ
1E1F42:入力フラグ32bit用?
1E1F48:カメラベース
1E1F4A:俯瞰カメラ
1E1F50:EN武器消費(最大の武器)
1E1F54:開幕からカウントダウン(開幕直後動作用?通常110、データ長32bit?)
1E1F58:不明(固定値?)
1E1F5A:不明(固定値?)
1E1F5C:不明(変動256or257)
1E1F60:??下のベースを基準に変動することがある?
1E1F62:??同
1E1F64:??同
1E1F66:??同
1E1F68:?ベース
1E1F70:相対距離(疑似三次元)
1E1F74:相対距離(二次元)
1E1F78:相対距離(一次元・X軸ベース)
1E1F7A:X軸相対距離の正負
1E1F7C:相対高度(一次元・Z軸ベース)
1E1F7E:垂直相対位置(相対高度の正負)
1E1F80:相対距離(一次元・Y軸ベース)
1E1F82:Y軸相対距離の正負
1E1F88:2P機軸線-1P機垂直角度
1E1F8A:2P機軸線-1P機水平角度
1E1F90:1P機軸線-2P機垂直角度
1E1F92:1P機軸線-2P機水平角度
1E1F98:エイム用監視データ配列0_Y軸座標(ロックロジックl2で配列数が変わる。配列IDは未確認、精度100では実処理データ側を参照しているっぽい)
1E1F9A:1PZ軸座標
1E1F9C:1PX軸座標
1E1FA2:1P機体方向
1E1FA6:?:0〜3(相対距離などで複合変化、何かの簡易指標と思われが未調査)
1E1FA8:エイム用監視データ配列1
1E1FB8:エイム用監視データ配列2
1E1FC8:エイム用監視データ配列3
1E1FD8:エイム用監視データ配列4
1E1FE8:エイム用監視データ配列5
1E1FF8:エイム用監視データ配列6
1E2008:エイム用監視データ配列7
1E2018:エイム用監視データ配列8
1E2028:エイム用監視データ配列9
1E2038:エイム用監視データ配列10
1E2048:エイム用監視データ配列11
1E2058:エイム用監視データ配列12
1E2068:エイム用監視データ配列13
1E2078:エイム用監視データ配列14
1E2088:エイム用監視データ配列15
1E2098:エイム用監視データ配列16
1E20A8:エイム用監視データ配列17
1E20B8:エイム用監視データ配列18
1E20C8:エイム用監視データ配列19
1E20D8:エイム用監視データ配列20
1E20E8:エイム用監視データ配列21
1E20F8:エイム用監視データ配列22
1E2108:エイム用監視データ配列23
1E2118:エイム用監視データ配列24
1E2128:エイム用監視データ配列25(ロックロジック0時に生成される)
1E2136:/エイム用監視データ配列25
1E2138〜1E2196:※エイム用監視データ配列26〜31用ブランク、26<L2<32に改造で生成、33以上でフリーズ。
実効ロジックデータ群
1E2198:1P位置のロック精度別配列群の参照Pointer(l2依存)
1E219C:発動中のダメージ分岐型ロジックID
1E219E:用途不明(ロジック切り替え時の経過f?)
1E21A0:用途不明(武器切り替え時の経過f?)
1E21A2:用途不明(選択武器連動、肩キャは強化か否かでも変わるので発射用の条件?)
1E21A4:選択武器最適レンジ?(武器射程とFCSで変化)
1E21A6:1P選択武器射程
1E21A8:不明変動値(CPU機側のID関係?0〜3?)
1E21AA:0?
1E21AC:不明変動値(CPU機側関係、0〜5でカウントダウン?)
1E21AE:0?
1E21B0:0?
1E21B2:0?
1E21B4:不明変動値(CPU機側関係、0〜3276でカウントダウン?)
1E21B6:0?
1E21B8:f1'=f1から+uk2範囲で変動(初期値=f1+uk2*33675/65535?)※計算式は単に最大値を与えて吐き出した値
1E21BA:f2'=f2から+uk3範囲で変動(初期値=f2+uk3*20225/65535?)
1E21BC:f0'=f0から+uk4範囲で変動(初期値=f0+uk4*11515/65535?)
1E21BE:f1=F1*4096/100
1E21C0:f2=F2*4096/100
1E21C2:f0=F0*4096/100
1E21C4:uk1=1489/Uk1(fx'変動頻度)
1E21C6:uk2=Uk2*4096/100(f1'変動幅)
1E21C8:uk3=Uk3*4096/100(f2'変動幅)
1E21CA:uk4=Uk4*4096/100(f3'変動幅)
1E21CC:uk5=Uk5*4096/100(1E21B4と関係あり?)
1E21CE:b0=B0*4096/100およびB0>100時はb0=(B0/2切り捨て)*4096/100(※初ヒット後変化?)
1E21D0:b1=B1(<105)
1E21D2:uk7=Uk7
1E21D4:uk8=Uk8
1E21D6:l1=512+L1*3495/512?
1E21D8:s1=S1*4096/100(調整可能域は1〜65535かつ0で無限)
1E21DA:a0=A0*4096/100
1E21DC:uk6=Uk6*4096/100(APが値%以下で射撃頻度と回避頻度とブレ頻度を最大値に更新)
1E21DE:l2=L2(エイム用監視データ配列要素数指定値)
参考
・1次データと連動するアドレスの調査のみでロジックに及ぼす影響などは未調査。
・エイム用監視データ配列
→ロックロジック設定値(反比例して自動算出されるL2)によって1〜26個のそれぞれ少しずつ遅れる低精度の監視データ配列が生成される(後端側が高精度)。
→L2が生成される配列要素数、カスタム設定では1〜26要素、領域は31要素分まで確保されており改造すれば生成する(32以上はフリーズ)。
→ロック100の時には1要素のみの監視データが生成されるが値を0に固定しても挙動は変わらない。
→生成されるエイム用位置データは最高精度でも2f程度?遅れているのでロック100の時は実処理データ側かファイヤーコントロールデータ側を参照している?。
→ロケット選択(とジャミング)時のエイム対象データは未調査(予測位置をエイムだったはず)。
・ステージおよびアセンによる数値上の変化(開幕時のみ調査)はなさげ。そういえば遮蔽物チェッカーとかも未調査。
・回避はロックの有無に関わらず機体座標から一定距離内(二次平面円とZ軸範囲)を通過する攻撃に対して発動すると思われる。ただ域内に回避ロジックの発動用監視データがない(直後の弾処理データ領域かとも思ったけど変動アドレスデータ域なので参照先指定が無いな?)
メモ
・ロック高めで軸避けするのでロックと回避は反比例的に設定したほうが効率よさげ、接近戦ほど回避無駄。回避対飛行も若干その傾向がある。
・ロック高めで重めのCPU機にセミオート系を使わせると目標移動方向へ一心不乱に流し撃つ(結果的にCPUグレネードは移動前方に置きにくる、肩キャはフェイントにかかりやすい)。
・ロケは旋回とロックがかなり高くないとあまり機能しないのと、近接レンジ向きだけど射角制限のせいで接近戦では無駄射ちが多くなる。でも予測エイムと高火力は強い。
・ブレ頻度が高いとブレホ有効な一定距離内ではブレードを優先、特に地上至近距離で連射するのでAIにブレードはデメリットの方が大きい。強化だと中距離めでも連射してただの的。
・CPU専用(炎刃型)ロジックは独自にブレード使用条件を持つらしく発動しているとブレ頻度に関係なく振る、発動中回避と飛行と距離ロジック無効でロックと射撃ロジックは有効っぽい。水切りや素ジャンプ離脱パターンロジックもあるのでお嬢とかに最適化すると対策知らなければ詰むレベルかも。やはり地上ブレードはいらないなぁ。どのみちセーブできないか。
・四脚CPUでも457D0="3"で空中キャノンを使う、けどこれもセーブできない。
・一定以上の傾斜(斜度不明)地形は着地→落下を繰り返す。するとAIは着地状態動作と飛行状態動作を切り替えてしまい(炎刃型ロジックなどを除くと同じ動作を継続しない)傾斜地でスタックしやすい。特にロックが高いAIは1Pの向き依存で傾斜地に押し付けられるので吊り橋と月面の傾斜地はAIホイホイに。
・AIの武器切り替え条件が不明、ロック外に離脱もしくは被弾?。射程がかけ離れた武器を組み合わせるかQX-21かCOMDEX-G0か次点でFBMB-18Xで多少距離に応じた武器に切り替えるようになる。
・カスタム不能な不明値(Uk)も含めてカレントAIデータは全てセーブ/ロードできる(L2などフリーズする値のデータも保存できる)ので変則的なAIは無改造環境でも再現できるっぽい。アセン制限などのセーブ/ロードは未調査。
・残念ながら炎刃型ロジックの有効化トリガーも同データ群になさげなのでアセンデータ側にでも無い限りセーブは無理そう。
・画像ベースの表示設定を格納する固定値データ配列群、画面表示や操作UIなどの設定で大半が同じ構造の配列で構成される。
・各表示の先頭アドレスはおそらく画像マスク、指定形式は不明。ポリゴンモデルのテクスチャ等でも同様の画像マスク指定がある。
・画像ID(8bit)は原則固定、アセンやステージ等でそのIDに読み込まれる画像が変わる。また次の8bit値は常に(?)0だがブランクではなく奇数値で描画が狂う。
・描画サイズ0で描画オフ(不明値を改変で描画されなくなるものもあるが処理が不明なのでサイズ調整の方が安全)。
※データ配列が長大なので一部を除いて表示設定対象の先頭(画像マスク)アドレスのみ記述
PAUSE表示消去用
7E79C:PAUSE画像マスク?
7E79E:PAUSE消去候補
7E801:PAUSE消去候補
7E805:PAUSE消去候補
※PAUSE表示設定だけこの領域に無くみつからない。上記はアリーナシステム領域内のPAUSE表示該当部分から安全そうな消去候補アドレスをピックアップしたもの。
96B9C:UI表示設定配列開始位置
96BA8:▲(レーダー用、配列データ構造は下記参照)
96BB4:▼(レーダー用)
96BC0:。ミッションターゲット用?
96BD0:・ミサイルレーダー表示用
96BDC:標準レーダー/画像マスク1
96BDD:画像マスク2
96BDE:画像ID
96BDF:?
96BE0:画像マッピングX
96BE1:画像マッピングY
96BE2:描画幅(0で消去)
96BE3:描画高
96BE4:R(画像なので無効)
96BE5:G
96BE6:B
96BE7:ブランク
96BE8:サークルレーダー(以下同構造)
96BF4:OCレーダー(以下同構造)
96C00:強化レーダー(以下同構造)
96C0C:レーダーレス(以下同構造)
96C18:ジェネゲージ枠/画像マスク1
96C19:描画マスク2
96C1A:描画画像ID
96C1B:?
96C1C:画像マッピングX
96C1D:画像マッピングY
96C1E:描画幅
96C1F:描画高
96C20:R(画像なので無効)
96C21:G
96C22:B
96C23:ブランク
96C24:描画X位置
96C26:描画Y位置
96C27:ジェネゲージ消去
96C28:背景R(補色&不透明度)
96C29:背景G(補色&不透明度)
96C2A:背景B(補色&不透明度)
96C2B:ブランク
96C2C:ACネーム/画像マスク1
96C2D:画像マスク2
96C2E:画像ID
96C2F:?
96C30:画像マッピングX
96C31:画像マッピングY
96C32:描画幅
96C33:描画高
96C34:カラー指定R
96C35:カラー指定G
96C36:カラー指定B
96C37:ブランク
96C38:描画X位置
96C3A:描画Y位置
96C3C:ブランク?
96C3C:2PACネーム(同構造)
96C4C:レコードゲージ/画像マスク1
96C4D:画像マスク2
96C4E:画像ID
96C4F:?
96C50:画像マッピングX
96C51:画像マッピングY
96C52:描画幅
96C53:描画高
96C54:R(画像なので無効)
96C55:G
96C56:B
96C57:ブランク
96C58:描画X位置
96C5A:描画Y位置
96C5C:ゲージ長
96C5E:ゲージ右起点角度
96C60:強制リセット
96C62:ゲージ左起点角度
96C64:HIT表示/画像マスク1
96C65:画像マスク2
96C66:画像ID
96C67:?
96C68:画像マッピングX
96C69:画像マッピングY
96C6A:描画幅
96C6B:描画高
96C6C:R(画像なので無効)
96C6D:G
96C6E:B
96C6F:ブランク
96C70:描画X位置
96C72:描画Y位置
96C74:DAMAGED表示(以下同構造)
96C84:LEAVING AREA表示
96C94:ARMOR LOW表示
96CA4:!CHARGING!表示
96CB4:SYSTEM ERROR表示
96CC4:レーダー枠描画X位置
96CC6:レーダー枠描画Y位置
96CC8:レーダー色R
96CC9:レーダー色G不透明度
96CCA:レーダー色B
96CCB:ブランク
96CCC:▲上高度色R
96CCD:▲上高度色G
96CCE:▲上高度色B
96CCF:ブランク
96CD0:▲同高度色R
96CD1:▲同高度色G
96CD2:▲同高度色B
96CD3:ブランク
96CD4:▼下高度色R
96CD5:▼下高度色G
96CD6:▼下高度色B
96CD7:ブランク
96CD8:レーダー小枠色R
96CD9:レーダー小枠色G
96CDA:レーダー小枠色B
96CDB:ブランク
96CDC:エリア警告ラインR
96CDD:エリア警告ラインG
96CDE:エリア警告ラインB
96CDF:ブランク
96CE0:エリアラインR
96CE1:エリアラインG
96CE2:エリアラインB
96CE3:ブランク
96CE4:?R
96CE5:?G
96CE6:?B
96CE7:ブランク
96CE8:?R
96CE9:?G
96CEA:?B
96CEB:ブランク
96CEC:方位計背景R(補色&不透明度)
96CED:方位計背景G(補色&不透明度)
96CEE:方位計背景B(補色&不透明度)
96CEF:ブランク
96CF0:方位計(構造はジェネゲージ参照)
96D04:CONTINUE?表示(以下同構造)
96D18:WIN表示
96D28:LOSE表示
96D34:READY表示
96D44:GO表示
96D54:TIME UP表示
96D74:AP他カラーR(リプレイ中カーソル等0で消失)
96D75:AP他カラーG
96D76:AP他カラーB
96D77:ブランク
96D78:DAMAGED他警告カラーR
96D79:DAMAGED他警告カラーG
96D7A:DAMAGED他警告カラーB
96D7B:ブランク
96D7C:?R
96D7D:?G
96D7E:?B
96D7F:ブランク
96D80:?R
96D81:?G
96D82:?B
96D83:ブランク
96D84:?R
96D85:?G
96D86:?B
96D87:ブランク
96D88:CONTINUE他カラーR
96D89:CONTINUE他カラーG
96D8A:CONTINUE他カラーB
96D8B:ブランク
96D8C:LOSE他カラーR
96D8D:LOSE他カラーB
96D8E:LOSE他カラーG
96D8F:ブランク
96D90:?R
96D91:?G
96D92:?B
96D93:ブランク
96D94:選択武器テキストR
96D95:選択武器テキストG
96D96:選択武器テキストB
96D97:ブランク
96D98:グリーンゾーン&サイト枠R
96D99:グリーンゾーン&サイト枠G
96D9A:グリーンゾーン&サイト枠B
96D9B:ブランク
96D9C:レッドゾーン&サイト枠カラーR
96D9D:レッドゾーン&サイト枠カラーG
96D9E:レッドゾーン&サイト枠カラーB
96D9F:ブランク
96DA0:サブロックカーソル他R(黒で消失)
96DA1:サブロックカーソル他G
96DA2:サブロックカーソル他B
96DA3:ブランク
96DA4:ロックカーソル他R(黒で消失)
96DA5:ロックカーソル他G
96DA6:ロックカーソル他B
96DA7:ブランク
96DA8:レコード枠他R
96DA9:レコード枠他G
96DAA:レコード枠他B
96DAB:ブランク
96DAC:レコードバーR
96DAD:レコードバーG
96DAE:レコードバーB
文字コード設定
96DB5:対象文字不明(多分アスキーコードと同じ)
96DC3:/
96DC4:0
96DCD:9
96DD5:A
96DEF:Z
96E0F:文字コードここまで
※間の文字は省略
射撃武器用カーソル設定
96E1C: 標準ロックカーソル左(画像ID指定)
96E1E: 向き
96E20: 位置
96E22: 位置
96E24: ?
96E26:標準ロックカーソル右
96E30:標準ロックカーソル上
96E3A:標準ロックカーソル下
96E44:ミサロックカーソル左
96E4E:ミサカーソル下
96E58:ミサカーソル右
96E62:ミサカーソル上
96E6C:ロック数枠1
96E76:ロック数1
96ED0:ロック数枠6(間省略)
96EDA:ロック数6
96EE4:NDカーソル左
96EEE:NDカーソル右
ボタン表示設定(配列構造はジェネゲージ参照、ミッション用?)
96EF8:○ボタン
96F04:×ボタン
96F10:△ボタン
96F1C:□ボタン
画像貼付け型フィールドオブジェクト
※おそらくステージ上のアンカーに視点基準で画像を貼付けるタイプ、4点指定。
96F30:樹木R
96F31:樹木G
96F32:樹木B
96F33:表示形式?
96F34:左上マッピングX?
96F35:左上マッピングY?
96F36:マスク1
96F37:マスク2
96F38:右上マッピングX?
96F39:右上マッピングY?
96F3A:画像ID
96F3B:?
96F3C:左下マッピングX?
96F3D:左下マッピングY?
96F3E:右下マッピングX?
96F3F:右下マピングY?
96F40:左上位置Y
96F42:左上位置Z
96F44:左上位置X
96F46:
96F47:
96F48:右上位置Y
96F4A:右上位置Z
96F4C:右上位置X
96F4D:
96F4E:
96F4F:
96F50:左下位置Y
96F52:左下位置Z
96F54:左下位置X
96F55:
96F56:
96F57:
96F58:右下位置Y
96F5A:右下位置Z
96F5C:右下位置X
96F5D:
96F5E:
96F5F:
96F60:画像式フィールドオブジェクト2(以下同構造)
96F90:画像式フィールドオブジェクト3
96FC0:画像式フィールドオブジェクト4
96FF0:フィールドオブジェクトリスト
97000:以降、用途不明RGB
97082:/ここまで
ステージ背景画像設定
98066:空水平線テクスチャ描画位置(高さ)
98068:描画関連
9806C:描画マスク
9806D:描画マスク
9806E:画像ID(ID153はステージで読み込まれる画像が異なる)
98073:縦倍率?
98078:2枚目画像マスク
98079:2枚目画像マスク
9807A:2枚目画像ID
98084:R
98085:G
98086:B
※値はステージ共通、背景カラー等の設定は別のデータ群にある(ステージ照明テキスト参照)
リプレイ用ボタン表示設定
98090:□ボタン画像マスク(ジェネゲージ等と同じデータ構造)
98094:描画マッピング位置
98095:描画マッピング位置
98096:描画幅(0で表示消去可能)
98097:描画高
98098:R
98099:G
9809A:B
9809C:×ボタン画像マスク(同構造)
980A8:□ボタンX位置
980AA:□ボタンY位置
980AC:×ボタンX位置
980AE:×ボタンY位置
980F9:リプレイ俯瞰タイプ?(周辺用途不明データ)
武器(弾)用表示設定(構造はほぼ同じ)
98B74:エフェクトID0(軸無視武器系弾画像)
98B80:ID1
98B8C:ID2
98B98:ID3
98BA4:ID4
98BB0:ID5
98BBC:ID6
98BC8:ID7(ここまで軸無視武器)
98BD4:ID8(炎系着弾アニメーションエフェクト、ミサ等)
98BE0:ID9
98BEC:ID10
98BF8:ID11
98C04:ID12(描画対象の画像IDが変わる、+1)
98C10:ID13
98C1C:ID14
98C28:ID15
98C34:ID16(描画対象の画像IDが変わる、+1)
98C40:ID17
98C4C:ID18
98C58:ID19(ここまで炎系着弾エフェクト)
98C64:ID20(物理系着弾アニメーションエフェクト)
98C70:ID23
98C7C:ID24
98C88:ID25
98C94:ID24(描画対象の画像IDが変わる、+1)
98CA0:ID26
98CAC:ID27
98CB8:ID28
98CC4:ID28(描画対象の画像IDが変わる、+1)
98CD0:ID29
98CDC:ID30
98CE8:ID31(ここまで物理系着弾エフェクト)
98CF4:ID32(火花、ブレ等)
98D00:ID33(火花、ブレ等)
98D0C:ID34(テールスモーク?)
98D18:ID35(白系閃光、着弾、推進光など)
98D24:ID36(黄系閃光、着弾、推進光、拡散ハンド弾など)
98D30:ID37(青系閃光)
98D3C:ID38(紅系閃光)
98D48:ID39(水しぶき?)
98D54:ID40(水しぶき)
98D60:ID41(不明、◎っぽいの)
98D6C:ID42(火炎系アニメーションエフェクト)
98D78:ID43
98D84:ID44
98D90:ID45
98D9C:ID46(元画像ID+1)
98DA8:ID47
98DB4:ID48
98DC0:ID49(ここまで)
98DCC:ID50(ロックカーソル左右)
98DD8:ID51(ロックカーソル上下)
98DE4:ID52(ミサロックカーソル)
98DF0:ID53(NDカーソル)
98DFC:ID54(ミサロック数枠)
98E08:ID5(ミサエイムカーソル)
98E14:ID56(小数字0)
〜中略〜
98E80:65小数字9
98E8C:66小アルファベットA
〜中略〜
990E4:116小特殊文字×
ここから画面表示用テキスト
99174:中数字0
〜中略〜
991E0:中数字9
991EC:中アルファベットA
〜中略〜
99318:中アルファベットZ
99324:+
〜中略〜
99348:/
〜中略〜
9942C:▼
99450:中アルファッベットa
〜中略〜
9957C:中アルファベットz
995C4:特大数字0(AP用)
〜中略〜
99630:特大数字9
9963C:":"
99648:アルファベットB用途不明
〜中略〜
996A8:アルファベットJ用途不明
996B4:大数字0
〜中略〜
99720:大数字9
9972C:":"
99738:アルファベットB用途不明
99798:J
997A4:0
99810:|
9981C:特大":"
99828:";"
9987C:▼
99888:不明
99894:不明
998A0:不明
998AC:白閃光?〜以降MA追加?
998B8:青閃光?
998C4:ジャミング弾?
998D0:ジャミングエフェクト
998DC:ジャミングエフェクト
998E8:ジャミングエフェクト
998F4:逆水しぶき?
99900:水面?
9990C:不明(E爆雷?)
99918:不明(E爆雷爆風?)
99924:不明(E爆雷?)
99930:不明(着弾エフェクト1)
9993C:不明(同着弾エフェクト2)
99948:不明(同着弾エフェクト3)
99954:不明(同着弾エフェクト4)
以降弾設定データ群に続く
<ミサイル発射時の散乱と同時発射数および点火時間を管理するデータ配列>
9821C:小ミサ(弾頭ID)
9821D:点火f、発射から推進開始までのf。
9821E:発射数(主)、1回で発射する弾の数。
9821F:発射数(副)、二門兵器副砲側の発射数。
98220:縦散乱角度(16bit)
98222:横散乱角度(16bit)
98224:中ミサ(以下同構造)
9822C:ミサ腕&看板
98234:V6
9823C:大ミサ
98244:片マルチ
9824C:両肩マルチ
98254:左右迂回
9825C:トリプル
98264:核
9826C:垂直
98274:ストーカー
・発射方向はパーツの正面が基本、同時発射するパーツはそれぞれの向きのデータがあるっぽい(未発見)。パーツの向きはモーション設定データ群参照。
・設定値以上の発射数を代入するとまともな向きで発射されない(参照先にある別配列のデータを使って発射すると思われるが未確認)。
・マルチは分裂時に弾頭ID03→ID01に変化するが設定アドレス不明。
・垂直はID04弾頭を発射後20f(推進炎&光は適用しているが加速&旋回はしない)で同じ弾頭のまま点火推進開始扱いかな?。
マルチ分裂調査メモ
マルチ分裂はおそらく推進開始後6f(弾判定処理データ群の分裂時のカウンター最終値は7、ミサイル発射設定データ群の推進開始が1、カウンターは0が1f目なので実質8fになるはず?)。
UI表示設定データ群?メモリ領域終了の範囲で値"2〜7"のアドレスに該当なし。UI表示設定データ群?リプレイ用機体データ群(以降は一部の値でフリーズが頻発するので絨毯爆撃断念)まで0〜15(8bit)でも該当なし。分裂用の値4の該当アドレスも見つからない。…ふむ?。アリーナシステム領域はマシン語っぽいので未調査。
モデリングデータとモーション設定データに従って機体の各パーツ動作を連動させる処理データを出力している領域と思われる。このため同データ群にベースとなる設定がある描画及び武器発射位置や角度、ブレード判定なども同様に連動する。
・配列は前半がパーツブロック、後半がモーションブロック(おそらく関節ブロックに相当)と思われるが詳しくは未調査。パーツブロックについてはモーション設定データ群とモデリングデータ群参照。
・配列要素数は脚カテゴリごとに固定で各要素のデータ長は0x7C。1P用のデータ配列の後に2P用のデータ配列。
※各配列要素に3種類以上の位置、角度、倍率の変動データがあるが詳しくは未調査。
モーション連動処理データ群ヘッダ
A49C8:設定ユニット数?(モーション連動処理先頭アドレス)
A49CC:同群データ長?(単位はbyte)
A49D0:Pointer形式
A49D4:ブランク?
A49D6:ブランク?
配列要素のデータ構造(かなり適当)
A49D8:パーツ基準位置Y(先頭のパーツブロックデータ開始アドレス)
A49DA:パーツ基準位置Z
A49DC:パーツ基準位置X
A49DE:パーツ基準ピッチ角度(接続元パーツ基準)
A49E0:パーツ基準ヨー角度
A49E2:パーツ基準ロール角度
A49E4:パーツ基準倍率Y(計算基準値?)
A49E6:パーツ基準倍率Z(計算基準値?)
A49E8:パーツ基準倍率X(計算基準値?)
A49EA:★パーツブロック配列ID(パーツ交換可、存在しないID指定で消去)
A49EC:連動倍率Y(動的参照元?)
A49EE:連動位置Y
A49F0:歪変形?(用途不明、角度等調整用?)
A49F2:歪変形?(用途不明)
A49F4:連動倍率Z(動的参照元?)
A49F6:連動位置Z
A49F8:歪変形(用途不明)
A49FA:歪変形(用途不明)
A49FC:連動倍率X(動的参照元?)
A49FE:★モーションモード/"56"他で描画倍率と位置設定をモード変更まで固有化
A4A00:モーション倍率Y(アウトプット)
A4A02:モーション変動値
A4A04:モーション変動値
A4A06:モーション変動値
A4A08:モーション倍率Z(アウトプット)
A4A0A:モーション変動値
A4A0C:モーション変動値
A4A0E:モーション変動値
A4A10:モーション倍率X(アウトプット)
A4A12:ブランク?
A4A14:モーション変動値
A4A16:モーション変動値
A4A18:モーション変動値
A4A1A:不明(0リセット)
A4A1C:モーション変動値
A4A1E:不明(0リセット)
A4A20:Pointer形式(モーションブロック側の関節位置参照?)
A4A24:Y位置(用途不明)
A4A26:Z位置(用途不明)
A4A28:X位置(用途不明)
A4A2A:ピッチ角度(用途不明)
A4A2C:ヨー角度(用途不明)
A4A2E:ロール角度(用途不明)
A4A30:Y倍率(用途不明)
A4A32:Z倍率(用途不明)
A4A34:X倍率(用途不明)
A4A36:不明(0リセット)
A4A38:不明(0リセット)
A4A3A:不明(0リセット)
A4A3C:Y位置?
A4A3E:Z位置?
A4A40:X位置?
A4A42:ブランク?
A4A44:ブランク?
A4A46:ブランク?
A4A48:ブランク?
A4A4A:ブランク?
A4A4C:ブランク?
A4A4E:ブランク?
A4A50:ブランク?
A4A52:ブランク?
A4A54:パーツ基準位置Y(2つめのパーツブロックデータ開始アドレス)
★パーツブロック配列のID指定アドレス(四脚の場合)
A49EA:頭(ID24)
A4A66:コア(ID23)
A4AE2:腰部(ID22)
A4B5E:左腕肩(ID21)
A4BDA:左上腕(ID20)
A4C56:左下腕兼ブレ(ID19)
A4CD2:左手(ID18)
A4D4E:右腕肩(ID17)
A4DCA:右上腕(ID16)
A4E46:右下腕(ID15)
A4EC2:右手兼右手武器(ID14)
A4F3E:左前上脚(ID13)
A4FBA:左前下脚(ID12)
A5036:右前上脚(ID11)
A50B2:右前下脚(ID10)
A512E:右肩武器砲座(ID9)
A51AA:左肩武器砲座(ID8)
A5226:左肩武器砲身(ID7)
A52A2:左ブースター(ID6)
A531E:右ブースター(ID5)
A539A:右肩武器砲身(ID4)
A5416:左後上脚(ID3)
A5492:左後下脚(ID2)
A550E:右後上脚(ID1)
A558A:右後下脚(ID0)
・パーツブロック配列の要素数は二脚系(23)、四脚(25)、タンク(17)。
・二脚とタンクの要素順は頭、コア、腰(タンクは脚)、左上腕、左肘、左下腕(兼ブレ)、左手、右上腕、右肘、右下腕、右手(兼右手武器)、左上肢(二脚のみ)、左下肢(二脚のみ)、左足部(二脚のみ)、右上肢(二脚のみ)、右下肢(二脚のみ)、右足部(二脚のみ)、右肩武器砲座側、左肩武器砲座側、左肩武器砲身側、左ブースター、右ブースター、右肩武器砲身側。
・配列パーツIDは入れ換え可能、存在しないID指定で消せるので特定パーツを眺めるのには便利?
☆モーションブロック配列のID指定対応アドレス※後半は固定値(-2)
A5606:腰
A5682:腰
A56FE:コア
A577A:コア
A57F6:頭
A5872:左腕肩
A58EE:左上腕
A596A:左下腕
A59E6:左手
A5A62:右腕肩
A5ADE:右上腕
A5B5A:右下腕
A5BD6:右手兼右手武器
A5C52:左前上脚
A5CCE:左前下脚
A5D4A:右前上脚
A5DC6:右前下脚
A5E42:左後上脚
A5EBE:左後下脚
A5F3A:右後上脚
A5FB6:右後下脚
A6032:左肩武器元
A60AE:左肩武器先
A612A:右肩武器元
A61A6:右肩武器先
A6222:左ブースター
A629E:右ブースター
・モーションブロック配列の要素数は二脚系武器腕(24)、二脚人腕系(22)、四脚(27)、タンク(19)。※四脚の腰とコアは2箇所可動中心点があるっぽい。他は未調査。
A632A:2P用先頭パーツブロックの開始アドレス
参考
・モーション変動値および倍率を監視すれば各パーツの動作や角度をリアルタイムで解析できる。
・該当パーツを装備していない場合も配列要素が生成され連動処理されている(IDの参照先にあたるモデリングデータが読み込まれていないため無効)。
→右手ブロックは武器と兼用(グリップがないのではなくモデリングデータが手と一体型)で、武器非装備の場合は手のみ、指は手ブロックごと換装扱い(これで軽いのか?武器腕の立場が危ういけど)。
→武器腕(腕マシ、腕ミサ、腕グレ)は上腕パーツのみ、他武器腕は手なし。
→ブレードは左下腕と一体パーツ扱い(非装備時でもモデリングデータは共通)。
→CLコア装備時は右ブースターが無効扱い。右ブースターのIDに左ブースターのIDを代入すると狭いけどそこそこ自然に双発化できる(そうする予定だったのかも?)。
→IDの参照先はおそらくモーション設定データ群後半のモデリングリスト(未検証)、モデリングリスト側から各パーツブロックのモデリングデータを参照。
・連動処理は見た目(描画)だけでなくモデリングデータとモーション設定データに依存する要素は全て(向きや位置だけでなく倍率も)連動する。
→武器の発射位置や角度、ブレード判定など。機体判定および実サイズには影響せず。
・パーツ倍率(4096で100%)は接続元の倍率を引き継ぐ。
→接続大元の中心ブロックは四脚はコアと腰の2ブロック、二脚系は腰ブロック。
→接続元倍率×個別パーツ設定倍率になる。例えばコアを2倍、左手を3倍にするとコアに接続されたパーツが全て2倍になり左手は6倍になる。全てを2倍にすると末端パーツほど大きくなる。
→フィクス(おそらくエイム)モードがあるパーツブロックは選択時には接続元倍率を引き継がない(独立扱い)
→38CEE:パーツ倍率用係数?(ガレージモード共用、システム領域につき取り扱い注意)※一括で倍率を適用するので末端肥大(縮小)化する。ガレージモードでの描画倍率は機体全体に均一にかかるっぽい。
→5AFC0:マスター倍率?(アリーナシステム領域)。※同末端肥大化を解決できず。アリーナで機体全体を均一に倍率調整する方法は未発見。
・パーツブロックのデータはモーションデータが読み込まれる(動作を変更する)度に更新され、フィクスモード中は更新されない。
→手動で調整したい場合はパーツ基準位置と連動倍率を改変。
→外部ツールでパーツブロック個別に設定値を固定すれば倍率などを変更可能だけど完全固定できないので動作を加えると明滅する。
→パーツブロックをフィクスモードにする(★モードアドレスを"24or56or72or88or104or120or280"などに改変)とそのパーツの相対位置、相対角度、基準倍率が設定値で固定される(接続末端側へも引き継ぐ)。
※フィクスモードのないパーツブロックをフィクスモードにするとモーションが若干狂うのでこの方法で描画倍率を変えても完全再現できないが工夫すれば無理矢理SD風2頭身キャラにすることも…
※モーション設定データ群には各モーションごとに各パーツの基準位置の設定がありモーションが切り替わる度に連動処理データが更新、エイミングモードではその管制を外れて別のデータを参照するため更新が停止するっぽい。エイミングモードがあるパーツはデータが有効なので個別に調整する必要があり、無いパーツは基準データのまま固定されるっぽいのでブレオン機ならそれなりに描画倍率を変えても再現(若干動きがヘン)。
※3Dモデリングはまったく知見なしにつきかなり憶測まじりなのでご注意を。
○モデリングデータリストのフォーマット
+〜0x00:頂点データ開始アドレス指定(Pointer)
+〜0x04:頂点数(常時)
+〜0x06:頂点数(イベント)
+〜0x08:照明度データ開始アドレス指定(Pointer)
+〜0x0C:照明度設定データ数?
+〜0x0E:イベント関連値?(Pointer形式後半っぽいけど違うみたい、不明)
+0x10:ポリゴン構成データ開始アドレス指定(Pointer)
+0x14:ポリゴン構成数(イベント部を除く)
+0x16:不明値(未調査)
+0x18:用途不明(判定関連?)データ開始アドレス指定(Pointer)
+0x1C:next
参考
・頂点データはポリゴンを構成する頂点のxyz座標データ配列。頂点数はその配列要素数で(常時)は常に描画される部分。
・頂点数(イベント)はブレード、スラスト炎、マズルフラッシュなどで親パーツブロックの一部としてモデリングされており発動時のみ描画される部分の頂点数。該当パーツブロックの常時頂点数とポリゴン構成数にイベントポリゴン構成数(イベント用頂点数+1)を加えると常時表示されるようになる。
・照明度データはポリゴンにあたるステージ照明の指向性光源の適用度っぽいけど未調査。
・発動イベント関連値はPointer形式データ後半っぽいが違うみたい。8bit値でブレードなどイベント発動モデル描画に消失や変化するっぽいが未調査。
・ポリゴン構成数は1枚ごとにテクスチャや頂点等の構成設定するデータ配列の要素数。
・用途不明(判定?)データはブレード判定が含まれることのみ確認、その他は機能しているのか不明で座標設定タイプ。
○ポリゴン構成データのフォーマット
おそらくデータ先頭で指定するタイプでデータ構造とデータ長が異なる。以下はよくあるタイプのポリゴン構成データの例(詳しくは未調査)。
・半透明?3頂点テクスチャマッピングタイプのポリゴン構成データフォーマット(ブレード等)
+〜0:不明="7"(16bitで"1543")
+〜1:不明="6"
+〜2:ブランク
+〜3:設定タイプ
+〜4:マッピング頂点1
+〜5:マッピング頂点1
+〜6:画像マスク1
+〜7:画像マスク2
+〜8:マッピング頂点2
+〜9:マッピング頂点2
+〜A:画像ID
+〜B:?
+〜C:マッピング頂点3
+〜D:マッピング頂点3
+〜E:ブランク?
+〜F:ブランク?
+0x10:R(ヘッダの設定タイプによって明度かRGB)
+0x11:G
+0x12:B
+0x13:ブランク
+0x14:頂点1アドレス指定(頂点データ先頭からのアドレス差分)
+0x16:頂点2アドレス指定
+0x18:頂点3アドレス指定
+0x1A:ブランク
+0x1C:next
・4頂点テクスチャマッピングタイプのポリゴン構成データフォーマット(機体パーツ等)
+〜0:不明="9"(16bitで"1801")
+〜1:不明="7"(パーツブロック全域に影響)
+〜2:0
+〜3:設定タイプ
+〜4:マッピング右上(横)
+〜5:マッピング右上(縦)
+〜6:画像マスク1
+〜7:画像マスク2
+〜8:マッピング右下(横)
+〜9:マッピング右下(縦)
+〜A:テクスチャ画像ID
+〜B:?(画像IDの後は基本0で奇数と偶数で変化)
+〜C:マッピング左上(横)
+〜D:マッピング左上(縦)
+〜E:0
+〜F:0
+0x10:マッピング左下(横)
+0x11:マッピング左下(縦)
+0x12:0
+0x13:0
+0x14:照明度?
+0x15:照明度?
+0x16:頂点1アドレス指定
+0x18:頂点2アドレス指定
+0x1A:頂点3アドレス指定
+0x1C:頂点4アドレス指定
+0x1E:ブランク
+0x20:next
・3頂点テクスチャマッピングタイプのポリゴン構成データフォーマット(機体パーツ等)
+〜0:不明="7"(16bitで"1801")
+〜1:不明="5"
+〜2:ブランク
+〜3:設定データタイプ設定値の形式とデータ長)
+〜4:マッピング_頂点1側(横)
+〜5:マッピング_頂点1側(縦)
+〜6:画像マスク1
+〜7:画像マスク2
+〜8:マッピング_頂点2側(横)
+〜9:マッピング_頂点2側(縦)
+〜A:テクスチャ画像ID
+〜B:?(画像IDの後は基本0)
+〜C:マッピング_頂点3側(横)
+〜D:マッピング_頂点3側(縦)
+〜E:ブランク?
+〜F:ブランク?
+0x10:照明度?(もしくはR)
+0x11:照明度?(もしくはG)
+0x12:頂点1アドレス指定
+0x14:頂点2アドレス指定
+0x16:頂点3アドレス指定
+0x18:next
・(追加)3頂点テクスチャマッピングタイプのポリゴン構成データフォーマット(機体パーツ等)
+〜0:不明="9"(16bitで"1545")
+〜1:不明="6"
+〜2:ブランク
+〜3:設定データタイプ設定値の形式とデータ長)
+〜4:マッピング_頂点1側(横)
+〜5:マッピング_頂点1側(縦)
+〜6:画像マスク1
+〜7:画像マスク2
+〜8:マッピング_頂点2側(横)
+〜9:マッピング_頂点2側(縦)
+〜A:テクスチャ画像ID
+〜B:?(画像IDの後は基本0)
+〜C:マッピング_頂点3側(横)
+〜D:マッピング_頂点3側(縦)
+〜E:ブランク?
+〜F:ブランク?
+0x10:頂点1アドレス指定
+0x12:不明頂点1アドレス指定
+0x14:頂点2アドレス指定
+0x16:不明頂点2アドレス指定
+0x18:頂点3アドレス指定
+0x1A:不明頂点3アドレス指定
+0x1C:next
例:S0コアの一部
先頭アドレス:D1A20
頂点アドレスの先頭:D2BC4頂点アドレス指定の次の値の役割は不明。頂点アドレスのように開始アドレスに値を足しと頂点数の上限を超えた番号の頂点を指定してしまうので頂点アドレス指定ではなさそう(S0コアの頂点数は116なのに124番目とかおかしな指定になる)。一応、頂点アドレスだったと仮定したアドレスの頂点の座標を変えてみたけど見た目は変化無し。ただ、値によっては時々他の部位の表示がおかしくなっているっぽいんだけど、よくわからない。
扱い
(調査用アセンでのS0コアの未確認フォーマット)アドレス bit長 値 何番目の頂点?
値/0x8
(0番から数えてた)頂点の開始アドレス
(値+0xD2BC4)頂点アドレスの各値 十進数に変換 備考 ブランク? D1A28 16? 2C00 0000 頂点1アドレス指定 D1A30 16 0038 7 D2BFC 0041,FDE4,FFE7 65,-540,-25 不明値 D1A32 16 03F0 126? 頂点2アドレス指定 D1A34 16 0040 8 D2C04 0048,FDE2,0032 72,-542,50 不明値 D1A36 16 03E0 124? 頂点3アドレス指定 D1A38 16 0030 6 D2BF4 006E,FDE2,FFE7 110,-542,-25 不明値 D1A3A 16 03D0 122? D1A3Cから次のポリゴン構成データ(また0x0609)
+0x1C
★★★★★★確認中
・(追加)4頂点テクスチャマッピングタイプのポリゴン構成データフォーマット(機体パーツ等)
+〜0:不明="C"(16bitで"1545")
+〜1:不明="8"
+〜2:ブランク
+〜3:設定データタイプ設定値の形式とデータ長)
+〜4:マッピング_頂点1側(横)
+〜5:マッピング_頂点1側(縦)
+〜6:画像マスク1
+〜7:画像マスク2
+〜8:マッピング_頂点2側(横)
+〜9:マッピング_頂点2側(縦)
+〜A:テクスチャ画像ID
+〜B:?(画像IDの後は基本0)
+〜C:マッピング_頂点3側(横)
+〜D:マッピング_頂点3側(縦)
+〜E:ブランク?
+〜F:ブランク?
+0x14:頂点1アドレス指定
+0x16:不明値
+0x18:頂点2アドレス指定
+0x1A:不明値
+0x1C:頂点3アドレス指定
+0x1E:不明値
+0x20:頂点4アドレス指定
+0x22:不明値
+0x24:next
例:S0コアの一部
先頭アドレス:D1B3C
頂点アドレスの先頭:D2BC4110D2C7C 0010
110D2C7E 0010
110D2C80 0010
110D2C74 0010
110D2C76 0010
110D2C78 0010
扱い
(調査用アセンでのS0コアの未確認フォーマット)アドレス bit長 値 何番目の頂点?
値/0x8
(0番から数えてた)頂点の開始アドレス
(値+0xD2BC4)頂点アドレスの各値 十進数に変換 備考 16? 頂点1アドレス指定 D1B50 16 00B8 17 D2C7C 0025,FD8D,FF79 37,-627,-135 〇 不明値 D1B52 16 04D0 154? × 不明値(頂点2アドレス指定?) D1B54 16 00B8 17(同じ頂点?) D2C7C 0025,FD8D,FF79 37,-627,-135 △ 不明値 D1B56 16 04C0 98? D3084 07A8,0E09,FF5D × 頂点3アドレス指定 D1B58 16 00B0 22 D2C74 0025,FD7E,FF9C 37,-642,-100 〇 不明値 D1B5A 16 04E0 156? D30A4 × 不明値(頂点4アドレス指定?) D1B5C 16 00B0 22(同じ頂点?) D2C74 0025,FD7E,FF9C 37,-642,-100 △ 不明値 D1B5E 16 04B0 96? D3074 × D1B60から次のポリゴン構成データ(0x0709)
+0x24
○頂点座標データのフォーマット
+〜:Y座標
+0x2:Z座標
+0x4:X座標
+0x6:ブランク
※モデリングデータ座標単位で指定(おそらく実座標×4)
※機体基準(足元中心)のモデリング座標(0,0,0)からの相対位置。
※モデリングデータは手足を伸ばしきった棒立ち姿勢の設定。
→パーツ個別に独立したモデリングではなく機体全体で相対設定、棒立ち姿勢はモーション設定データの待機姿勢の角度設定を全て0にした状態とほぼ同じ。
○弾&爆風モデリングデータ群(固定アドレス、固定データ長)〜モーション設定データ群(モデリングデータリスト)概要
〜B4F68:同群データ長(データ群の先頭アドレスは不明)
〜中略(不明配列等)〜
〜B4F98:ミサイル&実スナ弾モデリングデータ開始アドレス
〜B4F9A:0
〜B4F9C:不明値
〜B4F9E:0
〜B4FA0:0
〜B4FA2:0
〜B4FA4:不明値
〜B4FA6:0
〜B4FA8:Pointer/頂点データアドレス指定
〜B4FAC:頂点データ数1(常時)
〜B4FAE:頂点データ数2(イベント)
〜B4FB0:Pointer/照明度データアドレス指定
〜B4FB4:照明度設定データ数?
〜B4FB6:イベント関連値?
〜B4FB8:Pointer/ポリゴンデータアドレス指定
〜B4FBC:ポリゴンデータ数(常時)
〜B4FBE:不明
〜B4FC0:Pointer/不明(判定?)データアドレス指定
〜B4FC4〜〜B5362:ポリゴン設定データ配列
〜B5364〜〜B5432:頂点設定データ配列
〜B5434〜〜B5492:照明度設定データ配列
〜B5494〜〜B54A2:不明設定データ配列(ここまでミサイル&実スナ弾モデリングデータ)
以下各データの開始アドレス(いずれも"12")
〜B54A4:弾ID49(グレ)用モデリングデータ
〜B5E00:爆風用モデリングデータ
〜B684C:対象不明
〜B69B8:対象不明
〜B6BE4:弾ID40,54,58(小ロケ系)用モデリングデータ
〜B6DF0:弾ID41,42,48,50,56,57モデリングデータ
〜B7674:対象不明
〜B77E0:弾ID43(レザキャ)用モデリングデータ
〜B8108:弾ID52(光波&カッター)用モデリングデータ
〜B8A34:月光波爆風用モデリングデータ
〜B9480:対象不明、ポリデータ形式が他にないタイプ
〜B9A1C:弾ID90系機雷用モデリングデータ
〜B9CE8:対象不明
〜BAC7C:弾ID53(フジツボ)用モデリングデータ
〜BB396〜〜BC406:不明データ群(サウンドエフェクト関連?、未調査)
〜BB398:ステージモデリングデータ群アドレス指定
※以降海底ドーム選択時。ステージで各データ群のヘッダアドレスとデータ長が変動する
〜BC5B8〜〜C6A74:ステージモデリングデータ群(未調査、先頭アドレスは固定)
〜BC610:ステージモデリングデータ長
〜C6A76〜〜C950A(可変長):フィールドオブジェクトのモデリングデータ群?(未調査)
〜C950C〜〜C9F3E(可変長):サウンドエフェクト関連データ群?(未調査)
〜C9516:モーション設定データ群のアドレス指定
※以降調査用アセン[4Sle6uGT,msCN]時
※0x1A628C:モーション設定データ群先頭アドレス指定Pointer(おそらく固定アドレス)
〜CA13C:モーション設定データ群先頭アドレス(モーション設定データ群参照)
〜CA144:(同群先頭+0x8)モデリングデータリストアドレス指定(データ群先頭を起点にしたByte指定)
〜D0EB8:1P機体用モデリングデータリスト
○モデリングデータリスト
※調査用アセン[4Sle6uGT,msCN](海底ドーム)時
※モデリングデータリスト配列順がモーション連動処理領域などで指定するパーツブロックID。
〜D0EB8:パーツブロック数"25"※アドレス検索方法は上記参照
〜D0EBA:0
〜D0EBC:不明"1"
〜D0EBE:0
〜D0EC0:リスト数"75"
〜D0EC2:0
〜D0EC4:右後下脚(ID00)_頂点データアドレス指定→〜D70A0
〜D0EC8: 同_頂点数(常時)"33"
〜D0ECA: 同_頂点数(イベント)"0"
〜D0ECC: 同_照明度データアドレス指定→〜D71A8
〜D0ED0: 同_照明度データ数?"22"
〜D0ED2: 同_イベント関連値?"-32768"
〜D0ED4: 同_ポリゴン構成データアドレス指定→〜D6C70
〜D0ED8: 同_ポリゴン構成データ数"36"
〜D0EDA: 同_不明値"225"
〜D0EDC: 同_用途不明(判定?)データアドレス指定→〜D7258
以下、パーツブロックリストから頂点とポリゴンデータアドレス指定のみ抽出
〜D0EE0:右後上脚(ID01)_頂点データアドレス指定→〜D6B88
〜D0EF0: 同_ポリゴン構成データアドレス指定→〜D69C8
〜D0EFC:左後下脚(ID02)_頂点データアドレス指定→〜D67F8
〜D0F0C: 同_ポリゴン構成データアドレス指定→〜D63C8
〜D0F18:左後上脚(ID03)_頂点データアドレス指定→〜D62E0
〜D0F28: 同_ポリゴン構成データアドレス指定→〜D6120
〜D0F34:右肩武器砲身側(ID04)_頂点データアドレス指定→〜E4FF4
〜D0F44: 同_ポリゴン構成データアドレス指定→〜E4FE4
〜D0F50:右ブースター(ID05)_頂点データアドレス指定→〜DFED4
〜D0F60: 同_ポリゴン構成データアドレス指定→〜DF988
〜D0F6C:左ブースター(ID06)_頂点データアドレス指定→〜DF748
〜D0F7C: 同_ポリゴン構成データアドレス指定→〜DF1FC
〜D0F88:左肩武器砲身側(ID07)_頂点データアドレス指定→〜E3FF4
〜D0F98: 同_ポリゴン構成データアドレス指定→〜E3FE4
〜D0FA4:左肩武器砲座側(ID08)_頂点データアドレス指定→〜E3D9C
〜D0FB4: 同_ポリゴン構成データアドレス指定→〜E39FC
〜D0FC0:右肩武器砲座側(ID09)_頂点データアドレス指定→〜E4D9C
〜D0FD0: 同_ポリゴン構成データアドレス指定→〜E49FC
〜D0FDC:右前下脚(ID10)_頂点データアドレス指定→〜D5F48
〜D0FEC: 同_ポリゴン構成データアドレス指定→〜D5AE8
〜D0FF8:右前上脚(ID11)_頂点データアドレス指定→〜D5A00
〜D1008: 同_ポリゴン構成データアドレス指定→〜D5840
〜D1014:左前下脚(ID12)_頂点データアドレス指定→〜D5668
〜D1024: 同_ポリゴン構成データアドレス指定→〜D5208
〜D1030:左前上脚(ID13)_頂点データアドレス指定→〜D5120
〜D1040: 同_ポリゴン構成データアドレス指定→〜D4F60
〜D104C:右手兼武器(ID14)_頂点データアドレス指定→〜E2458
〜D105C: 同_ポリゴン構成データアドレス指定→〜E19A8
〜D1068:右下腕(ID15)_頂点データアドレス指定→〜DD110
〜D1078: 同_ポリゴン構成データアドレス指定→〜DCF30
〜D1084:右上腕(ID16)_頂点データアドレス指定→〜DCE60
〜D1094: 同_ポリゴン構成データアドレス指定→〜DCCE0
〜D10A0:右腕肩(ID17)_頂点データアドレス指定→〜DCA68
〜D10B0: 同_ポリゴン構成データアドレス指定→〜DC4C8
〜D10BC:左手(ID18)_頂点データアドレス指定→〜DC3F8
〜D10CC: 同_ポリゴン構成データアドレス指定→〜DC268
※左下腕ブレード部分のモデリングデータ部分を展開して後述
〜D10D8:左下腕兼ブレード(ID19)_頂点データ開始アドレス→〜DC108
〜D10DC: 同_頂点数(通常)"16"
〜D10DE: 同_頂点数(発動イベント)"7"
〜D10E0: 同_照明度データ開始アドレス→〜DC1C0
〜D10E4: 同_照明度データ数?"16"
〜D10E6: 同_発動イベント関連?"-32760"
〜D10E8: 同_ポリゴン構成データ開始アドレス→〜DBE48
〜D10EC: 同_ポリゴン構成数"16"
〜D10EE: 同_不明"227"
〜D10F0: 同_用途不明(判定?)データ開始アドレス→〜DC240
〜D10F4:左上腕(ID20)_頂点データアドレス指定→〜DBD78
〜D1104: 同_ポリゴン構成データアドレス指定→〜DBBF8
〜D1110:左腕肩(ID21)_頂点データアドレス指定→〜DB980
〜D1120: 同_ポリゴン構成データアドレス指定→〜DB3A0
〜D112C:腰部(ID22)_頂点データアドレス指定→〜D4E48
〜D113C: 同_ポリゴン構成データアドレス指定→〜D4C48
〜D1148:コア(ID23)_頂点データアドレス指定→〜D2BC4
〜D1158: 同_ポリゴン構成データアドレス指定→〜D19A8
〜D1164:頭(ID24)_頂点データアドレス指定→〜D9EB8
〜D1174: 同_ポリゴン構成データアドレス指定→〜D99A8
以下、影モデリングリスト(未調査)。先頭データのみ抽出。
〜D1180:影_右後下脚→〜D7A28
〜D119C:影_右後上脚→〜D7940
〜D11B8:影_左後下脚→〜D7858
〜D11D4:影_左後上脚→〜D7770
〜D11F0:影_右肩武器砲身→〜E51DC
〜D120C:影_左ブースター→〜E0274
〜D1228:影_右ブースター→〜E018C
〜D1244:影_左肩武器(砲身)→〜E41DC
〜D1260:影_左肩武器(砲座)→〜E4114
〜D127C:影_右肩武器(砲座)→〜E5114
〜D1298:影_右前下脚→〜D7688
〜D12B4:影_右前上脚→〜D75A0
〜D12D0:影_左前下脚→〜D74B8
〜D12EC:影_左前上脚→〜D73D0
〜D1308:影_右手(武器)→〜E2838
〜D1324:影_右下腕→〜DD948
〜D1340:影_右上腕→〜DD854
〜D135C:影_右腕肩→〜DD704
〜D1378:影_左手→〜DD5E8
〜D1394:影_左下腕→〜DD508
〜D13B0:影_左上腕→〜DD414
〜D13CC:影_左腕肩→〜DD2C4
〜D13E8:影_腰部→〜D72E8
〜D1404:影_コア→〜D3544
〜D1420:影_頭→〜DA1C0
以降用途不明(未調査)、順列は同上
〜D143C:ID0→〜D9448
〜D1458:ID1→〜D9100
〜D1474:ID2→〜D8E18
〜D1490:ID3→〜D8AD0
〜D14AC:ID4→〜E57F4
〜D14C8:ID5→〜E0FBC
〜D14E4:ID6→〜E0830
〜D1500:ID7→〜E47F4
〜D151C:ID8→〜E459C
〜D1538:ID9→〜E559C
〜D1554:ID10→〜D87F0
〜D1570:ID11→〜D84A8
〜D158C:ID12→〜D81C8
〜D15A8:ID13→〜D7E80
〜D15C4:ID14→〜E3358
〜D15E0:ID15→〜DEC38
〜D15FC:ID16→〜DE9A8
〜D1618:ID17→〜DE728
〜D1634:ID18→〜DE460
〜D1650:ID19→〜DE218
〜D166C:ID20→〜DDEA8
〜D1688:ID21→〜DDC28
〜D16A4:ID22→〜D7BF8
〜D16C0:ID23→〜D3E94
〜D16DC:ID24→〜DA740
※参照先は各パーツモデリングデータ群の後半にあるほぼ同データ群(ポリ構成データは同値で頂点データは僅かに大きめの値)。用途に思い当たる3D系知識がない。
○調査用アセン[4Sle6uGT,msCN](海底ドーム)時の左下腕モデリングデータ(主にブレード部分)
※ブレードのモデリングデータは腕データ群の中の左下腕パーツの一部で頂点数7(ポリゴン数8)、101と201と3001は下腕モデルと頂点を一部共有。
※ブレ非装備や光波ブレでも不可視なだけでモデリングされている。
※"数値"は月光大剣化テスト時の改変値(205K1で設計してコピペしたもの)
※「明度x」はテクスチャマッピング指定値(ブレード用のテクスチャでは各0〜128指定で明度調整に相当するように作られている?)。
〜DBE48〜:左下腕ポリゴン構成データ配列(24要素)
〜DC028:ブレ用ポリゴンデータ1ヘッダ(17要素目)_"1543"
〜DC02A:blank
〜DC02B:設定タイプ_"166"
〜DC02C:明度1※テクスチャマッピング1横_"108"
〜DC02D:テクスチャマッピング1縦_"152"
〜DC02E:画像マスク?_"0"
〜DC02F:画像マスク?_"125"
〜DC030:明度2※テクスチャマッピング2横_"0"
〜DC031:テクスチャマッピング2縦_"159"
〜DC032:画像ID_"172"
〜DC033:不明(画像ID後半で常に0)_"0"
〜DC034:明度3※テクスチャマッピング3横_"80"
〜DC035:テクスチャマッピング3縦_"151"
〜DC036:blank?
〜DC037:blank?
〜DC038:R_"128"
〜DC039:G_"128"
〜DC03A:B_"128"
〜DC03B:blank
〜DC03C:頂点1_"320"
〜DC03E:頂点2_"256"
〜DC040:頂点3_"336"
〜DC042:blank
※以下同構造
〜DC044:ブレ用ポリゴンデータ2ヘッダ_"1543"
〜DC048:明度1_"108"
〜DC04C:明度2_"0"
〜DC050:明度3_"80"
〜DC054:R_"128"
〜DC055:G_"128"
〜DC056:B_"128"
〜DC058:頂点1_"272"
〜DC05A:頂点2_"256"
〜DC05C:頂点3_"288"
〜DC060:ブレ用ポリゴンデータ3ヘッダ_"1543"
〜DC064:明度1_"108"
〜DC068:明度2_"0"
〜DC06C:明度3_"80"
〜DC070:R_"128"
〜DC071:G_"128"
〜DC072:B_"128"
〜DC074:頂点1_"272"
〜DC076:頂点2_"304"
〜DC078:頂点3_"288"
〜DC07C:ブレ用ポリゴンデータ4ヘッダ_"1543"
〜DC080:明度1_"108"
〜DC084:明度2_"0"
〜DC088:明度3_"80"
〜DC08C:R_"128"
〜DC08D:G_"128"
〜DC08E:B_"128"
〜DC090:頂点1_"320"
〜DC092:頂点2_"304"
〜DC094:頂点3_"336"
〜DC098:ブレ用ポリゴンデータ5ヘッダ_"1543"
〜DC09C:明度1_"64"
〜DC0A0:明度2_"0"
〜DC0A4:明度3_"48"
〜DC0A8:R_"96"
〜DC0A9:G_"128"
〜DC0AA:B_"112"
〜DC0AC:頂点1_"336"
〜DC0AE:頂_"256"
〜DC0B0:頂_"352"
〜DC0B4:ブレ用ポリゴンデータ6ヘッダ_"1543"
〜DC0B8:明度1_"64"
〜DC0BC:明度2_"0"
〜DC0C0:明度3_"48"
〜DC0C4:R_"96"
〜DC0C5:G_"128"
〜DC0C6:B_"112"
〜DC0C8:頂点1_"288"
〜DC0CA:頂点2_"256"
〜DC0CC:頂点3_"352"
〜DC0D0:ブレ用ポリゴンデータ7ヘッダ_"1543"
〜DC0D4:明度1_"64"
〜DC0D8:明度2_"0"
〜DC0DC:明度3_"48"
〜DC0E0:R_"96"
〜DC0E1:G_"128"
〜DC0E2:B_"112"
〜DC0E4:頂1_"288"
〜DC0E6:頂2_"304"
〜DC0E8:頂3_"352"
〜DC0EC:ブレ用ポリゴンデータ8ヘッダ_"1543"
〜DC0F0:明1_"64"
〜DC0F4:明度2_"0"
〜DC0F8:明度3_"48"
〜DC0FC:R_"96"
〜DC0FD:G_"128"
〜DC0FE:B_"112"
〜DC100:頂1_"336"
〜DC102:頂2_"304"
〜DC104:頂3_"352"
〜DC108〜〜DC186:左下腕頂点データ(16頂点、指定範囲0〜240)
〜DC188:頂点256(左下)Y_"230"
〜DC18A: 同(左下)Z_"-420"
〜DC18C: 同(左下)X_"0"
〜DC18E:blank
〜DC190:頂点272(右下)Y_"190"
〜DC192: 同(右下)Z_"-420"
〜DC194: 同(右下)X_"78"
〜DC196:blank
〜DC198:頂点288(下)Y_"195"
〜DC19A: 同(下)Z_"920"
〜DC19C: 同(下)X_"68"
〜DC19E:blank
〜DC1A0:頂点304(右上)Y_"160"
〜DC1A2: 同(右上)Z_"-420"
〜DC1A4: 同(右上)X_"0"
〜DC1A6:blank
〜DC1A8:頂点320(左上)Y_"190"
〜DC1AA: 同(左上)Z_"-420"
〜DC1AC: 同(左上)X_"-78"
〜DC1AE:blank
〜DC1B0:頂点336(上)Y_"195"
〜DC1B2: 同(上)Z_"920"
〜DC1B4: 同(上)X_"-68"
〜DC1B6:blank
〜DC1B8:頂点352(先端)Y_"195"
〜DC1BA: 同(先端)Z_"1000"
〜DC1BC: 同(先端)X_"0"
〜DC1BE:blank
〜DC1C0〜〜DC23E:照明度データ配列(16要素、未調査)
〜DC240〜:用途不明(判定?)データ(5頂点分データがあるがブレ判定以外用途不明)
〜DC248:ブレ判定点1_Y_"210"
〜DC24A: 同_Z_"-362"
〜DC24C: 同_X_"0"
〜DC258:ブレ判定点2_Y_"210"
〜DC25A: 同_Z_"500"
〜DC25C: 同_X_"0"
〜DC266:ここまで用途不明(判定?)データ
〜DC268〜:左手ポリゴン構成データ配列
参考
・モデリングデータの座標単位は移動など実座標単位の4倍(実測推定)。
・判定データ(?)の座標単位は移動などの実座標単位の2倍(ファイヤーコントロールデータへの出力からの推定)
・火器管制用データ群に発動中のブレード判定領域データ(実効値)を格納するアドレスがある。
・ブレ判定はおそらく2頂点設定(AN-25とAN-Kのみ調査、設定長はほぼ同じ)
・ブレードモデルと判定の座標設定は棒立ち基準なのでブレードレンジは下腕の前後方向のZ軸で設定。腕を水平に上げるとX軸設定がモーション上の垂直方向になるので、空中判定ではx軸設定部分の無視される割合が大きくなる。
・ブレードの判定データが属するデータ配列は改変してもブレ以外に変化が解らない(というかほぼ未調査)。ひょっとしたらパーツ個別に判定領域などを設定する予定だった没データとかだったりして?。まあ出力しているから何か用途はあるだろうけど。
備考
・目的のモデリングデータ群の見つけ方
→アドレス0x1A628CがPointer形式のモーション設定データ群先頭アドレス指定(次の4byteが2P用、ミッションだとこの後にユニットの配列かな?)
→モーション設定データ群先頭+0x8にモデリングデータリストアドレス指定(同データ群先頭からByte指定)
→モデリングデータリストのアドレス指定(Pointer)、配列順はモーション連動処理領域で確認できるパーツブロックIDの昇順。
・ブレ部分の頂点データ検索の簡易方法(未検証):下記の値を検索した(おそらく4ヒットもしくは2ヒット中2つ目)アドレスを起点に探す。
→AN-201:9007373019017905671(64bit)
→AN-3001:9007340467460769287(64bit)
→AN-891-S:9007340463165801991(64bit)2ヒット中1つ目?
→他の腕:9007340458870834695(64bit)
→LN-101:起点+0x1Cから連続4頂点がブレードと左下腕外殻の共通、および+0x11Cから連続3頂点がブレ専用。
→AN-201:起点+0x1Cから連続4頂点がブレードと左下腕外殻の共通、および+0xDCから連続3頂点がブレ専用。
→LN-K1:起点+0x12Cから連続7頂点分。
→LN-D-7001:起点+0x19Cから連続7頂点分。
→AN-3001:起点+0x1Cから連続2頂点(ブレードと左下腕外殻の共通)、および+0x13Cから連続5頂点(ブレ専用)。
→ANKS-1A46J:起点+0x16Cから連続7頂点分。
→AN-863-B:起点+0x20Cから連続7頂点分。※爪部分はその直前
→AN-25:起点+0x9Cから連続7頂点分。
→AN-891-S:起点+0x19Cから連続7頂点分。
・K1と25腕のブレード部分の頂点データ配列は上から順に手首から見て左下、右下、下、右上、左上、上、先端(他未調査)。
・簡易大剣化テスト(頂点座標指定)
→(204,-390,96),0,(174,-390,0),0,(204,1280,100),0,(204,-390,-96),0,(234,-390,0),0,(204,1280,-100),0,(209,1500,0)
・簡易ツインブレード化テスト(頂点座標指定)
→(207,-400,40),0,(197,-400,50),0,(202,150,25),0,(197,-400,-50),0,(207,-400,-40),0,(202,150,-25),0,(202,-500,0)
・ポリゴンの頂点指定の改変とカラーリングで月光大剣化テスト。
→大剣の根元側4点を菱形(刃と鎬)に配置、先端側3点が鋒となるよう位置変更。
→ポリゴンは刃区-横鋒-鎬区(4枚)と鎬区-横鋒-中鋒(4枚)で分割する指定に変更。
→カラーリングは鎬周辺を透明な青(縦に見るとコロナ風)で鋒に向かって明るく、刃部分が明るくなるように調整。
→空中斬りではZ軸が無視されるので判定を見た目より若干長め(四脚前脚にヒットする程度)に調整。
→ほぼ設計通りに改変できたのでデータ構造の解釈はだいたいあってるっぽい。
<1P側ACの各モーション姿勢の設定を格納するデータ設定配列群>
※このデータ群から2P側のモデリングデータまでの全域がステージとアセンによって各アドレスが変動
※データ群先頭にそれぞれの起点になるアドレス指定リストがある。
※以降は調査用アセン[4Sle6uGT,msCN]、調査ステージ海底ドームでのアドレス。
※データ要素の説明はアドレスリストの後に記載。
0x1A628C:モーション設定データ群先頭アドレス指定Pointer(おそらく固定アドレス)
※次の4byteが2P機用でパーツブロック数が同じなら入れ換えても動かせる。後方にマップオブジェクト指定らしきものがあるのでミッションだとユニット指定に続くのかな?
モーション設定データ群(ステージが同じならおそらく先頭は同アドレス)
CA13C:データ長(同データ群各ヘッダ内での16bitアドレス指定の起点、単位はByte)
CA140:不明値
CA141:パーツブロック数
CA142:不明値
CA143:不明値
CA144:モデリングデータリストアドレス指定(データ群先頭を起点にしたByte指定)
CA148:パーツブロックリストアドレス指定(同)
CA14C:各モーション設定リストアドレス指定(同)
CA150:エイムモーションアドレス指定(同)
CA154:キャノン反動モーションアドレス指定(同)
CA158〜CA2F7:パーツブロックリスト(姿勢設定配列と同順、用途不明)
各モーション設定リスト
CA2F8:地上待機モーションアドレス指定(同リスト内のアドレス指定起点、指定単位はByte)
CA2FC:二脚用
CA300:地上前進モーションアドレス指定
CA304:二脚用
CA308:地上左斜前進モーションアドレス指定
CA30C:二脚用
CA310:地上右斜前進モーションアドレス指定
CA314:二脚用
CA318:二脚用
CA31C:地上左進モーションアドレス指定
CA320:二脚用
CA324:二脚用
CA328:地上右進モーションアドレス指定
CA32C:二脚用
CA330:二脚用
CA334:地上後退モーションアドレス指定
CA338:二脚用
CA33C:地上左後退モーションアドレス指定
CA340:二脚用
CA344:地上右後退モーションアドレス指定
CA348:二脚用
CA34C:地上旋回モーションアドレス指定
CA350:素ジャンプモーションアドレス指定
CA354:特殊設置硬直
CA358:空中待機モーションアドレス指定
CA35C:待機上昇モーションアドレス指定
CA360:空中前進モーションアドレス指定
CA364:空中後退モーションアドレス指定
CA368:空中左モーションアドレス指定
CA36C:空中右モーションアドレス指定
CA370:空中左旋回モーションアドレス指定
CA374:空中右旋回モーションアドレス指定
CA378:空中左前進モーションアドレス指定
CA37C:空中右前進モーションアドレス指定
CA380:空中左後退モーションアドレス指定
CA384:空中右後退モーションアドレス指定
CA388:着地硬直モーションアドレス指定
CA38C:地上被弾モーションアドレス指定
CA390:地上被弾モーションアドレス指定
CA394:地上被弾モーションアドレス指定
CA398:地上被弾モーションアドレス指定
CA39C:空中被弾モーションアドレス指定
CA3A0:空中被弾モーションアドレス指定
CA3A4:空中被弾モーションアドレス指定
CA3A8:空中被弾モーションアドレス指定
CA3B4:空中ブレードモーションアドレス指定
CA3D8:地上ブレードモーションアドレス指定
地上待機姿勢設定データ(モーション設定データの先頭の姿勢設定配列群)
CA3DC:モーションフレーム数(基本姿勢のみの場合は0)
CA3DE:姿勢セット数(基本姿勢のみの場合は1)
CA3E0:セット0所要f(セット0は常に0)
CA3E2:設定パーツブロック数(設定するパーツブロック数、アセンで変動)
CA3E4:右手@設定データタイプ/パーツブロック設定データ配列開始
CA3E5:パーツブロックID
CA3E6:Y
CA3E8:Z
CA3EA:X
CA3EC:右後上脚@設定データタイプ
CA3ED:パーツブロックID
CA3EE:ピッチ(8bit)
CA3EF:ヨー
CA3F0:ロール
CA3F2:Y
CA3F4:Z
CA3F6:X
CA3F8:右前上脚@(以下同)
CA3F9:パーツブロックID
CA3FA:ピッチ(8bit)
CA3FB:ヨー
CA3FC:ロール
CA3FE:Y
CA400:Z
CA402:X
CA404:右腕肩@
CA405:パーツブロックID
CA406:ピッチ(16bit)
CA408:ヨー
CA40A:ロール
CA40C:Y
CA40E:Z
CA410:X
CA412:右後下脚@
CA413:パーツブロックID
CA414:ピッチ(16bit)
CA416:ヨー
CA418:ロール
CA41A:Y
CA41C:Z
CA41E:X
CA420:右前下脚@
CA421:パーツブロックID
CA422:ピッチ(16bit)
CA424:ヨー
CA426:ロール
CA428:Y
CA42A:Y
CA42C:X
CA42E:右下腕@
CA42F:パーツブロックID
CA430:ピッチ(16bit)
CA432:ヨー
CA434:ロール
CA436:Y
CA438:Z
CA43A:X
CA43C:右肩武器砲身側@
CA43D:パーツブロックID
CA43E:ピッチ
CA440:ヨー
CA442:ロール
CA444:Y
CA446:Z
CA448:X
CA44A:右肩武器砲座側@
CA44B:パーツブロックID
CA44C:Y
CA44E:Z
CA450:X
CA452:右上腕@
CA453:パーツブロックID
CA454:Y
CA456:Z
CA458:X
CA45A:コア第二関節@
CA45B:パーツブロックID
CA45C:Y(8bit)
CA45D:Z
CA45E:X
CA460:コア第一関節@
CA461:パーツブロックID
CA462:Y(16bit)
CA464:Z
CA466:X
CA468:左手@
CA469:パーツブロックID
CA46A:Y
CA46C:Z
CA46E:X
CA470:左後上脚@
CA471:パーツブロックID
CA472:ピッチ(8bit)
CA473:ヨー
CA474:ロール
CA476:Y
CA478:Z
CA47A:X
CA47C:左前上脚@
CA47D:パーツブロックID
CA47E:ピッチ(8bit)
CA47F:ヨー
CA480:ロール
CA482:Y
CA484:Z
CA486:X
CA488:左腕肩@
CA489:パーツブロックID
CA48A:ピッチ(16bit)
CA48C:ヨー
CA48E:ロール
CA490:Y
CA492:Z
CA494:X
CA496:左後下脚@
CA497:パーツブロックID
CA498:ピッチ
CA49A:ヨー
CA49C:ロール
CA49E:Y
CA4A0:Z
CA4A2:X
CA4A4:左前下脚@
CA4A5:パーツブロックID
CA4A6:ピッチ
CA4A8:ヨー
CA4AA:ロール
CA4AC:Y
CA4AE:Z
CA4B0:X
CA4B2:左下腕@
CA4B3:パーツブロックID
CA4B4:ピッチ
CA4B6:ヨー
CA4B8:ロール
CA4BA:Y
CA4BC:Z
CA4BE:X
CA4C0:左肩武器砲身側@
CA4C1:パーツブロックID
CA4C2:ピッチ
CA4C4:ヨー
CA4C6:ロール
CA4C8:Y
CA4CA:Z
CA4CC:X
CA4CE:左肩武器砲座側@
CA4CF:パーツブロックID
CA4D0:X
CA4D2:Z
CA4D4:Y
CA4D6:左上腕@
CA4D7:パーツブロックID
CA4D8:Y
CA4DA:Z
CA4DC:X
CA4DE:頭@
CA4DF:パーツブロックID
CA4E0:Y
CA4E2:Z
CA4E4:X
CA4E6:腰部第二関節@
CA4E7:パーツブロックID
CA4E8:Y
CA4E9:Z
CA4EA:X
CA4EC:腰部第一関節@?
CA4ED:パーツブロックID
CA4EE:Y
CA4F0:Z
CA4F2:X
CA4F4:右ブースター@
CA4F5:パーツブロックID
CA4F6:Y
CA4F8:Z
CA4FA:X
CA4FC:左ブースター@
CA4FD:パーツブロックID
CA4FE:Y
CA500:Z
CA502:X
CA504:右後下脚A
CA505:パーツブロックID
CA506:Y
CA508:Z
CA50A:X
CA50C:右後上脚A
CA50D:パーツブロックID
CA50E:Y
CA510:Z
CA512:X
CA514:左後下脚A
CA515:パーツブロックID
CA516:Y
CA518:Z
CA51A:X
CA51C:左後上脚
CA51D:パーツブロックID
CA51E:Y
CA520:Z
CA522:X
CA524:右肩武器砲身側A
CA525:パーツブロックID
CA526:Y
CA528:Z
CA52A:X
CA52C:右ブースターA
CA52D:パーツブロックID
CA52E:Y
CA530:Z
CA532:X
CA534:左ブースターA
CA535:パーツブロックID
CA536:Y
CA538:Z
CA53A:X
CA53C:左肩武器砲身側A
CA53D:パーツブロックID
CA53E:Y
CA540:Z
CA542:X
CA544:左肩武器砲座側A
CA545:パーツブロックID
CA546:Y
CA548:Z
CA54A:X
CA54C:右肩武器砲座側A
CA54D:パーツブロックID
CA54E:Y
CA550:Z
CA552:X
CA554:右前下脚A
CA555:パーツブロックID
CA556:Y
CA558:Z
CA55A:X
CA55C:右前上脚A
CA55D:パーツブロックID
CA55E:Y
CA560:Z
CA562:X
CA564:左前下脚A
CA565:パーツブロックID
CA566:Y
CA568:Z
CA56A:X
CA56C:左前上脚A
CA56D:パーツブロックID
CA56E:Y
CA570:Z
CA572:X
CA574:右手(武器)A
CA575:パーツブロックID
CA576:Y
CA578:Z
CA57A:X
CA57C:右下腕A
CA57D:パーツブロックID
CA57E:Y
CA580:Z
CA582:X
CA584:右上腕A
CA585:パーツブロックID
CA586:Y
CA588:Z
CA58A:X
CA58C:右腕肩A
CA58D:パーツブロックID
CA58E:Y
CA590:Z
CA592:X
CA594:左手
CA595:パーツブロックID
CA596:Y
CA598:Z
CA59A:X
CA59C:左下腕A
CA59D:パーツブロックID
CA59E:Y
CA5A0:Z
CA5A2:X
CA5A4:左上腕A
CA5A5:パーツブロックID
CA5A6:Y
CA5A8:Z
CA5AA:X
CA5AC:左腕肩A
CA5AD:パーツブロックID
CA5AE:Y
CA5B0:Z
CA5B2:X
CA5B4:腰A
CA5B5:パーツブロックID
CA5B6:Y
CA5B8:Z
CA5BA:X
CA5BC:コアA
CA5BD:パーツブロックID
CA5BE:Y
CA5C0:Z
CA5C2:X
CA5C4:頭A
CA5C5:パーツブロックID
CA5C6:Y
CA5C8:Z
CA5CA:X
CA5CC:ブランク
CA5CE:モーションフレーム数(地上前進モーション開始アドレス)
〜中略〜
D0308:モーションフレーム数(空中ブレードモーション開始アドレス)
D030A:モーションセット数
D030C:セット0(所要f、セット0は常に0)
D030E:セット1(所要f)
D0310:セット2(所要f)
D0312:セット3(所要f)
D0314:セット4(所要f)
D0316:セット5(所要f)
D0318:セット6(所要f)
D031A:セット7(所要f)
D031C:セット8(所要f)
D031E:セット9(所要f)
D0320:セット10(所要f)
D0322:セット11(所要f)
D0324:セット12(所要f)
D0326:セット13(所要f)
D0328:セット0(基本姿勢)設定パーツブロック数
D032A:右手@設定データタイプ(設定パーツブロック先頭)
〜中略(各パーツブロックの設定配列)〜
D052A:頭A設定データタイプ(最後)
D0532:セット1/加算モーション設定パーツブロック数(セット1で設定するパーツブロックの数)
D0534:設定データタイプ(9=8bit角度指定)
D0535:パーツブロックID(26=腰@)
D0536:ピッチ
D0537:ヨー
D0538:ロール
D0539:ブランク
D053A:設定データタイプ5=16bit角度指定)
D053B:パーツブロックID(27=コア第一関節)
D0542:設定データタイプ9=8bit角度指定)
D0543:パーツブロックID(29=頭)
D0548:設定データタイプ5=16bit角度指定)
D0549:パーツブロックID(30=左腕肩)
D0550:設定データタイプ9=8bit角度指定)
D0551:パーツブロックID(31=左上腕)
D0556:設定データタイプ9=8bit角度指定)
D0557:パーツブロックID(32=左下腕)
D055C:設定データタイプ9=8bit角度指定)
D055D:パーツブロックID(36=右下腕)
D0562:セット2/加算モーション設定パーツブロック数
D0592:セット3/加算モーション設定パーツブロック数
D05C2:セット4/加算モーション設定パーツブロック数
D05F4:セット5/加算モーション設定パーツブロック数
D0626:セット6/加算モーション設定パーツブロック数
D0658:セット7/加算モーション設定パーツブロック数
D068A:セット8/加算モーション設定パーツブロック数
D06BE:セット9/加算モーション設定パーツブロック数
D06FA:セット10/加算モーション設定パーツブロック数
D0736:セット11/加算モーション設定パーツブロック数(最後)
D0772:モーションフレーム数(地上ブレードモーション)
〜中略〜
エイムモーション設定データ
D0C30:右腕エイム?モーション設定アドレス指定(データ群先頭からのbyte指定タイプ)
D0C34:左肩武器?モーション設定アドレス指定
D0C38:右肩武器?モーション設定アドレス指定
D0C3C:左肩武器展開?モーション設定アドレス指定
D0C40:右肩武器展開?モーション設定アドレス指定
D0C44:左肩武器エイム?モーション設定アドレス指定
D0C48:右肩武器エイム?モーション設定アドレス指定
D0C4C:右腕エイム?モーション設定?データ
〜以下略
※エイムモーション系は未調査、ヘッダにモーションアドレスリスト、続いて設定領域。
おそらくキャノン発射モーション設定データ
D0E40:?モーション(1)設定アドレス
D0E44:?モーション(2)設定アドレス
D0E48:?モーション(3)設定アドレス
D0E4C:?モーション(1)設定データ
〜以下略
※全て0に改変でキャノン発射時のみフリーズを観測、構造はエイムモーション領域に類似。
モデリングデータリスト
D0EB8:パーツブロック数(モデリングデータリスト先頭アドレス)
※データ配列構造はモデリングデータのテキスト参照。
参考
・モーションフレーム数:モーション所要時間と思われるが変更しても意味なし?。モーションカウンターの数値とは異なる(例えば被弾硬直は16f分ある)のでちがうかも。基本姿勢のみの設定配列では0。
・モーションセット数:基本姿勢(セット0)およびそれに加算される設定データのセットの数…と思ったけど空ブレ(のみ調査)では設定値とセット数が合ないので何か見落としてるかも。
・セットx所要f:モーションセット数分の配列が生成され、各セットに何f割り当てるかを指定していると思われるが詳しくは未調査。基本姿勢のセット0は常に0。
・各パーツブロックの要素設定配列は以下の通り
設定データタイプ(8bit)/下記参照
パーツブロックID(8bit)/下記参照
ピッチ角度
ヨー角度
ロール角度
Y位置
Z位置
X位置
※角度設定単位は内部角度。
※位置設定の単位はモデリング座標(移動などの実座標とは異なる)。
・設定データタイプは以下の通り、読み込む設定データとデータ長が決定される。
→8bit角度指定タイプ(データ長0x6):9
→16bit角度指定タイプ(データ長0x8):5
→8bit位置指定タイプ(データ長0x6):129
→16bit位置指定タイプ(データ長0x8):124
→8bit角度&位置指定タイプ(データ長0xA):137
→16bit角度&位置指定タイプ(データ長0xE):116
→8bit角度&16bit位置指定タイプ(データ長0xC):120
→16bit角度&8bit位置指定タイプ(データ長0xC):180
・各パーツブロックID(調査アセン)
※実際の設定データ配列内の順番はヘッダ直後のパーツブロックリストの順(おそらく順番を入れ替えても構文が正しければ動作する)
右ブースター@:ID51
左ブースター@:ID50
右肩武器(砲身)@:ID49
右肩武器(砲座)@:ID48
左肩武器(砲身)@:ID47
左肩武器(砲座)@:ID46
右後下脚@:ID45
右後上脚@:ID44
左後下脚@:ID43
左後上脚@:ID42
右前下脚@:ID41
右前上脚@:ID40
左前下脚@:ID39
左前上脚@:ID38
右手@:ID37
右下腕@:ID36
右上腕@:ID35
右腕肩@:ID34
左手@:ID33
左下腕@:ID32
左上腕@:ID31
左腕肩@:ID30
頭@:ID29
コア第二関節@:ID28
コア第一関節@:ID27
腰部第二関節@:ID26
腰部第一関節@:ID25(※改変しても変化しないがデータ的に腰部なはず)
右後下A:ID24
右後上脚A:ID23
左後下脚A:ID22
左後上脚A:ID21
右肩武器(砲身)A:ID20
右ブースターA:ID19
左ブースターA:ID18
左肩武器(砲身)A:ID17
左肩武器(砲座)A:ID16
右肩武器(砲座)A:ID15
右前下脚A:ID14
右前上脚A:ID13
左前下脚A:ID12
左前上脚A:ID11
右手(武器)A:ID10
右下腕A:ID9
右上腕A:ID8
右腕肩A:ID7
左手A:ID6
左下腕A:ID5
左上腕A:ID4
左腕肩A:ID3
腰A:ID2
コアA:ID1
頭A:ID0
※@群(おそらく関節ブロック)の位置設定は機体基準座標(足元中心)からの相対的な接続点(モデリング座標)と接続角度。
※A群(おそらくパーツブロック)の位置設定はパーツ接続点からの相対的な機体基準座標、角度設定はなし。関節(旋回中心)が末端にあるパーツは@に対してほぼ反数の値。
※実質@で機体側の関節位置と接続角度を決定しAでパーツ側の関節位置(反数指定)を決定していると考えてよさげ?。
※@が2種類あるのは関節(旋回中心)が2箇所あるパーツ、このパターンのブロックではAの数値指定が@の反数ではない(計算方法未調査)。
※モデリングデータは機体基準からの相対位置で作成されている(モデリングデータだけで棒立ち状態の機体姿勢になる)ので可動させるためにそれをAで0に初期化している?。3Dは畑違いすぎてよくわからない。
・加算モーション設定(姿勢セット1以降)
→基本的に姿勢セット0と同じ、セットヘッダで設定パーツブロックの数が指定され、任意のパーツブロック要素設定配列を生成。
→そのモーション設定データヘッダで指定されたスケジュールに従い各パーツブロック要素の設定値を現在のパーツブロック姿勢データに加算して行くと思われる(ざっと試しただけで未確認)。
→パーツ数指定とデータタイプ指定に沿って上流から順に処理しているので構文とデータ長が正しければ自由に改変しても機能する。例えば同じセット内でパーツ数を変えたり同じパーツを重複しても設定通り正常に加算される。
※おそらく各データ群ヘッダの参照アドレス指定を整合させれば各データ長も変えられると思われる(未検証)。
※各モーション設定リストを全て待機モーションアドレスへの指定に書き換えれば外部ツールから待機モーションを操作してACを自由に動かすとかもできるかも。連動処理を更新させる(モーション切り替えを検知する)トリガーは探してないけどアドレス0x1D8495で一応停止中でも更新する。
※データのフォーマットは共通なので別モーションから部分的にコピペ移植したりミサ推進炎をブレードのモデリングデータに差し換えてロケパンとかもできそう。
※ブレード判定は左下腕モデリングデータの一部として設定(視角的なブレードモデルとは別)されているので判定もモーション通りに連動する(空中は垂直判定が破棄され判定発動fに制限がある)、各武器の発射位置とベクトルも連動。
○画面表示設定
1AC4B4:計器表示一括ON/OFF
1AC548:画面フィルターR
1AC549:画面フィルターG
1AC54A:画面フィルターB
1AC54B:画面フィルタータイプ(明度/コントラスト?)
1AC54C:画面揺れ
※計器表示以外は常時0なのでデバッグ用?。セーブ可能な環境設定側にもあったら多少マシか?、今度は明るいステージが困るか。
○ステージ照明設定データ群
ステージ用の照明セッティングデータを格納するインプットサイドのデータ群。ほぼ固定値で等構造かつ固定長配列のデータ形式。
※ENSWは方位、ホリゾントライトは水平照明、シーリングライトは垂直照明。
1AC610:Aブロック_Eホリゾントライト(1)/照明セットID0先頭アドレス
1AC612:Aブロック_シーリングライト(1)
1AC614:Aブロック_Nホリゾントライト(1)
1AC616:Aブロック_Eホリゾントライト(2)
1AC618:Aブロック_シーリングライト(2)
1AC61A:Aブロック_Nホリゾントライト(2)
1AC61C:Aブロック_Eホリゾントライト(3)
1AC61E:Aブロック_シーリングライト(3)
1AC620:Aブロック_Nホリゾントライト(3)
1AC622:不明←意味ありげ
1AC624:Bブロック_Sホリゾントライト(1)
1AC626:Bブロック_シーリングライト(1)
1AC628:Bブロック_Eホリゾントライト(1)
1AC62A:Bブロック_Sホリゾントライト(2)
1AC62C:Bブロック_シーリングライト(2)
1AC62E:Bブロック_Eホリゾントライト(2)
1AC630:Bブロック_Sホリゾントライト(3)
1AC632:Bブロック_シーリングライト(3)
1AC634:Bブロック_Eホリゾントライト(3)
1AC636:不明
1AC638:Cブロック_Wホリゾントライト(1)
1AC63A:Cブロック_シーリングライト(1)
1AC63C:Cブロック_Sホリゾントライト(1)
1AC63E:Cブロック_Wホリゾントライト(2)
1AC640:Cブロック_シーリングライト(2)
1AC642:Cブロック_Sホリゾントライト(2)
1AC644:Cブロック_Wホリゾントライト(3)
1AC646:Cブロック_シーリングライト(3)
1AC648:Cブロック_Sホリゾントライト(3)
1AC64A:不明
1AC64C:Dブロック_Nホリゾントライト(1)
1AC64E:Dブロック_シーリングライト(1)
1AC650:Dブロック_Wホリゾントライト(1)
1AC652:Dブロック_Nホリゾントライト(2)
1AC654:Dブロック_シーリングライト(2)
1AC656:Dブロック_Wホリゾントライト(2)
1AC658:Dブロック_Nホリゾントライト(3)
1AC65A:Dブロック_シーリングライト(3)
1AC65C:Dブロック_Wホリゾントライト(3)
1AC65E:ブランク
1AC660:ライト(1)カラー強度R
1AC662:ライト(2)カラー強度R
1AC664:ライト(3)カラー強度R
1AC666:ライト(1)カラー強度G
1AC668:ライト(2)カラー強度G
1AC66A:ライト(3)カラー強度G
1AC66C:ライト(1)カラー強度B
1AC66E:ライト(2)カラー強度B
1AC670:ライト(3)カラー強度B
1AC672:空間光R
1AC673:空間光G
1AC674:空間光B
1AC676:視認性(0で無限)
1AC678:照明セットID1(以下、同構造)
1AC6E0:照明セットID2
1AC748:照明セットID3
1AC7B0:照明セットID4
1AC818:照明セットID5
1AC880:照明セットID6
1AC8E8:照明セットID7
1AC950:照明セットID8
1AC9B8:照明セットID9
1ACA20:照明セットID10
1ACA88:照明セットID11
1ACAF0:照明セットID12
1ACB58:照明セットID13
1ACBC0:照明セットID14
1ACC28:照明セットID15
1ACC90:照明セットID16
1ACCF8:照明セットID17
・照明データは選択ステージに関わらず全て読み込まれる。
・ステージデータ(別群)は地形ブロック(別群)を組み合せて構成され、それぞれのブロックごとに適用する照明セットIDが指定されている。
・ブロック照明について
→1つの照明セットはA〜Cの4つのブロック照明で構成される。
→各ブロック照明には強度を調整できる指向性の光源が3(上と東西南北のうち2)方向分あり、その方向ごとに(1)〜(3)の3タイプ光源が用意されている。つまり1ブロックに9つの指向性光源。
→指向性の光源強度の設定域は-32768〜+32767(16bit)でマイナス域で光の向きが逆になる(垂直は下向きがマイナス域)。つまり1ブロックごとに東西南北上下の向かい合った3対方向の強度調整ができる。
→各ブロック照明の光源はそのグループ内の構造物にのみ有効。
→Aブロックの照明のみ機体や弾頭などのオブジェクトと画像ベースのフィールドオブジェクトの明るさに影響。
・ライト(x)カラー強度について
→全てのブロック照明は(1)〜(3)のタイプ別に一括でRGBのライトカラー強度を設定できる。設定域は-32768〜+32767(16bit)、マイナス域でプラスの光を打ち消して暗くなる。
→最終的な光度の調節域は各光源の合計で各色65535まで有効。タイプ別RGB強度が正負で打ち消し合うのを利用すると光源の(見た目上の)角度調整や機体角度による色の変化などの演出も可能っぽい。
・空間光は非指向性でステージ全域および機体を含む全オブジェクトに有効、設定域はRGBそれぞれ0〜255(8bit)
・視認性は距離と描画明度の相関値。設定域は1〜46341(16bit)、0で明度低下無し。
・各グループ光源設定の間に16bitの値があるが用途不明(先頭グループ以外は0)。
※地形等の描画距離はステージデータ側の地形グループごとに設定されているっぽい(処理軽減用?)。
※4ブロック以上が割り当てられている(もしくは特定オブジェクトのみ別ブロック扱いの)ステージもある。
※照明設定データ群の後方に現在使用しているステージ関連のデータ群あり(未調査)。
ステージごとの照明セットIDとブロック照明指定
海底ドーム(照明セットID0)
Aブロック:南東側
Bブロック:南西側
Cブロック:北西側
Dブロック:北東側
※ドーム壁面の明るさは各ブロックの内側から照らす方向の値で設定。
※ドーム外の建造物は照明セット1のAブロック光源と空間光で調整。
※ドーム外の魚の明るさはAブロックホリゾントライトで調整
地雷原(照明セットID0)
Aブロック:エリア警告ライン内全域および北側警告ライン外および丘陵全域および一部の岩
Bブロック:東側エリア警告ライン外
Cブロック:南側エリア警告ライン外
Dブロック:西側エリア警告ライン外および一部の岩
※樹木の明るさはAブロックEホリゾントライトの逆光域で調整。
夜間市街地(照明セットID1)チェック終了
A〜D:区画の構造ごとに分割
※樹木の明るさはAブロックホリゾントライトで調整。
※街灯の設定は後述するオブジェクト照明設定群。
ゴーストタウン(照明セットID2)チェック終了
Aブロック:一部の建造物と陸地全域
Bブロック:一部の建造物
Cブロック:一部の建造物
Dブロック:一部の建造物
夜間雪原(照明セットID3)チェック終了
Aブロック:Cブロック部分を除く全域
Bブロック:なし
Cブロック:河川北側と北河岸
Dブロック:なし
※灯台の設定は後述するオブジェクト照明設定群、破壊すると消える。
※樹木の明るさはAブロックEホリゾントライトで調整。
宇宙ドーム(照明セットID10)
Aブロック:北東側
Bブロック:南東側
Cブロック:南西側
Dブロック:北西側
※ドーム外の建造物は照明セット0のBブロック光源と空間光で調整。
※ドーム壁面の明るさは各ブロックの内側から照らす方向の値で設定。
○空背景描画関連データ領域
空の色と水平線上の遠景画像の設定データ群で選択ステージによってアドレス浮動、周辺にエリアライン設定など
1D677C:背景タイプ
(夜間市街地、夜間雪原、月面、宇宙ドーム、地雷原、海底ドーム)
1D6788:背景モード
1D6789:高空R
1D678A:高空G
1D678B:高空B
1D678C:低空R
1D678D:低空G
1D678E:低空B
1D678F:地平R
1D6790:地平G
1D6791:地平B
1D6818:背景タイプ/パイプライン、吊り橋
1D684C:背景タイプ/ゴーストタウン
1D6950:背景タイプ/水上基地
・背景タイプ:背景指定?、7=水平線遠景画像タイプで空のカラー設定有効、星空タイプは5で空カラー無効(地球など画像の参照アドレスは不明)。
・背景モード:0=背景なし、1=空のみ、2=遠景のみ、3=空と遠景、4=地平のみ、5=地平と空、6=地平と遠景、7=空と地平と遠景
・空の色は上空、低空、地平の3種類でそれぞれRGB(8bit)指定、上空〜低空はグラデーションがかかる。
・前方にエリアおよび警告ライン位置の設定と消去のデータ、後方に遠方地形描画のデータあり、背景タイプと背景モード間のデータは用途不明。
※背景タイプを"7"に設定すれば空の色を改造可能。
※水平線遠景の画像は2D系画像表示設定群のステージ背景設定域で指定しているがマップによって読み込まれる画像が異なる(別ステージの画像に差し換えられない)
○オブジェクト照明データ配列
灯台などフィールドに配置されたオブジェクト型照明データ配列(すべて8bitのRGB設定のみ)
※夜間市街地と夜間雪原のみ調査。
0A39C8:オブジェクト照明背景色R
0A39C9:オブジェクト照明背景色G
0A39CA:オブジェクト照明背景色B
0A39CB:ブランク
0A39CC〜0A39EB:変動域(用途不明、明滅光源?)
0A39EC:OBJ照明R/夜間市街地街灯(機体有効)、夜雪原灯台(機体有効)
0A39ED:OBJ照明G
0A39EE:OBJ照明B
0A39EF:ブランク(1照明4byte)
0A39F0:OBJ照明R/未調査(以下地形のみ有効?)
略
0A39F4:OBJ照明R/夜間市街地街灯(地形のみ)、夜雪原灯台(地形のみ)
略
0A39F8:OBJ照明R/夜間市街地街灯(地形のみ)、夜雪原灯台(地形のみ)
略
0A39FC:OBJ照明R/夜間市街地街灯(地形のみ)
略
0A3A00:OBJ照明R/未調査
略
0A3A04:OBJ照明R/夜間市街地街灯(地形のみ)
略
0A3A08:OBJ照明R/夜間市街地街灯(地形のみ)
略(未調査OBJ照明)
0A3A4A:ここまでフィールドオブジェクト照明RGB設定
※オブジェクト照明背景色はオブジェクト光源の影響範囲の背景光源を空間光から差し換える。
※弾の推進光などのオブジェクト光源は弾設定側にあり、それらもオブジェクト照明背景色が有効。
※周辺に複数のRGB設定データ群がある(メモリデータマップ参照)が未調査。
<アリーナシステム領域のパラメータピックアップ>
80F14:ブレードモーション中の重力加速度(ACテスト256固定)
81250:ブレードモーション中の重力加速度(アリーナ256固定)
815F4:重力加速度(ACテスト256固定)
81978:重力加速度(アリーナ、256固定)
83498:ミサイル発射速度(初速、100固定)
84FC0:ブレホレンジ(3000固定)
84FD4:ブレホ範囲(マイナス域用、-512固定)
84FDC:ブレホ範囲(プラス域用、512固定)
※ミサイル(非推進中)および爆雷に対する重力加速度は未発見(雑感で機体より大きい)。
※キリのいい既知の値でしか検索していないので他にパラメータが含まれるかは不明。