于Linux和macOS运行:修订间差异
Qingsong265(讨论 | 贡献) 小 (→PC-98游戏) |
Qingsong265(讨论 | 贡献) 小 (→故障排除) |
||
第206行: | 第206行: | ||
==故障排除== | ==故障排除== | ||
{{主条目|/Misc fixes|l1=杂项修复}} | {{主条目|/Misc fixes|l1=杂项 问题 修复}} | ||
* 存在与操纵杆相关的问题。如果你在东方游戏运行时插入操纵杆,它可能不会注意到。确保在运行东方游戏之前插入并正常工作。 | * 存在与操纵杆相关的问题。如果你在东方游戏运行时插入操纵杆,它可能不会注意到。确保在运行东方游戏之前插入并正常工作。 | ||
* 对于[[东方绯想天]]和[[东方非想天则]],[[hisouten:Linux_support|参见此处]](SWR/HSTS Wiki)。 | * 对于[[东方绯想天]]和[[东方非想天则]],[[hisouten:Linux_support|参见此处]](SWR/HSTS Wiki)。 |
2025年5月5日 (一) 05:15的版本

对于那些仅使用Linux或macOS操作系统的用户来说,可能很难找到Windows程序的替代品。如果需要运行Windows程序,可以尝试使用Wine项目。它基本上可以将Windows系统调用转换为Unix等效调用,并在Windows目录结构中运行程序,因此你一定程度上仍然可以在Linux和macOS下玩Windows游戏、使用Photoshop等。
尽管Wine并不完美,但在Wine上运行官方的东方Project游戏通常不会有太大问题。(可能会存在一些小问题)本文将解释Wine的工作原理以及如何在Wine下玩东方官作游戏。
在Linux上,建议同时使用Lutris,因为它使得设置游戏更加容易,无需运行命令。安装Wine后,请参阅本文的Lutris部分。
在开始之前,确保你对shell有一定的熟悉度。这份Linux指南提供了一个很好的shell使用介绍。
安装Wine
Linux
对于许多发行版,你需要添加官方的WineHQ仓库才能安装Wine。然后可以使用包管理器进行安装。或者,也可以通过Ubuntu软件中心等GUI进行安装。
建议使用Wine的Staging版本,因为通用的东方练习工具thprac在没有它的情况下无法工作。这个包通常被称为winehq-staging或wine-staging。稳定(标准)版本称为winehq-stable或wine-stable。以下是Wine Staging的安装说明。
基于Debian的发行版
对于基于Debian的发行版,将"focal"替换为"jammy"。
sudo dpkg --add-architecture i386
wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
sudo apt-add-repository 'deb http://dl.winehq.org/wine-builds/ubuntu/ focal main'
sudo apt update
sudo apt install winehq-staging
Fedora
如果你使用的是较旧版本的Fedora,请确保将34替换为正确的版本号。
sudo dnf config-manager --add-repo https://dl.winehq.org/wine-builds/fedora/34/winehq.repo
sudo dnf install winehq-staging
需要注意的是,Fedora官方仓库中的版本通常“足够新”。因此,只需
sudo dnf install wine
应该就足够了。(例如,在F36系统上,wine版本是最新的稳定版7.0)
Arch Linux
在安装Wine之前,启用/etc/pacman.conf中的multilib仓库,然后使用pacman -Syu
更新仓库。
sudo pacman -S wine-staging
从源代码构建
如果你不使用上述发行版之一,或者无法可靠地连接到winehq服务器,你也可以从源代码构建Wine。
请注意,在合理的系统上构建Wine至少需要三个小时。
macOS
自macOS Catalina(版本10.15)起,Wine不再工作,因为该版本停止了对32位应用程序的支持。在最新版本的macOS上玩东方的唯一方法是使用虚拟机。
使用MacPorts
如果你已经安装了MacPorts及其所有依赖项,只需运行sudo port install wine
即可安装所有依赖项。
如果你尚未安装MacPorts,请参考此安装说明。
使用Homebrew
访问这里并根据需要安装,然后在终端中运行brew install wine
。
使用Wine
在首次运行时,Wine会在你的主目录中创建一个名为.wine的隐藏目录,其中包含完整的Windows文件夹层次结构以及各种库和系统文件。这种表示称为prefix(有关更多信息,请参阅Wine前缀部分)。.wine文件夹位于你的主目录中(~/.wine)。里面是另一个名为drive_c的文件夹,这是你的Wine安装的C:驱动器文件夹。如果你浏览此文件夹(~/.wine/drive_c),你可能会从标准的Windows安装中识别其内容。
通常,安装Wine后,你的Linux发行版会将Windows可执行文件自动关联到Wine,因此双击Windows可执行文件应该可以工作。如果不能,你将不得不从终端运行Wine。为此,导航到包含可执行文件的文件夹并使用Wine运行它,如下所示:
cd .wine/drive_c/Program\ Files/RandomProgram
wine program.exe
运行东方游戏
运行东方游戏的方式相同,可以通过双击或使用上述终端命令。
假设你的系统上安装了日语字体,游戏中的文本应该会正常显示,你不需要在日语区域设置中运行游戏。然而,对于东方红魔乡以及启动游戏时的分辨率设置对话框,需要日语区域设置。可以通过在运行Wine的命令前添加LC_ALL="ja_JP.UTF-8"
来设置。以下示例将导航到包含对抗新闻的文件夹,然后在日语区域设置中启动它:
cd .wine/drive_c/Program\ Files/上海アリス幻樂団/ダブルスポイラー
LC_ALL="ja_JP.UTF-8" wine th125.exe
与Windows不同,Vpatch不需要运行游戏流畅。有关如何在Linux上减少输入延迟,请参阅减少输入延迟。
Wine前缀
前缀,俗称“瓶子”,是一个包含Windows目录结构的文件夹,可以为其分配特定的Wine设置。这样,可以运行某些设置为Windows 7的Wine游戏,而其他游戏则设置为Windows 98。可以通过运行WINEPREFIX=<路径> winecfg
创建新前缀,这将同时启动Wine的配置菜单。请注意,路径必须是绝对路径,例如~/.prefix_name以将其放置在主目录中。要创建32位前缀,请在前述示例前添加WINEARCH=win32
。
对于官方的东方游戏,不需要多个前缀,你可以使用任何单个前缀,例如主目录中的默认.wine。然而,对于其他游戏,如果它们需要Wine以不同的设置运行,例如不同的Windows操作系统、32位而不是64位,或不同的Windows库或组件,这可能很有用。如果你需要使用不同的前缀运行游戏,请使用WINEPREFIX=<路径> <游戏>
指定;不指定任何前缀将使Wine使用默认前缀。
安装缺失的本地Windows组件
尽管随着Wine的最新发展,大多数东方游戏应该可以开箱即用,但有些游戏在尝试通过Wine运行时可能会立即崩溃。这主要是因为Wine默认不包含所有Windows库,缺少库可能导致崩溃。确保安装了启动游戏所需的所有必要组件。有几种方法可以实现这一点:
使用Winetricks
Winetricks是一个程序,是安装Windows库(DLL)和其他组件的主要方法。使用winetricks,所有这些安装都可以通过一个命令完成,例如:
winetricks d3dx9_36
首先安装winetricks并按照这里提供的安装说明进行操作。Winetricks还有一个GUI,可以通过在终端窗口中执行winetricks打开。要在特定前缀上运行它,请像这样指定前缀:WINEPREFIX=<路径> winetricks
。
注意:某些库如dotnet40对64位的支持有限,可能无法完全正常运行。
从Windows安装文件夹复制.dll文件
另一种临时修复部分功能DLL的方法是将其替换为Windows安装中的原始文件。以下是操作方法。
注意:这是在挂载在/mnt/vista32的32位Vista安装文件上完成的。
首先,复制文件。Wine的Windows文件夹位于.wine/drive_c/windows。
cp /mnt/vista32/Windows/System32/d3dx9_36.dll .wine/drive_c/windows/system32/
这样就可以安装你所缺失的DLL。为了确保程序能够正常识别它,我们将在Wine中对它进行配置。Wine有一个名为winecfg的配置程序;从终端运行它,然后单击“库”选项卡,在“新库覆盖”下键入d3dx9_36,单击“添加”后单击“应用”,现在你可以单击“确定”退出实用程序或浏览其他选项卡和设置。加载本地Windows DLL的一个问题是,它们可能需要Wine正在模拟的原始低级Windows DLL(例如ntdll.dll),并且可能无法工作。这些是Wine正在模拟的核心DLL,不能用本地Windows DLL替换;这样做会破坏你的Wine前缀。
使用X而不是Wayland
一旦你可以运行Windows软件,下一个要解决的问题是输入延迟。这个问题可以通过全屏打开游戏轻松解决,这将输入重定向到游戏窗口,与窗口模式不同。如果你尝试在全屏运行游戏并且它在屏幕角落打开一个小框(或任何类似的故障),有一个解决方案:
打开终端并运行以下命令以检查你当前的显示服务器:
echo $XDG_SESSION_TYPE
如果结果是wayland
,请尝试以下操作:
- 注销
- 在显示管理器的登录屏幕上,通常有一个选项可以选择会话类型。以下是在最常见的显示管理器中的操作方法:
- GDM(由GNOME使用)。
- 在登录屏幕上选择你的用户,然后在输入密码之前,单击齿轮图标。
- 选择“GNOME on Xorg”而不是“GNOME”(默认使用Wayland)。
- LightDM(由XFCE等使用)
- 在登录屏幕上,单击会话图标(通常是一个齿轮)。
- 选择“Xfce Session”而不是任何提到Wayland的选项。
- GDM(由GNOME使用)。
- 登录
- 再次运行第一个命令。输出应该是
x11
这样,全屏模式应该像在Windows中一样工作,从而解决输入延迟问题。
这个错误似乎是由于Wine与Wayland服务器的不兼容性引起的。虽然Xwayland在某些情况下提供了足够的兼容性,但它并不是游戏的最佳替代方案。
有一个实验性驱动程序允许使用Wine原生运行Windows软件,而不是Xwayland。该驱动程序与beta版本一起分发,你可以按照ArchWiki中的指示强制使用它。
macOS上的Wine
macOS上的Wine与Linux非常相似。macOS用户可能会遇到的一个问题是3D图形性能极其缓慢;这是由于Apple的X11实现在旧版本的macOS(Tiger及以下)中不支持硬件OpenGL。如果你遇到这个问题,你可能需要咬紧牙关升级。
Lutris
Lutris是一个Linux游戏管理器,它使得在不同设置下运行各种游戏相对容易。它基本上提供了一个图形界面来帮助简化流程,因此你不需要运行命令或shell脚本来玩游戏。
要安装Lutris,请按照Lutris官方网站上列出的说明为你的发行版进行操作。假设你已经按照之前的说明安装了Wine Staging,Wine将可以作为Lutris中的“runner”使用,即可以运行游戏的程序。Lutris还可以启动大量模拟器以及原生Linux游戏。
添加游戏
要添加游戏,请单击左上角的大“+”按钮,并选择Wine作为runner。在“游戏选项”选项卡中,提供可执行文件的路径和游戏目录。保持“Runner选项”和“系统选项”选项卡不变。有关示例,请参见下面的截图。
你可以通过右键单击游戏然后单击“配置”返回游戏设置。还可以通过单击设置窗口中的图标和横幅来更改它们。如果你想为你的游戏创建桌面或应用程序菜单快捷方式,请在添加游戏后右键单击主屏幕上的游戏,然后单击“创建桌面快捷方式”或“创建应用程序菜单快捷方式”。
减少输入延迟
要减少输入延迟,你需要禁用垂直同步和桌面合成。单击Wine旁边的齿轮图标。在打开的窗口中,导航到“系统选项”选项卡并添加以下环境变量:dxgi.syncInterval
和d3d9.presentInterval
,两者都设置为0
。这将禁用垂直同步。此外,勾选“显示高级选项”并在同一选项卡中启用“禁用桌面效果”,这将禁用合成器。
这也可以仅应用于单个游戏,而不是所有Wine游戏。为此,请使用单个游戏的“系统选项”选项卡(右键单击游戏 -> 配置)。
如果你使用NVIDIA显卡,你还希望设置内核参数nvidia-drm.modeset=1
以启用内核模式设置(KMS)。AMD和Intel集成显卡默认启用此功能。假设你使用GRUB作为引导加载程序,编辑/etc/default/grub并将其添加到GRUB_CMDLINE_LINUX_DEFAULT
值的末尾。如果不存在,请添加GRUB_CMDLINE_LINUX_DEFAULT="nvidia-drm.modeset=1"
。使用sudo update-grub
或sudo grub-mkconfig <你的grub路径>
更新grub,并重新启动以应用更改。有关其他引导加载程序,请参阅ArchWiki。
PC-98游戏
多系统模拟器RetroArch提供了Neko Project II,可用于玩PC-98游戏,并在macOS和Linux上运行。请注意,默认的时钟乘数默认设置得太低,应在模拟器设置中将其设置为16(在游戏中按F1访问)。
DOSBox-X也支持运行PC-98软件,并有原生的macOS和Linux版本。
各种模拟器,如Windows版本的Neko Project II、T98-Next和Anex86,在Wine下运行得相当好,可以玩PC-98东方游戏。对于使用游戏手柄玩,JoyToKey也可以在Wine下工作。还有一个名为Xnp2的Neko Project II的Linux和macOS原生端口;然而,目前存在一些需要调查的声音问题[来源请求]。通常,常规的Neko Project II是最佳选择。
同人游戏
注意:这一段是个半成品,希望你能多多添加与该段相关的信息,把这一部分充实起来。只要你能丰富它,就放手去做吧。
你可以从这(几)方面改善它:
|
故障排除
Wine开发者不断添加和修复功能,因此尽管某些东方游戏仍然存在问题,但它们肯定在改进。有关Wine中当前东方错误的列表,请参阅上面链接的主文章。
在Linux上玩Steam游戏
随着一些游戏如东方天空璋或东方凭依华在Steam上发布以及Proton的支持,Linux用户玩Steam上的东方游戏变得更加容易,因为你现在可以使用Steam提供的内置兼容层。Proton在刚推出时相当不稳定,但如今,如果任何游戏可以在Wine上运行,你通常也可以期望它在Proton上运行。
安装和设置
要为所有游戏启用Proton,请转到Steam -> 设置,在部分列表底部会出现一个名为Steam Play的部分;导航到该部分并勾选为所有游戏启用Steam Play,之后必须重新启动Steam。之后,所有未在Linux上原生运行的游戏将自动使用Proton。这包括你手动添加到库中的非Steam游戏。
当前的游戏兼容性可以在ProtonDB网站上找到。Proton将自动在全屏模式下使用正确的宽高比。
故障排除
- 一些用户可能会在启动时遇到Proton崩溃的问题,而没有提示安装任何驱动程序(例如,如果你是第一次运行HSiFS,Proton需要安装DirectX)。如果是这种情况,请考虑使用Steam的flatpak版本。
- 还存在有关启动位于NTFS分区上的游戏的问题。这是一个已确认的错误;解决方法是使用ntfs-3g而不是ntfs挂载分区。确保你是相关分区的所有者;在/etc/fstab文件中为你的NTFS分区设置选项
defaults,uid=1000,gid=1000
。 - 如果游戏运行非常缓慢,请尝试禁用DXVK。这可以通过为Proton设置游戏特定的启动选项
PROTON_USE_WINED3D11=1
来完成。 - 如果音频无法工作,请尝试安装以下软件包:
lib32-alsa-plugins
lib32-libpulse
lib32-openal
。 - 如果你在Steam中运行时遇到有关Direct3D失败的问题,请尝试在游戏的属性 > 常规 > 启动选项中的文本框中添加
PROTON_USE_WINED3D=1 %command%
。
使用虚拟机
注意:在macOS或Linux上不推荐以这种方式玩东方游戏,因为启动整个操作系统只是为了玩东方非常缓慢且消耗内存;仅将此作为*最后的手段*!
可以使用虚拟机软件,如Oracle VirtualBox和VMWare Player(macOS和Linux)以及Parallels Desktop(macOS)来运行虚拟Windows操作系统以便玩东方Project游戏。这个虚拟的操作系统被称为虚拟机,简称VM。你将能够像在普通的Windows上一样安装和运行它们,因为你是在本机操作系统中运行Windows。你需要Windows安装介质(如ISO文件)来安装Windows虚拟机;对于Windows 7到Windows 10,请参阅此Microsoft帮助页面以获取有关创建安装介质的信息。
通常,虚拟机由于使用虚拟图形驱动程序而不是专用显卡,图形功能有限。然而,如果你拥有多个显卡,可以使用PCI直通。设置好后,你的虚拟机使用次要显卡,而主机操作系统使用主要显卡。这意味着你可以运行更要求高的游戏,只要显卡允许。有关更多信息,请参阅此ArchWiki页面。
macOS上的Parallels Desktop
Parallels Desktop 5.0版本运行主系列游戏非常好:除了东方妖妖梦之外,所有Windows弹幕游戏在MacBook Pro上运行都没有减速。尚不知道为什么妖妖梦会出现减速的情况。
重要的是在全屏运行游戏,并且最好使用缩放功能将游戏屏幕放大到全屏,至少在MacBook Pro上是这样。在窗口模式下运行游戏通常会导致减速,并且计算机似乎很难原生显示640×480(游戏将以30fps运行)。你可以以720×480运行它们,没有问题。
通过“系统偏好设置”中的“触控板”窗格激活缩放功能,并通过将鼠标放在屏幕中间并按住控制键并用两根手指向上滚动来放大。
格斗游戏(东方绯想天和东方非想天则)在战斗期间没有减速,但在加载场景时有严重的延迟(接近一分钟)。有人建议,但尚未确认,将游戏放在虚拟C:驱动器上,而不是OSX桌面或其他OSX位置,可能会清除此问题;Parallels将Mac的硬盘视为网络驱动器,这可能会减慢访问速度。尚未测试东方花映塚等联机游戏。
如果你的东方绯想天/东方非想天则在全屏运行时显示异常(一般情况下,屏幕底部和右侧会显示桌面的条),请将游戏设置为窗口模式运行,退出并重新启动游戏。然后在菜单中将其更改回全屏。
PC-98游戏可以在模拟器上运行,没有困难(是的,在模拟虚拟化中进行模拟)。有一个macOS的PC-98模拟器,但它已经几年没有更新,似乎不接受东方Project游戏。
以下同人游戏已确认在MacBook Pro上使用Windows XP的Parallels Desktop 5上运行良好:
- MegaMari
- PatchCon
- Genius of Sappheiros(带或不带英文补丁)
- Koumajou Densetsu: Scarlet Symphony(两款游戏)
- Gensou Tansaku Nitroid!
以下游戏在Parallels 5上无法运行,游戏将会严重减速,或存在致命故障,尽管在某些情况下这可能是由于显卡问题(显然,一些同人游戏无法与NVIDIA显卡正常通信):
- Super Marisa World(以30FPS运行)
- 东方风神录(以30FPS运行)
- Sengou Gensokyo(在战斗中无法输入命令,否则100%)
- 东方的迷宫(要么不显示,要么出现大量故障)
- 东方足球猛蹴传(无显示)
在macOS上使用Winebottler
有一种更简单的方法在Mac上运行东方游戏:Winebottler。要使用此方法,你需要macOS版本10.6.8或更高版本以及X11。X11可以在iTunes Store低价购买,你也可以使用免费的旧版本。
你可以在此处下载Winebottler。按下免费下载按钮,下载后桌面上应出现一个磁盘映像。将Wine和Winebottler应用程序拖到你的应用程序文件夹中。
现在,双击东方游戏的.exe文件。应弹出一个对话框,显示“你想如何处理该文件?”下面应有两个选项:
- 直接在/Users/((主文件夹名))/Wine中运行
- 转换为简单的macOS应用程序包。
单击第一个选项。不要单击第二个选项。游戏将无法运行,你的Wine将崩溃。
它应该自动打开X11并运行游戏。不需要编译。