eliu.github.io
Open in
urlscan Pro
2606:50c0:8003::153
Public Scan
URL:
https://eliu.github.io/2021/03/19/Play-Windows-Classic-Games-on-macOS/
Submission: On August 10 via api from US — Scanned from DE
Submission: On August 10 via api from US — Scanned from DE
Form analysis
0 forms found in the DOMText Content
楓の葉 花有重开时,人无再少年 * 首页 * 标签 * 分类 * 归档 * 搜索 0% 使用 WINE 在 MACOS 上运行经典的 WINDOWS 游戏 发表于 2021-03-19 更新于 2021-04-05 分类于 Classic Games 写在前面 笔者作为80后,至今仍然对于青春时代曾经伴随着我们的经典游戏念念不忘。暗黑破坏神、魔兽争霸、重返德军总部。。。那毕竟是我们这一代的青春。即使我现在玩不动了,但笔记本电脑中依然保留着这些游戏,偶尔玩一下怀念怀念也好。 我的笔记本现在已经换成 MacBook Pro,运行着 macOS Catalina 操作系统,曾经的经典游戏常规的方法依然无法继续运行了。当然你可能会说,安装一个虚拟机系统,里面跑一个 Windows XP 也可以玩了。这当然可以做到,但是它太重了,而且中间隔着一个虚拟化层,运行效率自然不高。作为搞 IT 的,怎么可以止步于此? 本次介绍一种使用 Wine 运行经典游戏的方法,教程适用于 macOS 操作系统,但思路也适用于 Linux。 WINE 简介 来自维基百科:Wine通过提供一个兼容层来将Windows的系统调用转换成与POSIX标准的系统调用。它还提供了Windows系统运行库的替代品和一些系统组件的替代品。为了避免著作权问题,Wine主要使用黑箱测试逆向工程来编写。 说白了 Wine 和虚拟机的玩法有本质上的区别,Wine 是操作系统层的 API 调用转换,并没有虚拟层,因此运行效率上比虚拟机方式会高很多。 MACOS 下安装 WINE 本次我们将使用 Homebrew 来安装 Wine,Homebrew 是 macOS 下最流行的包管理器,如果您还没有安装 Homebrew,请访问 Homebrew 官网详细了解,或者直接在终端使用以下命令进行安装: 1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 接下来我们使用 Homebrew 来安装 Wine: 1 2 3 $ sudo spctl --master-disable # 允许未知来源的软件安装 $ brew tap gcenx/wine $ brew cask install --no-quarantine wine-crossover 配置 WINE 我们的目标是运行 Windows 下的经典游戏,因此此处所有的配置都是针对这个目标进行的。 1. 初始化 WINE 我们准备将 Wine 的主目录存储在 $HOME/.wine/ 下,在终端执行一下命令: 1 $ WINEARCH=win32 WINEPREFIX=$HOME/.wine winecfg 此时 WIne 会启动一个包含若干标签页的配置窗口,我们需要设置以下内容: 标签页 属性 值 备注 Applications WIndows Version Windows XP Libraries New override for library ddraw 然后点击 Add 按钮添加 配置窗口截图如下所示: 设置完成之后,点击 OK 按钮保存设置,此时 Wine 的主目录 $HOME/.wine 的目录结构看起来是这样的: 1 2 3 4 5 6 7 8 9 10 11 12 . ├── dosdevices │ ├── c: -> ../drive_c │ └── z: -> / ├── drive_c │ ├── Program Files │ ├── ProgramData │ ├── users │ └── windows ├── system.reg ├── user.reg └── userdef.reg 至此,Wine 所有的安装和配置工作全部结束,接下来就是如何在 Wine 中运行经典的游戏了。 2. 解决中文乱码 在终端的 shell 配置文件中为 wine 添加别名: 1 alias wine="env LC_ALL=zh_CN.UTF-8 wine" 3. 环境变量配置 1 2 3 4 5 6 7 8 # Fix error `terminals database is inaccessible` for Wine Crossover 20.x export TERMINFO=/usr/share/terminfo # 禁止在终端输出所有调试信息 export WINEDEBUG=-all # Wine 主目录 export WINEPREFIX=~/.wine # 运行 32 位的 Windows export WINEARCH=win32 4. 配置暗黑破坏神II 我们以 Diablo II 为例来进行说明,首先进入目录 $HOME/.wine/drive_c ,然后新建目录 games: 1 2 $ cd $HOME/.wine/drive_c $ mkdir games 之后,下载免安装版的 Diablo II 游戏到 $HOME/.wine/drive_c/games/Diablo II,相信你可以很容易下载到的 :) 然后打开注册表,增加注册表项 KEY_CURRENT_USER\Software\Blizzard Entertainment\Diablo II\VideoConfig 并设置该项的类型为 REG_DWORD,值为 0: 在终端启动 Diablo II: 1 2 $ alias d2="cd $HOME/.wine/drive_c/games/Diablo\ II && wine Game.exe -w -direct -txt" $ d2 至此,Diablo II 的基本设置就已经全部完成,其他的经典游戏步骤类似,笔者已经测试通过了如下经典游戏: * 暗黑破坏神 II * 重返德军总部 * 仙剑奇侠传四 * 魔兽争霸 III (过场动画会报错) * 街机模拟器fbaxp 附录:终端环境配置汇总 $HOME/.zshrc 或者 $HOME/.bashrc 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # Fix error `terminals database is inaccessible` for Wine Crossover 20.x export TERMINFO=/usr/share/terminfo # 禁止在终端输出所有调试信息 export WINEDEBUG=-all # Wine 主目录 export WINEPREFIX=~/.wine # 运行 32 位的 Windows export WINEARCH=win32 export WINEGAMEHOME="$WINEPREFIX/drive_c/games" alias wine="env LC_ALL=zh_CN.UTF-8 wine" alias d2="cd $WINEGAMEHOME/Diablo\ II && wine Game.exe -direct -txt" alias rtcw="cd $WINEGAMEHOME/RealRTCW/Return\ to\ Castle\ Wolfenstein && wine RealRTCW.x86.exe" alias fba="cd $WINEGAMEHOME/fba && wine fbaxp.exe" alias pal4="cd $WINEGAMEHOME/PAL4 && wine PAL4.exe" alias pal4cfg="cd $WINEGAMEHOME/PAL4 && wine Config.exe" alias war3="cd $WINEGAMEHOME/Warcraft\ III && wine Frozen\ Throne.exe" 参考链接 * D2QOL | Mac OSX * D2QOL | Video * macOS Mojave下解决wine中文乱码问题 * terminals database is inaccessible 解决办法 | CSDN * Debug Channels - WineHQ Wiki # wine # macOS # Diablo II Hexo 快速入门 使用 kind 在本地运行 k8s * 文章目录 * 站点概览 1. 1. 写在前面 2. 2. Wine 简介 3. 3. macOS 下安装 Wine 4. 4. 配置 Wine 1. 4.1. 1. 初始化 Wine 2. 4.2. 2. 解决中文乱码 3. 4.3. 3. 环境变量配置 4. 4.4. 4. 配置暗黑破坏神II 5. 5. 附录:终端环境配置汇总 6. 6. 参考链接 eliu 楓の葉的博客 17 日志 12 分类 34 标签 GitHub E-Mail © 2018 – 2023 eliu 由 Hexo 强力驱动 v5.4.0 | 主题 – NexT.Gemini v7.7.1