MacでAge of Empires 2 DE (AoE2DE)をCrossOverで動かす

May 31, 2021, 11:52 a.m. edited May 31, 2021, 11:22 p.m.

#Mac  #AoE2 

Redditにある投稿に沿えばできます。引っかかった内容(15.のこと)もあるので、一応、ここにも書きます。もっとも、にっちもさっちも行かなくなったら、素直にWindows環境を整えるのが楽そう。

  1. 最初にCrossOverを買います。Windows買うよりは安いですし、体験版で試してからでも良いです。(それでも買いたくないならOSSではあるので自分でビルドという選択肢もありか)
  2. CrossOverにはインストールできるソフト一覧みたいなものがあり、そこからSteamを選んでインストールします。その際に新しくBottle(個々の隔離されたWindows環境みたいなもの)も作られるはずです。
  3. Steam内で購入済みのAoE2DEをインストールします。まだ買っていないなら買いましょう(こちらは体験版とかないので事前に動作確認はできないですが・・)。
  4. 先程Steamをインストールするのに使ったソフト一覧でDXVKをインストールします(実は要らない気がする)。
  5. 同様にDirectX for modern gamesをインストールします。が、おそらくダウンロードできなかったとか出て失敗するので、実態はただの directx_Jun2010_redist.exe であることから代わりに https://trsasasusu.com/blog/119/directx_Jun2010_redist-9c/ を参考にダウンロードしてインストールしましょう。
  6. CrossOverの最初の画面でSteam bottleを右クリックするとSettingsがあるので、そこからDXVK backendを有効にします
  7. HomebrewをMacにインストールします。(まあMac使ってるエンジニアなら既に入ってるでしょう)
  8. brew install cabextract
  9. https://aka.ms/vs/16/release/vc_redist.x64.exeからvc_redist.x64.exeを適当な空フォルダ内にダウンロードします(インストールはしない)
  10. cabextract vc_redist.x64.exe
  11. cabextract a10
  12. ucrtbase.dll がフォルダ内にあるはずなので、これをSteam bottleのC:/Windows/System32に置きます(元からある方は適当にリネームしておく)。
  13. CrossOverの最初の画面でSteam bottleを選択するとWine configurationみたいなものが出てくるはずなので、そこのLibrariesにて concrt140ucrtbasenative に設定します
  14. Steamの設定からAoE2DEの起動オプションに SKIPINTRO を設定します。
  15. キーボードをMacの設定からU.S.にします(これをしないとキーボードショートカットが使えず対戦で負けます)
  16. AoE2DEを起動します。

↑このとおり。とはいっても、これだとMacで動いてる感がないので、 ↑Steam窓を前面に出すとこんな感じ

ちょっとした解説

まずなぜCrossOverなのか

同じWine系ではPlayOnMacなども存在しますが、大きな違いとしてはDXVKが使えるか否かです。CrossOver製作元のCodeWeaversは黒魔術によりもともとLinuxかつVulkan環境にしか対応していなかったDXVK (DirectXを他の環境でも動かすやつ) をあろうことかMacで動かせるようにしたため最強になったのです。さらに、Catalina以降やM1 Macでも動くらしいので、すごい。(ゆえにAoE2HDもCrossOver使えばそれらの環境でも動くと思う。私は未だにMojaveで止まってるので試してないが・・)

さらに、実は最近のMacでの多くのWine環境ではSteamの表示すらまともに動きません。大体真っ黒になってしまって、かろうじてタスクバーからちょこっと操作できるくらいです。その点もCrossOverではちゃんと動きます。

ucrtbase.dll関連で何してるの?

実はこの辺はやらなくても一応動きはするのですが、オンライン対戦ができなくなります。正確にはできはするのですが、開始数秒後に落ちます。レートも速攻で相手に明け渡すことになります。その辺をucrtbase.dllを置き換えることで正常に動作させられるようになるそうです。原理はわからん。見つけた人天才すぎる。

SKIPINTRO

オープニングムービーは読めずに落ちるので、読まないように飛ばさせます。

キーボードをU.S.にする

これは私が見つけた

大事なことなので、もう一度。

これは私が見つけた

あの掲示板はみんな基本的に英語キーボードを使っているので、誰も引っかからなかったようですが、たとえMac標準搭載のローマ字やGoogle英語入力であっても、キーボードショートカットは動きません(正確には Ctrl+何か なら動くのですが、開幕Hを押せない時点でお察し)。これを海外の皆さんと同じU.S.にすることで動くようになります。

現在起きている難点

なんか大きなマップだと右下の方が黒く点滅する。多分、私のMacbook Air (2017) 8 GB、メモリが足りてない・・・・?? 試してないけど 512x512 terrains MOD とか入れれば改善するかな・・?