MacでもSF6したい
Game Porting Toolkit 2とは?
Game Porting Toolkit 2(以下 GPTK2)は、Apple が開発したソフトウェアツールキットです。
これは、Windows ゲームを macOS に移植するプロセスを簡素化することを目的としています。
- 発表時期と概要
前進の Game Porting Toolkit は 2023 年 6 月 5 日に開催された WWDC23(Worldwide Developers Conference 2023)で初めて発表されました。
2024 年 06 月 10 日に開催した WWDC24 でアップデート内容が発表されました。
-
主な特徴
- Windows ゲームを macOS で動作させるためのトランスポート層を提供する。
- DirectX 12 を Metal API に変換する機能がある。
- パフォーマンス分析ツールが含まれており、移植プロセスを最適化できる。
-
扱う上での注意点
- 趣旨: ゲーム開発者向けに移植を促進する為の開発ツールである。
- 互換性:すべてのゲームが完全に互換性があるわけではありません。一部のゲームは追加の調整が必要。
- パフォーマンス:移植されたゲームは、ネイティブな macOS ゲームほどのパフォーマンスを発揮しない可能性がある。
- 技術的知識:効果的に使用するには、ゲーム開発と macOS プラットフォームに関する一定レベルの技術的知識が必要。
- Apple Silicon の最適化:M1 チップ以降の Apple Silicon デバイスで最適なパフォーマンスを得るには、追加の最適化が必要。
このツールキットは、macOS ゲームライブラリを拡大し、クロスプラットフォーム開発を促進することを目的としています。
ただし、その使用にはいくつかの技術的およびその他考慮事項があることに注意が必要です。
詳細な情報や最新のアップデートについては、Apple のデベロッパーウェブサイトを確認することをお勧めします。
命令セットのサポート拡大による期待
GPTK2 から AVX2 命令セットがサポートされたことによって、今まで動かなかった Windows 用ゲームをプレイできる可能性が出てきました。
こちらの記事にもありますが、動画もアップされていたので此れは!と思った次第です。
参考にした記事
以降で試したことをまとめていきます。
ただ参考記事の方がどんどん情報更新されていきますので、最新情報がほしい方はそちらを参考にしていただけると🙏。
推奨環境
macOS Sonoma 以降を使用する必要があります。
筆者は Sequoia で検証しています。
手順
- macOS Sequoia インストール(スキップ可)
macOS Sequoia BETA Full Installer をダウンロードしてインストール
InstallAssistant.pkg - Homebrew(X86 版)インストール既存の arm 版の brew とは別にインストールされる形となります。
arch -x86_64 zsh /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" alias brew86=/usr/local/bin/brew
パスが arm 版と異なる為、brew86 という alias を作成しています。 - GPTK2 ( Prebuild 版) インストールオフィシャル版があるのですが、こちらはビルド出来なかったので大人しく Prebuild を使いましょう。インストールも早いし。
brew86 install --cask --no-quarantine gcenx/wine/game-porting-toolkit
- ツールキットの準備
Apple Developer Downloads site から Evaluation environment for Windows games 2.0 beta をダウンロードして dmg をマウントしておいてください。(要 Apple アカウント)
以下のコマンドでライブラリディレクトリを Wine のライブラリディレクトリにコピーしてください。ditto /Volumes/Evaluation\ environment\ for\ Windows\ games\ 2.0/redist/lib/ `brew86 --prefix game-porting-toolkit`/lib/ cp /Volumes/Evaluation\ environment\ for\ Windows\ games\ 2.0/gameportingtoolkit* /usr/local/bin
- Steam インストール
Steam のインストールと初回ログインがうまくいかないケースがある為、OS の言語設定を English にしてください。
Steam のオフィシャルサイトから Windows 版のインストーラー をダウンロードしてください。1 つ目のコマンドで WINEPREFIX のディレクトリが作成されます。WINEPREFIX=~/Steam wine64 winecfg WINEPREFIX=~/Steam MTL_HUD_ENABLED=0 WINEESYNC=1 wine64 ~/Downloads/SteamSetup.exe
Windows バージョンが 10 になっていることを確認してください。
2 つ目のコマンドで Steam のインストールを行います。
言語設定は English で OK です。
インストールパスはそのままで。
以下の画面が表示されれば OK です。Run Steam のチェックを外して Finish で終わりです。
- Steam 起動
取り敢えず以下のコマンドで Steam が起動できます。真っ黒な画面が表示されてログイン出来ない場合は、OS の言語設定を English になっているか?確認してみてください。WINEPREFIX=~/Steam MTL_HUD_ENABLED=1 WINEESYNC=1 wine64 'C:\Program Files (x86)\Steam\Steam.exe'
ログインが出来たらあとはお目当てのゲームをダウンロードして実行してみてください。
wine の起動オプションについて(検証中)
検証したのが貧弱なマシン環境(MacBook Air(M2, 2022) 16 GB)だったので、 SF6 のデモ版では 60 FPS は出ませんでした。
25-35 FPS ぐらいな感じでした。エフェクトが少ない状態であれば、 60 FPS がでる瞬間もありますが、動くぞ。という程度で Playable な感じではありませんでした。
今は、 Wine の設定や起動オプションを最適化して模索している最中です。
今の所、以下のコマンドに落ち着いています。
MTL_HUD_ENABLED=1 WINEESYNC=1 DXVK_ASYNC=1 ROSETTA_ADVERTISE_AVX=1 WINEPREFIX=~/Steam wine64 'C:\Program Files (x86)\Steam\Steam.exe'
他にもいくつかオプションがありそうですが、違いがわかっていません。
- WINEDLLOVERRIDES
DDL読み込み方法を変更して、パフォーマンスに影響があることはわかっていますが、どうするのが正解なのかわかっていません。
設定すると変わらないか、遅くなる一方です。 - DXVK_HUD
- METAL_CAPTURE_ENABLED
- WINEMSYNC
最後に
色々調べていますが、M3 以降のマシンであれば、もう少しましに動くと考えています。ただ現状では環境が手元になく検証できない状況です。
もし試してみて頂けた方がいらっしゃいましたら、利用した起動オプション・FPS 等を教えて頂けますと幸いです。
Discussion
ROSETTA_ADVERTISE_AVXオプションを有効にするとAVXが有効になるっぽいです。
SteamのSystem Informationで確認すると ⬇️みたいな感じでした。
低スペックマシンでもSF6を行う為の設定
入力遅延の軽減をOFFにして、グラフィック基本設定を変更
クォリティ詳細設定でNORMALか、LOW設定にする
こんにちは、日本語記事でGPTK2について書かれているものは少ないので非常に助かります。ひとつ質問させてください、Steamのインストールまで終わった段階でStep.6の起動コマンドを入力しても黒い画面が出るでもなくそもそも起動しませんでした。おそらくこれがエラーコードだと思われますが、どこかで導入ミスが発生していると考えた方がいいでしょうか?「fixme:thread:NtSetInformationThread info class 49 not supported yet」
自分も色々試している際に黒い画面で止まった時がありました。
その際は以下の記事を参考に対処していました。
以下のセクションの部分になります
あとは変にwineのプロセスが残っていてうまく立ち上がらないケースもあったので、
プロセスをkillするか、Mac OS自体を再起動してから再実行してみるともしかしたら解消するかも知れません。
迅速な返信ありがとうございます。一度環境を再構築してGPTK1の方も導入してみたところ動作しました。OS設定をENにし忘れてしまったことも原因の一つかもしれません、ありがとうございました。
度々すみません、Steamでゲームを起動した時に右上にメモリの使用量やGPU使用率などのインジケーターが表示され続けますが、ショートカットキーや起動時のコマンドによって消すことはできるのでしょうか?
MetalパフォーマンスHUDですね。
以下のオプションを削除して起動してみてください。
本当に助かります、ありがとうございます!
ご存知かもしれませんが、一部のゲームでフォントが表示されなかったり、文字化けしてしまう場合は"Winetricks"を用いて、Cドライブ/windows/Regidit.exeを起動してHKEY_LOCAL_MACHINE -> Software -> Microsoft -> Windows NT -> CurrentVersion -> FontSubstitutesのMS Shell Dlgを編集し一般的なフォントに変更した後、"winetricks settings fontsmooth=rgb"コマンドを実行することで改善される可能性があります。
度々すみません、Steamの一部のゲームが起動しなくなってしまったのですが、ターミナルを見てみるとどうやらd3d11が悪さをしているようです。DirectX 11の環境が消えてしまったそうで再構築をしても起動しなくなってしまいました。DXVKを手動でインストールしようとしたのですが記事が少なく、dllファイルを単に上書きするだけだと起動はしますがエラーでDirectX 11がインストールされていないかグラフィックドライバーが当たってないと出てしまいます。DXVKのインストール方法かこの問題の解決策として思い当たることはありますでしょうか?
追記:evaluation environment for windowsの中身のlibフォルダは64bit用のd3d11.soファイルのみがあり、起動できないアプリはx86_32on64-unixからopengl32をロードしてるようで、そもそもmetalの動作環境がないように思えます。
追記2:steamからsystem informationを確認したところどうやらROSETTA_ADVERTISE_AVXのオプションが反映されずAVX,AVX2がunsupportedになっていました。
追記3:AVXが反映されていない原因はOSが15.0になっていないからでした。AVXは有効化されましたが以前として起動しません。
DirectX周りの確認は追記されている様にSteamのSystem Informationを確認するので良いかと考えています。
出力例としてはこちら
その出力内容と動かそうしているゲームのシステム要件に合致しているか?確認する流れになります。
Steamライブラリを確認頂くか
PCGamingWikiでシステム要件を確認する感じになります。
本当にありがとうございます、どうやらWine側の問題だったようでwine-crossoverを用いると描画はされませんが起動はしました。
結局結論としてはWhiskyを用いることで解決しましたが根本的な改善策は見つかりませんでした...ビルドミスの可能性が高いですがひとまずはWhiskyがGPTKもビルドされているのでいいかと思います。
Sequoiaの正式版と、Game Porting Toolkit 2のbeta3が出たので、環境を更新してみました。
Sequoiaはいつも通り、OSアップデートで完了
Game Porting Toolkit 2のbeta3は 手順 の4をやり直すだけ
特に変わってないように見えます。
Evaluation environment for Windows games 2.0
のRead Me.rtf
にの記載あり。
D3DM_SUPPORT_DXRのオプションというものが追加?されたらしい。
当方の環境がM2なので未検証。
こんにちは、質問があります。 M1 mac を使用しています。ステップ6にあるように、steamを開いた後、"steamwebhelper.exe, a critical Steam component, is not responding. The Steam UI will not be usable."と表示されました。前に質問されてる方と同じく、” fixme:thread:NtSetInformationThread info class 49 not supported yet " とコードが出ます。steamやmacを再起動しても解決しませんでした。何か解決方法はありますか?
OS の言語設定を English にされていますでしょうか?
お返事ありがとうございます。はい。Englishと日本語でも試しましたが同じ結果でした。
手順5を以下のような感じでやり直したら如何でしょうか?
~/my-game-prefix
はWINEPREFIX=~/my-game-prefix
と同じでwine環境のパスとなります。