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

Form analysis 0 forms found in the DOM

Text 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