在 Linux 下跑 galgame

2020-11-26 01:34:25

虽然装了双系统,但仅为了玩 galgame 而切换系统太麻烦了,因此想在 Linux 快乐地游玩 galgame。

优先级

在资源允许的情况并且没有明显的性能、兼容问题下,尽可能使用虚拟机。

除非 galgame 很卡,或者虚拟机没法跑(很少,但确实有(指樱之诗汉化)),再考虑用 wine!

SteamPlay,神

对有 Steam 版的 galgame,使用 Steam 的 SteamPlay 会是个好选择。 不仅性能优秀,兼容性也还好。

当然,只要使用基于 wine 的设施难免会遇到问题(集中在视频播放)。此时,请使用 protontricks, 这是一个 winetricks 的 proton wrapper,结合下面的 wine 配置,灵性安装一些设施,基本所有 galgame 都能完美运行。

2023 年 1 月 8 日更新

短短两年多,情况已经改变了许多,proton 有了 proton GE 这样的便利套件(Proton experimental 也还不错),基本上来说在 Linux 下玩游戏变得更方便了。

但是凡事都有利有弊,proton 目前使用 64 位的 wine,不少 winetricks 的包并不兼容 64 位 wine。此外,在 proton6 之后 steam 便强制对他启用了沙箱机制和自己的 runtime, 因为一些乱七八糟的技术原因,wmp11 没法正常运作在这个沙箱,这导致新版本的 proton 在有些时候(比如 krkr2 游戏)对视频播放的兼容性实际上变差了,很多时候实际变成不可解的问题。 一个解决方案就是对 galgame 依然停留在 Proton5-10,并且尝试用 wmp11,当然这会有不少性能问题,新版本的 proton 对性能有显著的提升。 遗憾的是,对于想在 SteamDeck 玩 galgame 的人,这个方案有严重的问题:会让游戏模式下游戏的进入时间变得极长,基本上要两分钟才能进游戏的级别,非常痛苦。 总的来说,问题很多,体验不见得多好;我依然装了一份 Windows 用来玩 XGP 和一些程序写的很烂导致 Linux 的各种方案都有乱七八糟问题的 galgame。 在 Deck,手持 64G 乞版又不想换硬盘装 Windows 的我只好放弃一部分 galgame,明明买来这东西就是用来玩 gal 的,遗憾。(说不定再买一个 Surface Go 会更好)

此外,在 steam OS 指定 locale 不能用 LANG 或者 LC_ALL,要使用 HOST_LC_ALL。

wine 配置

给出一个自己用的配置步骤,对大部分原版 galgame 兼容性都很好。 对于汉化后的 galgame 则碰运气,成功失败概率五五开(这也是为什么推荐 Steam 版 galgame,在兼容性方面有不少改进)。

# 请务必使用新的 WINEPREFIX 避免污染和问题。
# WINEPREFIX 每次运行 galgame 都需要设定。
$ export WINEPREFIX=/home/moonmagian/.galgame_wine
# 大部分 galgame 在 32 位环境工作比较好。
$ export WINEARCH=win32
# 安装一些常用包,这个组合能胜任大部分 galgame。
# 如果你使用的是 64 位 wine,请使用 wmp11,可能并不会比 wmp10 更稳定就是了
$ winetricks winetricks d3dx9 quartz devenum wmp10 gdiplus dotnet40 ffdshow vcrun6 cjkfonts
# 其实这个精简版也是基本够用的。
$ winetricks d3dx9 quartz devenum wmp10 gdiplus cjkfonts

在上面的配置完成后,视频播放仍可能遇到一些问题,请按下面的步骤做: 1. 前往 https://github.com/Nevcairiel/LAVFilters/releases 下载最新的 installer。 2. 使用之前的 wine 环境安装他。 3. 视情况而定,你可能需要使用包管理器安装 gststreamer (32位) 和插件包(good, ugly)

之后,使用下面的命令运行galgame。

# 对汉化版:
LC_ALL=zh_CN.UTF-8 LANG=zh_CN.UTF-8 wine game.exe
# 对原版:
LC_ALL=ja_JP.UTF-8 LANG=ja_JP.UTF-8 wine game.exe

这些区域参数必须在 /etc/locale.gen 经过设置。

虚拟机的建议