Game Porting Toolkit 安装指南

Game Porting Toolkit游戏移植工具包于2023年6月6日在WWDC大会上发布,Game Porting ToolkitWine与苹果自家的D3DMetal技术相结合,实现对DirectX 11和12的支持。

CrossOverParallels这类结束相比,虽然通过GPTK安装Windows游戏对用户有使用门槛,但它却有解锁支持更多DirectX游戏的能力。

虽说很多游戏都可以通过GPTK运行,但是那些包含了反作弊或DRMs,以及使用A1VX/AVX 2指令集的游戏不在可玩范围之内。

准备

关于支持的系统,macOS 14 beta?

貌似只能使用macOS Sonoma beta版本,即 macOS 14 beta。但是也有说法是macOS 13也是可以的,不愿意尝试的用户可以试下。

另外注意如果遇到问题也可以尝试把系统改为英文。

Homebrew

只有x86版本的Homebrew才能满足安装要求,我们需要新安装x86版本,如果已经安装过arm版本的Homebrew,我们是可以让两者同存的。

  1. 打开终端
  2. 安装Rosetta转译
softwareupdate --install-rosetta
  1. 打开x86模式的zsh终端,注意:教程里的操作都需要在x86下操作
# 启动 x86 版本的 shell
arch -x86_64 zsh
  1. 安装x86版本Homebrew
/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"

请认准 Homebrew中文网

  1. 设置brew环境自动切换
cat << 'EOF' >> ~/.zshrc
if [ "$(arch)" = "arm64" ]; then
eval "$(/opt/homebrew/bin/brew shellenv)"
else
eval "$(/usr/local/bin/brew shellenv)"
fi
EOF
source ~/.zshrc

后续只需要在终端先执行arch -x86_64 zsh,就能自动切换到x86,不执行这段命令就会默认用arm版本。

安装结束后,执行命令:

which brew

如果看到一下目录就说明Homebrew安装对了。

/usr/local/bin/brew

构建 game-porting-toolkit

确保还在上述终端里,继续执行命令安装:

brew tap apple/apple https://gitee.com/ineo6/homebrew-apple.git

tap仓库使用的国内镜像,能够安装时不会遇到网络问题。

然后编译game-porting-toolkit,这一步的耗时会很久,请耐心等待。

brew -v install apple/apple/game-porting-toolkit

具体的时间取决于你的电脑性能和网速,以下数据仅供参考。

M1上首次安装可能需要75分钟,更新需要48分钟,在M2 Max上首次安装需要36分钟,更新需要19分钟。

准备 Game Porting Toolkit

访问 Apple开发者下载网站,登录你的苹果帐号后,在输入框搜索Game Porting Toolkit

下载好后双击dmg进行挂载。

  • Game_porting_toolkit_1_beta_3以及之前版本请执行:

请执行:

ditto /Volumes/Game\ Porting\ Toolkit-1.0/lib/ `brew --prefix game-porting-toolkit`/lib/
  • Game_porting_toolkit_1_beta_4版本请执行:
ditto /Volumes/Game\ Porting\ Toolkit-1.0/redist/lib/ `brew --prefix game-porting-toolkit`/lib/

继续执行:

cp /Volumes/Game\ Porting\ Toolkit*/gameportingtoolkit* /usr/local/bin

配置 Wine prefix

WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 winecfg

图片来自网络

执行后,会弹出Wine configuration,我们要把里面的Windows Version里面的值改为Windows 10,并点击OK保存。

如果没有显示Wine configuration窗口,在Dock里也没有新增的应用,有可能就是因为没有安装上x86版本的Homebrew以及对应的game-porting-toolkit

请重新检视构建 game-porting-toolkit这一章节内容。

如果一切顺利到此,那接下来就可以安装游戏了。

下载&安装 Steam

下载 Steam(Windows)并放放在你的"下载"文件夹内,英文版叫"Downloads"。

安装

gameportingtoolkit ~/my-game-prefix ~/Downloads/SteamSetup.exe

这里的~/Downloads/SteamSetup.exe就是你要安装或运行的Windows程序,如果是其他游戏,可以自己替换。

用gptk启动Steam

gameportingtoolkit ~/my-game-prefix 'C:\Program Files (x86)/Steam/steam.exe'

登录Steam

启动Steam后,很可能会出现黑色的弹窗,无法进行任何操作,这样我们也没法登录帐号,可以参考下面的方案。

解决方案1

换以下启动命令:

MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0.3/bin/wine64 'C:\Program Files (x86)\Steam\steam.exe'

解决方案2

安装mac版本的Steam,登录帐号并保证能看到游戏。

打开以下目录:

~/Library/Application Support/Steam

复制configuserdataregistry.vdf三个文件到下面这个目录:

~/my-game-prefix/drive_c/Program Files (x86)/Steam

重新启动Windows版本Steam

gameportingtoolkit ~/my-game-prefix 'C:\Program Files (x86)/Steam/steam.exe'

现在可以正常登录,但是可能还是有黑屏部分,可以通过点击菜单View-Small Model进行调整。

接下来就可以安装游戏了

启动游戏:赛博朋克2077

这里我们以为例,假设你在Steam里下载并安装了赛博朋克2077,可以尝试直接在Steam启动游戏,如果不行的话可以用下面的命令启动游戏。

MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0/bin/wine64 ~/my-game-prefix/drive_c/Program\ Files\ \(x86\)/Steam/steamapps/common/Cyberpunk\ 2077/bin/x64/Cyberpunk2077.exe

上面命令的最后部分是你的游戏安装目录,启动不同的游戏可以自行替换游戏启动exe的路径。

~/my-game-prefix/drive_c/Program\ Files\ \(x86\)/Steam/steamapps/common/Cyberpunk\ 2077/bin/x64/Cyberpunk2077.exe

更多解决方案

Steam 黑屏解决方案汇总

其他Steam启动命令

  1. 关闭终端,重新打开终端和执行启动Steam,多尝试几次。
  2. 更换启动Steam命令:
    MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0.3/bin/wine64 'C:\Program Files (x86)/Steam/steam.exe'
  3. 使用CrossOver
    WINEPREFIX="/Users/$USER/Library/Application Support/CrossOver/Bottles/Steam/"

通过mac Steam登录

  1. 登录macSteam
  2. 打开~/Library/Application Support/Steam,复制这三个文件: config, registry.vdf, userdata
  3. 粘贴到~/my-game-prefix/drive_c/Program Files (x86)/Steam/

打开Steam后直接闪退

移除扩展显示器,或者停止屏幕镜像。

需要帮助?
建议先查阅 FAQ
扫码回复"brew"进群