├── image └── battle.jpg └── README.md /image/battle.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gdxz123/game-porting-toolkit-run-china/HEAD/image/battle.jpg -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # game-porting-toolkit-run-china 2 | 在中国,MacOS使用game porting toolkit 移植windows游戏教程 3 | 4 | 文章从https://www.applegamingwiki.com/wiki/Game_Porting_Toolkit 机器翻译加我人工校正修改而来,同时我增加了适合中国网络环境的方案(因为网络的原因),这个文章是目前最全且稳定的运行苹果Game Porting Toolkit的方案,github为最新版本:https://github.com/gdxz123/game-porting-toolkit-run-china/ 5 | 6 | 苹果游戏移植工具(Game Porting Toolkit) 7 | 文章运行的电脑:MacBook pro M1 8 | 注意: Game Porting Toolkit 文内简称GPTK 9 | 10 | 游戏移植工具包是苹果于2023年6月6日发布的新的windows程序转译层。游戏移植工具包(GPTK)将Wine与苹果自己的D3DMetal相结合,后者支持DirectX 11和12。与CrossOver或Parallels相比,这是一种在Apple Silicon Mac上安装Windows版游戏的用户体验更好的方案,它解锁了玩许多DirectX 12游戏的能力。很多游戏使用GPTK能正常运行,然而,使用了反作弊技术或攻击性数字版权校验以及需要AVX/AVX 2的游戏可能没法顺利正常运行,,例如《The Last of Us》第一章。 11 | 12 | **(如果你想要安装的是战网(Battle.net)软件,那你的系统语言一定要设置成英文,否则会遇到一直奔溃的问题,在系统设置中语言和地区处可以修改系统语言,修改后需要重启电脑)** 13 | 14 | ## GPTK安装流程介绍 15 | ### 一、安装前要求 16 | - 1、应该使用macOS Sonoma,目前它处于测试版。您可以从[MrMacintosh博客](https://juejin.cn/post/7088877842842255368)下载pkg安装程序。 17 | - 2、macOS Ventura会导致大量steamwebhelper.exe崩溃问题,因此建议使用macOS Sonoma测试版。 18 | - 3、访问苹果开发者下载网站,这些文件现在可以免费下载,供任何登录的苹果帐户使用。 19 | - 4、如果您安装了旧版本的Xcode,请将其删除。 20 | - 5、搜索Command Line Tools for Xcode15beta,下载dmg文件,然后安装它。 21 | - 6、搜索Game Porting Toolkit并下载它。打开dmg文件,然后运行pkg。 22 | 23 | ### 二、X86_64版本的Homebrew安装 24 | 注意:如果你以前安装过Homebrew,那么建议删除ARM64版本的Homebrew因为这会干扰这个安装过程。使用删除文件夹/opt/homebrew/bin或使用Homebrew卸载脚本。如果没有/opt/homebrew这个目录说明没有安装arm版Homebrew,那就不用管。如果您喜欢同时安装ARM64和x86版本的brew,您可以在.zshrc文件中添加一个“brew切换器”,以允许根据活动架构使用任何一个版本。安装Brew后,您可以按照本节末尾的步骤来实现这一点。 25 | 26 | 打开终端Terminal(在macOS上的Spotlight 中搜索“Terminal”,Spotlight快捷键是Command+空格) 27 | 28 | 在Terminal写入命令行安装Rosetta: 29 | ``` 30 | softwareupdate --install-rosetta 31 | ``` 32 | 33 | 切换到x86_64版本的shell因为Rosetta需要x86环境执行。所有后续命令都应该在这个x86版本的shell中运行(如果意外关闭了Terminal,重启后要再切换到x86版本)。 34 | 35 | 在Terminal写入命令行切换shell版本: 36 | ``` 37 | arch -x86_64 zsh 38 | ``` 39 | 40 | 如果您还没有安装x86_64版本的Homebrew,请安装它: 41 | ``` 42 | /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 43 | ``` 44 | 45 | 注意这个命令在中国大概率成功不了,因为链接被墙了。我们用国内的镜像链接来安装: 46 | ``` 47 | /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)" 48 | ``` 49 | 50 | 配置环境路径: 51 | ``` 52 | (echo; echo 'eval "$(/usr/local/bin/brew shellenv)"') >> /Users/$USER/.zprofile 53 | eval "$(/usr/local/bin/brew shellenv)" 54 | ``` 55 | 56 | 用下面指令确认安装的brew在你电脑上: 57 | ``` 58 | which brew 59 | ``` 60 | 61 | 如果此命令不打印/usr/local/bin/brew,则应使用此命令: 62 | ``` 63 | export PATH=/usr/local/bin:${PATH} 64 | ``` 65 | 66 | ### 三、构建GPTK 67 | 运行此命令下载Apple tap: 68 | ``` 69 | brew tap apple/apple http://github.com/apple/homebrew-apple 70 | ``` 71 | 72 | 注意这个也是大概率下载不成功,原因你懂的 73 | 我这边找到国内镜像包来安装: 74 | ``` 75 | brew tap apple/apple https://gitclone.com/github.com/apple/homebrew-apple.git 76 | ``` 77 | 78 | 安装游戏移植工具包公式。这个公式下载并编译了几个大型软件项目。这需要多长时间取决于计算机的速度。根据Mac的速度,可能需要1个多小时才能完成: 79 | ``` 80 | brew -v install apple/apple/game-porting-toolkit 81 | ``` 82 | 83 | 下载速度很慢,有科学上网工具的可以给Terminal配置代理加快速度,没有就等它下载构建完。 84 | 85 | (非必需步骤)如果在安装过程中您看到诸如“错误:游戏移植工具包:未知或不支持的macOS版本::dunno”之类的错误,则您的Homebrew版本不支持macOS Sonoma。请更新至Homebrew的最新版本,然后用下面的命令重试: 86 | ``` 87 | brew update brew -v install apple/apple/game-porting-toolkit 88 | ``` 89 | 90 | (非必需步骤)有时会遇到错误,Error: Tap apple/apple remote mismatch 91 | 这可能时前面运行 92 | ``` 93 | brew tap apple/apple http://github.com/apple/homebrew-apple 94 | ``` 95 | 命令时拉取了一些配置,导致前后对不上 96 | 运行下面指令: 97 | ``` 98 | brew untap apple/apple 99 | brew tap apple/apple https://gitclone.com/github.com/apple/homebrew-apple.git 100 | ``` 101 | 再去运行 102 | ``` 103 | brew update brew -v install apple/apple/game-porting-toolkit 104 | ``` 105 | 106 | ### 四、配置GPTK 107 | 确保之前下载的游戏移植工具包dmg安装在/Volumes/Game Porting Toolkit-1.0上。使用此下面命令将Game Porting Toolkit库目录复制到Wine的库目录中: 108 | ``` 109 | ditto /Volumes/Game\ Porting\ Toolkit-1.0/lib/ `brew --prefix game-porting-toolkit`/lib/ 110 | ``` 111 | 112 | 使用以下命令将游戏移植工具包DMG中的3个脚本放入/usr/local/bin中: 113 | ``` 114 | cp /Volumes/Game\ Porting\ Toolkit*/gameportingtoolkit* /usr/local/bin 115 | ``` 116 | 117 | ### 五、Wine前缀配置 118 | Wine前缀包含一个虚拟C盘驱动器,类似于CrossOver中的Bottle。您将把工具包和游戏安装到这个虚拟C盘驱动器中。运行以下命令在您的主目录中创建一个新的Wine前缀,名为my game prefix。这将创建一个名为“my-game-prefix”的Wine前缀,但可以重命名为任何前缀: 119 | ``` 120 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 winecfg 121 | ``` 122 | 123 | 执行后应该: 124 | - 1、屏幕上应出现“Wine configuration”窗口。 125 | - 2、我们将Windows的版本更改为Windows 10。 126 | - 3、选择“应用”,然后选择“确定”退出Wine configuration界面。 127 | 128 | 如果“Wine configuration”窗口未出现,并且Dock中未显示新图标,请验证您是否已正确安装了x86_64版本的Homebrew以及游戏移植工具包公式。 129 | 130 | 现在,您已经准备好将启动器或单个Windows游戏安装到此Wine前缀中,请参见下文。 131 | 132 | ### 六、安装各种主流程序 133 | 134 | 目前发现浏览器开启可能会影响Game Porting Toolkit运行,最好把浏览器都完全关闭,然后再去运行下面程序 135 | 136 | #### Steam: 137 | - 1、下载Windows版本的[Steam](https://cdn.cloudflare.steamstatic.com/client/installer/SteamSetup.exe)并将其放在下载文件夹中。 138 | - 2、用命令行安装Windows版本Steam: 139 | ``` 140 | gameportingtoolkit ~/my-game-prefix ~/Downloads/SteamSetup.exe 141 | ``` 142 | - 3、用命令行运行Steam 143 | ``` 144 | gameportingtoolkit ~/my-game-prefix 'C:\Program Files (x86)/Steam/steam.exe' 145 | ``` 146 | - 4、登录Steam 147 | 148 | 一个常见的问题是Steam将显示一个空白的黑色窗口。 149 | 150 | 解决方案1(可试):Steam的替代运行方式(安装后): 151 | ``` 152 | MTL_HUD_ENABLED=1 WINEESYNC=1 WINEPREFIX=~/my-game-prefix /usr/local/Cellar/game-porting-toolkit/1.0/bin/wine64 'C:\Program Files (x86)\Steam\steam.exe' 153 | ``` 154 | 155 | 解决方案2(不推荐):如果继续出现这种情况,请关闭“终端”窗口,然后重新打开并重试,重复此操作,直到登录屏幕打开。现在你应该可以通过Steam下载并启动Windows游戏了。 156 | 157 | 解决方案3(推荐):使用其他端登录好的状态拷贝到Wine里面的Steam去。登录Mac版本Steam,然后复制三个文件/文件夹:config、registry.vdf、userdata到~/my-game-prefix/drive_c/Program Files (x86)/Steam/ 158 | 159 | 160 | - 5、如果运行Steam,只看到APP图标,没看到画面,把除了终端之外所有的窗口(包括浏览器)全关掉,用killall -9 wineserver && killall -9 wine64-preloader 命令关掉之前创建的 wine 进程,再重新启动Steam 161 | 162 | #### Battle.net(战网软件): 163 | 下载[Battle.net的Windows版本](https://download.battle.net/en-gb/?platform=windows),并将其放入“下载”文件夹中。 164 | 165 | **( 如果系统语言不是英文,需要把系统语言切换到英文,然后会重启电脑,因为系统非英文兼容有问题。重启电脑后,把~/my-game-prefix文件夹删除,再继续下面的流程。可以用** 166 | ``` 167 | open ~ 168 | ``` 169 | **命令快速找到my-game-prefix文件夹)** 170 | 171 | 为战网制作一个新的Wineprefix前缀,你可以选择使用my-game-prefix 前缀或将其更改为其他任何前缀: 172 | ``` 173 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 winecfg 174 | ``` 175 | 176 | 执行后应该: 177 | - 1、屏幕上应出现“Wine configuration”窗口。 178 | - 2、我们将Windows的版本更改为Windows 10。 179 | - 3、选择“应用”,然后选择“确定”退出Wine configuration界面。 180 | 181 | 如果你正在运行暗黑破坏神IV,那么你需要运行此脚本来更新Wineprefix,使其显示为最新版本的Windows: 182 | ``` 183 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuild /t REG_SZ /d 19042 /f 184 | ``` 185 | ``` 186 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuildNumber /t REG_SZ /d 19042 /f 187 | ``` 188 | ``` 189 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wineserver -k 190 | ``` 191 | 192 | 安装Battle.net 193 | ``` 194 | gameportingtoolkit ~/my-game-prefix ~/Downloads/Battle.net-Setup.exe 195 | ``` 196 | 197 | 命令行启动战网 198 | ``` 199 | gameportingtoolkit ~/my-game-prefix 'C:\Program Files (x86)/Battle.net/Battle.net.exe' 200 | ``` 201 | 202 | 请注意,一旦安装,启动Battle.net就会出现问题,当前唯一的重新登录方法是再次“安装”战网。 203 | 使用以下命令在没有启动战网的情况下开始暗黑4游戏: 204 | ``` 205 | arch -x86_64 gameportingtoolkit-no-hud ~/my-game-prefix 'C:\Program Files (x86)\Diablo IV\Diablo IV Launcher.exe' 206 | ``` 207 | 208 | ### 七、通用 209 | 安装单独的exe游戏:在Finder中打开Wine前缀的虚拟C盘驱动器(打开~/my-game-prefix/drive_C),并将游戏复制到适当的子目录中。 210 | 211 | A.标准加载运行 212 | ``` 213 | gameportingtoolkit ~/my-game-prefix 'C:\Program Files (x86)\Steam\xxxx.exe' 214 | ``` 215 | 216 | 这启动了给定的Windows游戏二进制文件,带有可见的扩展Metal性能HUD,并过滤从游戏移植工具包输出的日志记录。 217 | 218 | B.加载运行没有性能显示框 219 | ``` 220 | gameportingtoolkit-no-hud ~/my-game-prefix 'C:\Program Files (x86)\Steam\xxxx.exe' 221 | ``` 222 | 223 | C.加载运行关闭ESYNC的Wine 224 | ``` 225 | gameportingtoolkit-no-esync ~/my-game-prefix 'C:\Program Files (x86)\Steam\xxxx.exe' 226 | ``` 227 | 228 | 打开Wine配置界面: 229 | ``` 230 | gameportingtoolkit ~/my-game-prefix winecfg 231 | ``` 232 | 233 | Steam在打开后立即崩溃: 234 | 断开任何多个屏幕,只用一个屏幕 235 | 236 | 战网启动程序不会重新启动: 237 | 重新安装启动器以重新打开,目前没有其他修复程序。 238 | 239 | Windows版本太久: 240 | 我的游戏不会运行,因为它认为Windows版本太旧了。一些游戏检测到特定的最低版本的Windows,需要更新。使用此脚本更新您的wineprefix版本19042,该版本应适用于大多数游戏,例如《蜘蛛侠重制版》。 241 | 输入命令行: 242 | ``` 243 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuild /t REG_SZ /d 19042 /f 244 | ``` 245 | ``` 246 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wine64 reg add 'HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion' /v CurrentBuildNumber /t REG_SZ /d 19042 /f 247 | ``` 248 | ``` 249 | WINEPREFIX=~/my-game-prefix `brew --prefix game-porting-toolkit`/bin/wineserver -k 250 | ``` 251 | 252 | steamwebhelper.exe奔溃: 253 | 这是由于Steam是通过macOS Ventura或更低版本运行的,大多数用户应该升级到macOS Sonoma。您可以使用CrossOver解决方法登录到Steam,但会不断发生崩溃。 254 | 255 | 如果奔溃后没有命令不响应: 256 | 尝试关闭所有Wine线程 257 | ``` 258 | killall -9 wineserver && killall -9 wine64-preloader 259 | ``` 260 | 261 | 反作弊系统和数字版权系统: 262 | 可能不会有任何使用反作弊的游戏的修复,例如轻松反作弊。有些游戏有变通办法,例如Elden Ring。其他使用Denuvo的游戏也可能是不兼容的,直到该DRM被游戏开发商删除。 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | ### 八、游戏移植测试情况 271 | 游戏移植Mac测试情况(Playable-可玩,Runs-能运行,Perfect-完美): 272 | 273 | 暗黑4                                        Perfect  274 | 275 | 赛博朋克2077                          Perfect 276 | 277 | 艾尔登法环                               Perfect 278 | 279 | 帝国时代 II                                Playable 280 | 281 | 最终幻想 VII Remake Intergrade        Perfect 282 | 283 | 最终幻想 XIV                            Perfect 284 | 285 | 光晕 3                                        Playable 286 | 287 | 虚拟人生 4                                Perfect 288 | 289 | 巫师 3                                        Playable 290 | 291 | 传送门                                        Playable 292 | 293 | 传送门 2                                     Playable 294 | 295 | GTA V                                        Perfect 296 | 297 | Astroneer                                   Perfect 298 | 299 | QUBE                                          Perfect 300 | 301 | Batman Arkham Knight            Perfect 302 | 303 | BioShock Infinite                       Runs 304 | 305 | Codename: Loop                       Perfect 306 | 307 | Cogmind                                     Perfect 308 | 309 | Control                                        Perfect 310 | 311 | Disco Elysium                            Perfect 312 | 313 | EVE Online                                Perfect 314 | 315 | Fallout: New Vegas                    Playable 316 | 317 | Freeways                                    Perfect 318 | 319 | Genshin Impact                            Perfect 320 | 321 | Hatsune Miku: Project DIVA Mega Mix+        Perfect 322 | 323 | Hogwarts Legacy                        Playable 324 | 325 | Jazz Jackrabbit 2                    Perfect 326 | 327 | L.A. NoireRunsMagicite            Perfect 328 | 329 | One piece odessey                    Perfect 330 | 331 | Osu!PerfectOuter Wilds                Playable 332 | 333 | Risk of Rain 2                                Perfect 334 | 335 | Rocket League                            Playable 336 | 337 | Satisfactory                                Playable 338 | 339 | Spore                                        Perfect 340 | 341 | Valheim                                        Playable 342 | 343 | XIII                                                Perfect 344 | 345 | .........(还有很多,具体看移植测试) 346 | --------------------------------------------------------------------------------