概要
- Zero Hour がApple Silicon Mac、iPhone、iPadで ネイティブ動作 に対応
- タッチ操作最適化 済み、キャンペーン・スカーミッシュ・Generals Challengeプレイ可能
- DirectX 8 → DXVK → Vulkan → MoltenVK → Metal で描画、エミュレーション不要
- fbraz3/GeneralsX ベース、iOS/iPadOS対応とエンジン修正を追加
- ゲーム資産は 別途必要、Steam版などから取得
Zero Hour Apple Silicon/iOS/iPadOSネイティブ移植プロジェクト概要
- Zero Hour を Apple Silicon Mac、iPhone、iPad でネイティブ動作させるプロジェクト
- キャンペーン、スカーミッシュ、Generals Challenge 各モードに対応
- タッチ操作 (タップ選択、ドラッグボックス、長押し解除、2本指スクロール、ピンチズーム)をRTS向けに最適化
- エミュレーション非使用、2003年エンジンを ARM64向けに再コンパイル
- DirectX 8→DXVK→Vulkan→MoltenVK→Metal 変換による描画
- EA公式GPL v3ソース (fbraz3/GeneralsX)をベースにiOS/iPadOS移植とエンジン修正を追加
- 元READMEは upstream-mainブランチ に保存
- ゲーム資産は同梱・配布なし、各自Steam等(セール時約$5)で用意
macOS版クイックスタート手順
-
一度だけ必要な準備
- ツールチェーン
- xcode-select --install
- brew install cmake ninja meson pkgconf
- brew install --cask steamcmd
- vcpkgのフルクローン
- git clone https://github.com/microsoft/vcpkg ~/vcpkg && ~/vcpkg/bootstrap-vcpkg.sh
- export VCPKG_ROOT=~/vcpkg(シェルプロファイルに追加)
- LunarG Vulkan SDK (Homebrew版不可)
- https://vulkan.lunarg.com/sdk/home
- export VULKAN_SDK=$HOME/VulkanSDK/<version>/macOS(シェルプロファイルに追加)
- ツールチェーン
-
ビルド・起動手順
- git clone https://github.com/ammaarreshi/Generals-Mac-iOS-iPad.git GeneralsX
- cd GeneralsX
- ./scripts/build/macos/build-macos-zh.sh(依存関係確認・設定・ビルド)
- ./scripts/build/macos/deploy-macos-zh.sh(~/GeneralsX/GeneralsZH + run.sh作成)
- ./scripts/get-assets.sh <your_steam_username>(所有ゲームデータ取得)
- cd ~/GeneralsX/GeneralsZH && ./run.sh -win(起動)
iPhone/iPad版クイックスタート手順
-
macOS準備に加え必要なもの
- Xcode (Apple IDでサインイン済み)
- brew install xcodegen
- Apple Developerチーム(無料/有料どちらでも可)
-
ビルド・インストール手順
- cd GeneralsX
- git submodule update --init references/fbraz3-dxvk
- ./scripts/build/ios/fetch-moltenvk.sh(MoltenVK.framework取得)
- ./scripts/build/ios/stage-fonts.sh(Liberationフォント準備)
- cmake --preset ios-vulkan
- cmake --build build/ios-vulkan --target z_generals
- GX_TEAM_ID=<your-team-id> GX_BUNDLE_ID=com.you.generalszh
./scripts/build/ios/package-ios-zh.sh --install(組み立て・署名・インストール) - チームIDはXcode→Settings→Accountsで確認
-
アセットはアプリバンドル内に格納 (自己完結型インストール)
-
--devオプションで約2.7GBのコピーをスキップし、高速なコード反復が可能
ディレクトリ・ファイル構成
- docs/port/PORTING_PLAYBOOK.md: 移植工程ログ、トラブル解決記録(§8バグ調査推奨)
- docs/port/PORTING_PATTERNS.md: WindowsゲームApple移植の手法まとめ
- docs/port/RELEASE_CHECKLIST.md: リリース用チェックリスト
- scripts/get-assets.sh: Steam資産取得スクリプト (app 2732960)
- scripts/build/macos/, scripts/build/ios/: ビルド・展開・パッケージングパイプライン
- ios/: XcodeGen署名用プロジェクト、ios/config/(Options.ini, dxvk.conf)
- Patches/dxvk-ios.patch: iOS用DXVKパッチ (ローカルビルド時適用)
既知の問題
-
iPadで長時間プレイ時、iOSがメモリ制限(3GB以上)で強制終了
- ダイアログなしでホーム画面へ戻る
- セッションログはFilesアプリのゲームフォルダ内(現行+前回分)
- 現在調査中
-
iOSでゲーム中にバックグラウンド化すると稀にクラッシュ
- ライフサイクルpauseで大半の経路をカバー
- レアな競合が残存、 こまめなセーブ推奨
ライセンス・クレジット
- エンジンコード:GPL v3 (EAソース→GeneralsX→本フォーク)
- ゲーム資産:非同梱・非ライセンス
- クレジット
- Westwood/EA Pacific(ゲーム本体)
- EA(ソースリリース)
- fbraz3/GeneralsX(ベース移植)
- TheSuperHackers/GeneralsGameCode(コミュニティmainline)
- DXVK, MoltenVK, SDL, OpenAL Soft, FFmpeg, Liberation Fonts
- 本移植は人間+AI協働開発
- Claude Code(Anthropic Claude, Fableモデル)がエンジニアリング
- Ammaar Reshiが実機で指示・テスト
- docs/port/以下にエンジニアリングログ(未編集)を公開