Table of Contents
再現環境と確認手順
コード・本体を取得する
解析資料だけ読む場合はLFSの自動取得を止めてcloneできます。リポジトリには大量の解析記録があるため、通常のコードリポジトリより時間・容量を使います。
GIT_LFS_SKIP_SMUDGE=1 git clone https://git.darask.me/revival-forge/twa-godot-port.git port
cd port
git lfs install --local
git config lfs.concurrenttransfers 2
git switch --detach 2af011781c281e006b5d2aaa8d976252c74e9dcf
# 本体を使う解析・表示を行う時
git lfs pull --include="game/original/**" --exclude=""
game/original/ が今回公開した本体、game/revival-client/ が復活版clientです。元TWAを再現する解析では原本と復活版を取り違えません。各リポジトリの全本体は683ファイル・約14.59GB。LFSキャッシュ、展開済み本体、生成物の容量を別に見積もります。公開本体の説明
依存物と旧ワークスペース配置
保存済み確認環境はLinux x86_64、Godot 4.5.1、godot-cpp godot-4.5-stable、C++20、CMake 3.20以上です。Pythonのランチャー案内は3.12以上。Ghidra/JDK/Unicornの版・取得元・ハッシュも dependencies.lock.jsonにあります。.tools/ や生成バイナリはclone後に別途用意します。
Godot実行ファイルをPATHへ置くか、lockに対応するファイルを .tools/ へ展開します。godot-cppの既定配置は .tools/godot-cpp-godot-4.5-stable/、別の場所ではCMakeの GODOT_CPP_PATH を指定します。Godot・C++ bindingの版を無条件に最新へ変えると、保存された検証環境とは異なります。
旧ツールには、リポジトリの親をワークスペースとして次の配置を参照するものがあります。
twa-workspace/
port/ ← 今回のclone
totalwar-Arena/TotalWar_Arena/ ← 原本を参照する旧パス
totalwar-Arena-Revival/work/schema_are.ron
Linuxの新規ワークスペースなら、取得した原本への参照を次のように用意できます。既存の原本フォルダがある場所では上書きせず、その配置を使います。
cd ..
mkdir -p totalwar-Arena
ln -s ../port/game/original totalwar-Arena/TotalWar_Arena
schema_are.ron はこの公開リポジトリに収録されていません。表の再抽出には解析時と対応するschemaを別途用意する必要があります。analysis/ のDB・生成報告や godot/generated/ も完全な実行環境として揃うとは限りません。保存された原本ハッシュ・receiptと実ファイルを照合してください。
資産とビルドの基本コマンド
以下は上の twa-workspace/ で実行します。schemaが必要な工程は、そのファイルを用意してから進めます。既存の作業用解析結果を上書きしないよう、新しいcloneで行うのが確実です。
python3 -B port/tools/twa_assets.py scan --root totalwar-Arena/TotalWar_Arena --out port/analysis
python3 -B port/tools/twa_baseline.py --database port/analysis/assets.sqlite --out port/analysis/baseline-report.json
python3 -B port/tools/twa_tables.py --database port/analysis/assets.sqlite --schema totalwar-Arena-Revival/work/schema_are.ron --out port/analysis
python3 -B port/tools/twa_animation.py --database port/analysis/assets.sqlite --out port/analysis/animations-report.json
python3 -B port/tools/dev.py cmake -S port -B port/build -G Ninja -DCMAKE_BUILD_TYPE=Release
python3 -B port/tools/dev.py cmake --build port/build --parallel 2
python3 -B port/tools/twa_models.py --database port/analysis/assets.sqlite --library port/build/libtwa_native.so --out port/analysis/models-report.json
python3 -B port/tools/prepare_viewer.py --database port/analysis/assets.sqlite --library port/build/libtwa_native.so --out port/godot/generated --limit 24
python3 -B port/tools/prepare_game.py
./port/launch.sh
これは元READMEの工程を、新規cloneの配置に読み替えたものです。Wiki整備時に新規GPU実行・全生成物の再作成を完走したという記録ではありません。Windowsでの対応手順は未検証です。C++資産読込部だけを調べる場合は別のbuildフォルダへ -DTWA_BUILD_GODOT=OFF を指定してGodot依存を外せますが、それでGodot画面が起動するわけではありません。CMake設定、起動ラッパー
表示・保存・確認
格納庫で3部隊を選び、「戦場へ」で配置プレビューを開きます。1〜3で部隊選択、Ctrl+Aで3部隊選択、右クリック移動、Ctrl+S停止、WASD/中ドラッグでカメラ、ホイール拡大、Space停止、Esc格納庫です。
編成保存は user://original-preview-profile.json。ラッパー利用時は port/.cache/data/godot/app_userdata/TWA Original Port/ にあります。原作・復活版の個人プロフィールとは別ファイルです。
python3 -B -m unittest discover -s port/tests -v
ctest --test-dir port/build --output-on-failure
./port/launch.sh --headless --quit-after 1000 -- --smoke
./port/launch.sh --headless -- --flow-test
必要な生成物・依存物を揃えたうえで実行します。これらの基本確認だけでB136や全原本比較を再検証したことにはなりません。各 verify_*.py の入力・SHA・境界と、対応する資料の手順を確認して対象を選びます。
原本比較器がDLLハッシュ不一致を拒否した時は、想定版との違いを調べます。SHAチェックを消して通さないでください。結果にはsource・入力・library・検査器のハッシュ、件数、失敗・skip、実行範囲を保存します。古い合格receiptを新実行の結果として残さないようにします。
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.