在Linux上运行SDVX
前言
虽然spice2x没有官方的兼容,但是通过Wine的模拟也是可以在Linux上运行的
本文会以基于Wayland+KDE环境的Arch Linux作为演示,使用针对wine特化的修改版spice2x和bmsound-wine
详细配置如下:
- CPU: Intel Core i5-14600KF
- GPU: NVIDIA GeForce RTX 4060 (Driver: 590.48.01)
- 使用开源驱动+dkms编译
- 系统: Arch Linux + KDE Plasma(Wayland)
- 内核: linux-zen
- Wine 11.1
Linux下的已知问题
- 修改版spice与bmsound-wine都处在开发阶段,可能会有意料之外的问题
- 音频可能会轻微爆音,全屏启动游戏可缓解
- 全屏启动游戏会导致副屏白屏,如果想要同时使用,可以开启窗口化解决。在cfg里设置无边框窗口可去除标题栏
- 窗口下游戏可能会突然卡住,然后恢复,全屏可缓解
- HID灯光不可用
环境准备
显卡驱动 & Vulkan
根据自己的显卡安装显卡驱动与Vulkan环境
并未测试笔记本,如有需要请自行调整相关的包,而不是照抄
NVIDIA
Note
本文案例均使用开源驱动,NVIDIA使用dkms手动根据内核编译。NVIDIA新老显卡的驱动并不相同,老显卡可能需要使用闭源驱动,请参考Arch官方的说明
本文以NVIDIA 40系(NV190/ADXXX)显卡为例:
安装对应内核的头文件,以我的zen内核为例:
sudo pacman -S --needed linux-zen-headers # 如果你是标准内核或者lts内核请自己修改
编译并安装驱动
sudo pacman -S nvidia-open-dkms nvidia-utils lib32-nvidia-utils vulkan-icd-loader lib32-vulkan-icd-loader
AMD
sudo pacman -S mesa lib32-mesa vulkan-radeon lib32-vulkan-radeon xf86-video-amdgpu
Intel
sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
音频服务器
sudo pacman -S pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber
编解码器
sudo pacman -S gstreamer gst-plugins-good gst-plugins-ugly gst-libav
git与编译环境
sudo pacman -S git base-devel cmake
Wine & Winetricks
sudo pacman -S wine wine-mono winetricks
32位源(可选)
编辑/etc/pacman.conf
vim /etc/pacman.conf
取消multilib两行的注释
[multilib]
Include = /etc/pacman.d/mirrorlist
然后更新系统
sudo pacman -Syu
禁用屏幕锁定
记得关闭KDE默认的屏幕自动锁定,你也不想打一半给你锁屏了吧

环境搭建
-
打开终端,配置WINEPREFIX与游戏路径环境变量,本文使用下方路径,你可以参考
注意
环境变量仅在当前终端窗口生效,关闭终端后需重新设置,所以接下来的配置请勿关闭终端窗口
export WINEPREFIX=~/KFC/wine export GAMEDIR=~/KFC/contents # 游戏记得放到这里面 mkdir -p ~/KFC -
初始化Wine,并安装必备的库
wineboot --init winetricks dxvk d3dcompiler_43 d3dx9_43
-
安装最新的nixac spice2x
下载完成后将spice64.exe解压到contents文件夹下,无需cfg。然后将stubs/64文件夹下的所有文件解压到contents/modules

-
安装bmsound-wine
bmsound-wine是游戏的音频引擎bmsound的wine特化版本,原生的引擎在wine下有一些问题,不太稳定
cd ~/KFC git clone https://codeberg.org/nixac/bmsound_wine cd bmsound_wine git fetch --tags git checkout tags/v0.2.3 git submodule update --init --recursive make -Rs build TARGET_ARCH=x64 TARGET_TYPE=Release cp bin/Release/x64/bmsound-* $GAMEDIR/modules -
启动cfg,配置游戏键位,网络等
cd $GAMEDIR wine spice64.exe -cfg无边框窗口化配置如图:

Note
如果你是2K及以上的分辨率,懒得改系统的分辨率,也可以填写Window Size和Subscreen Size来强制缩放游戏窗口到你的分辨率上,但是会增加卡顿
-
启动游戏
export LD_LIBRARY_PATH="$GAMEDIR/modules" export WINEDLLPATH="$GAMEDIR/modules" wine spice64.exe \ -audiobackend pipewire \ -audiodummy
启动脚本
将上述内容配置好以后,之后可通过编写脚本一键启动,内容如下
#!/bin/sh
export GAMEDIR=~/KFC/contents
export WINEPREFIX=~/KFC/wine
export LD_LIBRARY_PATH="$GAMEDIR/modules"
export WINEDLLPATH="$GAMEDIR/modules"
cd $GAMEDIR
wine spice64.exe \
-audiobackend pipewire \
-audiodummy
我将其放置在了 ~/KFC 目录下,命名为start.sh并给与执行权限
sudo chmod +x start.sh
之后在脚本所在路径下执行即可
./start.sh