Mobile wallpaper 1
1872 words
9 minutes
在Linux上运行SDVX
2025-08-30
NOTE

于2026年02月07日经过研究后得出一套完整可行的方案,最开始的研究过程放在此文下方
此文章已推送至KFC Manual

IMPORTANT
  • 修改版spice与bmsound都处在开发阶段,可能会有意料之外的问题
  • 音频可能会轻微爆音,全屏启动游戏可缓解
  • 全屏启动游戏会导致副屏白屏,如果想要同时使用,可以开启窗口化解决。在cfg里设置无边框窗口可去除标题栏
  • 窗口下游戏可能会突然卡住,然后恢复,全屏可缓解
  • HID灯光不可用

前言#

虽然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

环境准备#

显卡驱动 & 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默认的屏幕自动锁定,你也不想打一半给你锁屏了吧

img

环境搭建#

  1. 打开终端,配置WINEPREFIX与游戏路径环境变量,本文使用下方路径,你可以参考

    WARNING

    环境变量仅在当前终端窗口生效,关闭终端后需重新设置,所以接下来的配置请勿关闭终端窗口

    export WINEPREFIX=~/KFC/wine
    export GAMEDIR=~/KFC/contents # 游戏记得放到这里面
    mkdir -p ~/KFC
  2. 初始化Wine,并安装必备的库

    wineboot --init
    winetricks dxvk d3dcompiler_43 d3dx9_43

    img

  3. 安装最新的nixac spice2x

    点此下载

    下载完成后将spice64.exe解压到contents文件夹下,无需cfg。然后将stubs/64文件夹下的所有文件解压到contents/modules

    img

  4. 安装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
    碎碎念

    这个特化版的bmsound感觉可以改动一下然后适配CoreAudio,这样就可以在mac上跑了。mac常用的Crossover本身底子里也是Wine,只不过做了商业化包装。这游戏本身图形方面没有什么难点,dxvk可以全程跑通,难点主要还是音频,这个项目可以研究研究

  5. 启动cfg,配置游戏键位,网络等

    cd $GAMEDIR
    wine spice64.exe -cfg

    无边框窗口化配置如图:

    img

    NOTE

    如果你是2K及以上的分辨率,懒得改系统的分辨率,也可以填写Window Size和Subscreen Size来强制缩放游戏窗口到你的分辨率上,但是会增加卡顿

  6. 启动游戏

    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

参考文献:
Arcade Linux Research
Two Torial


之前研究时的版本#

前言#

虽然spice2x没有官方的兼容,但是通过Wine的模拟也是可以在Linux上运行的,本文会以基于Wayland+KDE环境的Arch Linux作为演示

NOTE

我最开始在Ubuntu上测试了很久都没有跑通,这里也有依赖问题那里也有依赖问题,明明都配置好了就是会报错,实在是太臃肿了,换成Arch以后基本都是一条pacman+简单的调整就全好了 只能说想拿Linux打游戏的 「Arch真香,别去碰Ubuntu」

TL;DR#

能进到游戏主界面,但是音频加载不出来。启用Shared WASAPI并把采样率设为44100后KONAMI Logo处会有声音,但除此以外就没有了 如果有同学知道怎么解决,请联系我

环境搭建#

32位源#

首先需要给Arch启用32位源支持,通过编辑/etc/pacman.conf

vim /etc/pacman.conf

并取消multilib两行的注释

[multilib]
Include = /etc/pacman.d/mirrorlist

然后更新系统

sudo pacman -Syu

显卡驱动 & Vulkan#

根据自己的显卡安装显卡驱动与Vulkan环境,N卡使用闭源驱动,其他的为开源驱动,下文均为台式机独立显卡,其他以及笔记本的配置详情可参考Arch官方的说明 本文以NVIDIA 40系(NV190/ADXXX)显卡为例:

sudo pacman -S nvidia nvidia-settings nvidia-utils lib32-nvidia-utils vulkan-icd-loader lib32-vulkan-icd-loader

AMD显卡可使用:

sudo pacman -S lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader

Intel显卡可使用:

sudo pacman -S lib32-mesa vulkan-intel lib32-vulkan-intel vulkan-icd-loader lib32-vulkan-icd-loader

音频服务器#

WARNING

我不知道pipewire是不是导致没声音的根本,这一步待测试

sudo pacman -S pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber

Wine & Lutris#

完成后需要安装Wine,Arch直接运行以下命令即可

sudo pacman -S wine wine-mono

然后是Lutris,Lutris是一个管理Linux上游戏库的软件,可以图形化的管理Wine以及给游戏安装DXVK,D3DVK之类的补丁

sudo pacman -S lutris

配置Lutris#

启动Lutris,点击左上角的加号,点击“添加本地游戏 Add Locally Installed” img Game Info填写名字与运行环境 img Game Options设置游戏环境,在home目录下创建文件夹并设置WINE PREFIX img

/home/$USER/Games/SDVX

img Runner Options设置Wine的版本,一般就一个的话就用System的,Lutris的WineGE试了打不开cfg 然后开启右上角的Advanced菜单,仅开启DXVK并把版本降级到1.10.3,关掉AMD FSR,BatteEye,EAC这些无关的 img img 在System Options,开启下方的CLI mode,可以将spicetools的啰嗦模式透传给Terminal img 之后保存即可

配置Wine环境#

Lutris点击游戏,在下方的选项中,打开Wine Configuration,等待prefix配置 img 然后如果行的话可以往容器里装一下DX9 Runtime跟VCRuntime2010,不过我试的时候不装也可以,不要使用winetricks安装,spice会报错 winetricks可以留给家用版安装cjkfonts使用

导入游戏#

推荐将游戏复制到容器内而不是在系统里调用

/home/$USER/Games/SDVX/drive_c

之后在Lutris右键游戏,选择Configure-Game options,将spicecfg.exe的路径添加到Executable里,然后双击启动,调整设置 调整完成后将Executable改成spice64.exe即可启动游戏

WARNING

启动前请确保游戏modules文件夹里添加了NVAPI,你可以在spice的分发包里找到

在Linux上运行SDVX
https://blog.arkitosekai.net/posts/sdvx-on-linux/
Author
Arkito
Published at
2025-08-30
License
CC BY-NC-SA 4.0

Some information may be outdated