在Linux系统上运行《星球大战:钛战机》重制版

0 点赞
STAR WARS™: TIE Fighter Special Edition
转载

在Linux系统上使用Proton让这款老游戏顺畅运行颇具挑战。本指南专注于解决重制版的运行问题,该版本默认情况下在进入任务时似乎会崩溃。相关的解决方法散布各处,因此我决定将所有内容整合到一处。我已在Ubuntu 20.04系统上使用适用于X的nvidia驱动,实现了游戏的稳定运行。需要注意的是,xwa ddraw或dgVoodoo库也足以让其他星球大战系列游戏正常运行,在我的系统上,XvT和XWA都需要类似的ddraw修复。 安装Protontricks 如果你尚未安装Protontricks,请进行安装,我们将使用此工具来更改游戏winepfx中的dll覆盖设置。按照相关说明进行安装。通过Steam界面安装游戏。 安装完成后运行一次游戏。 我目前强制使用Steam Play 5.0.9版本运行游戏,不过其他版本可能也能正常运行。 启动游戏,在弹出窗口中选择【特别版】(重制版)。 此时游戏应能正常进入菜单,你可以创建角色、观看飞行简报等。 创建一个角色,并确保至少能进入菜单。 按ESC键,然后设置图形选项。 务必勾选【3D加速】,设置完成后退出游戏返回Steam。

修复ddraw以进入任务 默认情况下,游戏在进入任务时会崩溃,似乎是飞行引擎无法启动。这对我来说似乎是所有X翼系列游戏的常见问题。 崩溃问题似乎与游戏代码和Wine的ddraw实现有关。我们可以通过替换ddraw版本并让Wine使用提供的版本来解决此问题。 步骤1:下载替换的ddraw文件 这里有两个不同的选项,只要在游戏目录中添加nopowervr.txt文件(来自xwa ddraw),这两个选项对我来说都有效。如果没有该文件,游戏在3D加速模式下会崩溃。 1) xwa ddraw 2) dgVoodoo2我建议使用xwa ddraw。该压缩包应包含以下文件: 解压xwing_ddraw_d3d11_1.5.13.zip后可见: 文件:LICENSE.txt,大小:1142字节,日期:2019-01-01 10:43 文件:ddraw.cfg,大小:6900字节,日期:2020-06-18 18:30 文件:ddraw.dll,大小:347936字节,日期:2020-06-27 16:01 文件:nopowervr.txt,大小:295字节,日期:2020-06-18 18:30 文件:readme.txt,大小:2508字节,日期:2020-06-18 18:30 总计:358781字节,共5个文件。 将ddraw.cfg、ddraw.dll和nopowervr.txt复制到游戏安装的重制版文件夹中。local/share/Steam/steamapps/common/STAR WARS Tie Fighter/remastered/ 文件夹可通过右键点击游戏并选择【浏览本地文件】找到。 注意:为使Steam控制器在游戏中正常工作,需设置【JoystickEmul = 0】 步骤2:让Wine使用替换的ddraw库 《星球大战:钛战机特别版》的游戏ID为【355250】 可通过在终端运行【protontricks -s TIE】确认游戏ID,或直接运行【protontricks 355250 winecfg】 选择【库】选项卡,在【新建库覆盖】中输入【ddraw】,点击【添加】,确认警告。 在现有覆盖中应显示【ddraw (native, builtin)】 退出程序后,游戏任务应可正常运行。

修复游戏内音乐 重制版中的动态音乐完全无法播放。 可按照以下说明进行修复: 下载相关文件,下载的文件应包含以下内容: 名称 大小 压缩后大小 压缩率 日期 时间 属性 CRC 方法 版本 ------------------------------------------------------------------------------- libvorbis-0.dll 178536 73483 41% 26-01-13 21:25 .....A. D6EA5EDD m3c 2.9 libvorbisfile-3.dll 46960 17406 37% 26-01-13 21:25 .....A. 8A41DA4F m3c 2.9 winmm_mciclose.dll 52750 14088 26% 28-09-16 10:25 .....A. 8987CD2F m3c 2.9 winmm_nomciclose.dll 52750 12748 24% 28-09-16 10:24 .....A. DE54DA4F m3c 2.9 libogg-0.dll 58357 21407 36% 15-09-12 03:41将所有文件解压到游戏文件夹中,覆盖已存在的文件。 然后将winmm_nomciclose.dll重命名为win32.dll。 接下来,我们使用十六进制编辑器(hexedit)修改TIE95.EXE,使其不再引用winmm.dll,而是使用新添加的win32.dll。 TIE95.EXE中应该有2处对WINMM的引用。我们可以通过在游戏目录中运行以下命令来验证这一点: strings TIE95.EXE | grep -i winmm --此处应插入示例输出-- 接下来,如果你还没有安装十六进制编辑器(hexedit),请在你的Linux发行版上安装它,在Ubuntu上可以执行以下命令: apt-get install hexedit 使用十六进制编辑器打开tie95.exe: hexedit TIE95.EXE 按<tab>键切换到ASCII模式 按ctrl-r搜索WINMM 将MM替换为32,你需要修改1处匹配项。如果操作失误,例如替换了错误的字符,请按Ctrl+C退出且不保存,然后重试。按Ctrl+X保存。通过以下命令检查是否生效:strings TIE95.EXE | grep -i winmm,strings TIE95.EXE | grep -i win32,WIN32.dll。游戏内音乐现在应该可以正常播放,并且会随着游戏进程动态变化。用改进版本替换音乐和语音。从相关来源下载TFReconstructedGOGEdition.zip。此档案包含《星球大战:钛战机 特别版》CD-ROM DOS版本中质量更佳的语音文件,以及由Daniel 'Yitzchak' Bennett基于该DOS版本重新编排的音乐曲目。 ZIP文件内有两个名为VOICE和MUSIC的文件夹,将它们解压到你的游戏目录中,覆盖任何同名的现有文件。 由于上一部分的修复,我不需要用ZIP文件中的TIE95.EXE文件替换我现有的TIE95.EXE文件。 ZIP文件的内容示例如下: $ unzip -l TieFighterReconstructedGOGEdition.zip 压缩包:TieFighterReconstructedGOGEdition.zip 长度 日期 时间 名称 --------- ---------- ----- ---- 0 2012-05-29 20:08 VOICE/ 0 2012-05-29 20:08 VOICE/10M1/ 649813 1995-10-24 20:13 VOICE/10M1/10M1.LFD 128737 1995-08-22 12:19 VOICE/10M1/10M1I1.VOC --snip-- 1071616 2014-10-29 02:22 TIE95.EXE 0 2014-10-29 03:01 MUSIC/ 0 2014-10-29 03:01 MUSIC/ 13295674 2012-05-29 19:49 MUSIC/AWE.WAV 9062596 2012-06-06 21:32 MUSIC/BATTLE.WAV 8457466 2012-06-06 21:32 MUSIC/BATTLE1.WAV 11834372 2012-06-06 21:32 MUSIC/BATTLE10.WAV --snip-- 5415935 2014-10-29 02:57 MUSIC/Track04.ogg 15227014 2012-05-29 19:49 MUSIC/TRAINPOD.WAV --------- ------- 834752278 1470个文件 $ 待办事项 本指南可改进之处: 1) 使3D加速正常工作。我尝试使用glide库和其他ddraw版本(xwa_ddraw_d3d11),但这个版本对我来说效果最好。dgVoodoo库应用了一些平滑处理,游戏输出会缩放到我的显示器原生分辨率。 2) 改进音乐/语音。