在 Linux 下用 Wine 运行心灵终结
心灵终结是红警 2 的模组,分为四大阵营、12 个子阵营,各有特色。最新的 3.3.6 版本,完结了第二幕剧情。在 Linux 下,心灵终结既可以较容易地用 wine 跑起来,又因为它对显卡要求不高,用虚拟机也可以流畅运行。本文记录了 Linux Wine 环境下,心灵终结的下载、安装、配置过程。 测试环境名称 版本 发行版 Linux Mint 21 桌面环境 Cinnamon 5.4.12 Wine 7.18 Winetricks 20220411-next DXVK 1.10.3
下载
有人制作了心灵终结的汉化整合包,在安装过程中,可以设置是否汉化。在安装结束后,针对高版本 Windows 也有相应的优化。可以通过百度贴吧的置顶贴加入 QQ 群,从群文件下载。
官网的安装步骤非常繁琐,分提取文件、下载 3.3.0 的文件解压覆盖、下载音乐包解压、下载 3.3.6 的文件解压覆盖、下载汉化包覆盖等若干步骤。
准备 Wine Prefix
心灵终结的客户端有三个版本,位于游戏目录的 Resources
文件夹下。三者均能在 wine 下运行,不过对应的 wine prefix 配置方法有所不同,视喜好选择其一即可。
以下假设 wine prefix 的位置在 <wine_prefix>
。
使用 OpenGL 客户端最简单。直接新建 wine prefix 即可,无需进行额外设置。1
WINEPREFIX=<wine_prefix> wineboot
使用 DirectX 客户端时,直接运行,窗口内容全黑,需要安装 DXVK 才能正常显示内容。
首先设置 wine prefix,然后从 DXVK 的 GitHub Releases 下载最新版的 DXVK 并解压安装。1
2
3
4
5
6
7
8## setup wine prefix
WINEPREFIX=<wine_prefix> wineboot
## download and install dxvk
wget https://github.com/doitsujin/dxvk/releases/download/v1.10.3/dxvk-1.10.3.tar.gz
tar xvf dxvk-1.10.3.tar.gz
cd dxvk-1.10.3
WINEPREFIX=<wine_prefix> ./setup_dxvk.sh install
这种方法最为繁琐,需要用 winetricks 安装 XNA Framework:1
2WINEPREFIX=<wine_prefix> wineboot
WINEPREFIX=<wine_prefix> winetricks dotnet40 xna40
关于 32 位的 wine prefix
使用 32 或者 64 位的 wine prefix,客户端和游戏均可正常运行,唯一影响的是客户端播放背景音乐。
客户端播放背景音乐会用到 GStreamer 的插件。如果使用 64 位的 wine prefix,wine 会调用 64 位的 GStreamer 插件,这一般已经安装了。如果使用 32 位的 wine prefix,就需要自己根据 wine 在命令行的输出,安装 32 位的 GStreamer 插件。然而,到目前为止,三种客户端在 wine 下播放背景音乐均有问题:OpenGL 和 XNA 客户端根本无法播放,DirectX 客户端在启动后很短的时间内就会停止播放。
安装游戏
使用 wine 运行整合包安装文件:1
WINEPREFIX=<wine_prefix> wine <path_to_installation_file>
中文整合包有客户端和游戏内的汉化,我建议两者都要安装:游戏内汉化影响剧情;安装客户端的汉化后可以正确显示存档的中文名。如果想保持客户端的英文界面,并正确显示中文存档名称,可以考虑从心灵终结贴吧的群文件中下载字体解压覆盖。
开始菜单与桌面的快捷方式都不用创建。 在安装过程中使用中文 如果要在安装整合包时使用中文,需要确保语言环境变量设置正确,并通过 winetricks 安装字体: 游戏与客户端内的汉化不需要这两项设置。1
2WINEPREFIX=<wine_prefix> winetricks cjkfonts
LC_ALL=zh_CN.UTF-8 WINEPREFIX=<wine_prefix> wine <path_to_installation_file>
按照官网步骤操作即可,详见 http://mentalomega.com/index.php?page=install。
Winecfg 设置
1 | WINEPREFIX=<wine_prefix> winecfg |
启动 winecfg,调整两个选项:
- 在 Libraries 选项卡下,添加
ddraw
,这是为了使渲染补丁生效。如果不设置渲染补丁,可能无法进入游戏; - 在 Graphics 选项卡下,不要选择虚拟桌面,否则游戏无法全屏运行。
运行客户端
游戏默认安装位置在 <wine_prefix>/drive_c/Program Files (x86)/Mental Omega/
。进入该目录,并启动相应的客户端:1
2
3
4cd <wine_prefix>/drive_c/Program\ Files\ \(x86\)/Mental\ Omega/
WINEPREFIX=<wine_prefix> wine Resources/clientogl.exe # OpenGL 客户端
WINEPREFIX=<wine_prefix> wine Resources/clientdx.exe # DirectX 客户端
WINEPREFIX=<wine_prefix> wine Resources/clientxna.exe # XNA 客户端
如果无法进入游戏,可以选择渲染补丁。我只测试了 CNC-DDraw。
其它问题
安装汉化后无法通过客户端进入战役
安装汉化后,在客户端进入战役时,游戏加载到一半就会崩溃退出,在 Windows 下却正常。这是 3.3.6 版本新出现的问题。汉化文件是游戏目录下的 expandmo98.mix
。临时移走 expandmo98.mix
文件,可以进入战役,不过文字都是英文。退出游戏,把 expandmo98.mix
移回来,用客户端的“载入存档”功能,加载战役,便可绕过此问题。
使用 OBS 只能录到黑屏
如果在客户端的设置中,如果游戏内分辨率与当前分辨率不同,进入游戏后,屏幕的分辨率会改变,导致 OBS 的全屏捕获只能录到黑屏。解决方法:事先手动调整分辨率,保持与客户端内的设置一致,OBS 就能录到屏幕内容了。