我无法启动最新的 Humble Indie Bundle 中的 Psychonauts。每次我尝试启动它时,启动器图标都会闪烁一下,然后就什么都没有了。这是我得到的输出:
STUBBED: fix up the rest of the SSE code first at DetectSSESupport (/home/icculus/projects/psychonauts/Source/CommonLibs/DFMath/MathGeneral.cpp:32)
STUBBED: write me? at SetPCLanguage (/home/icculus/projects/psychonauts/Source/game/luatest/UnixMain.cpp:120)
STUBBED: fix up the rest of the SSE code first at DetectCPUCaps (/home/icculus/projects/psychonauts/Source/game/luatest/Game/PCGameApp.cpp:223)
STUBBED: check LANG envr var at _GetDefaultGameLanguage (/home/icculus/projects/psychonauts/Source/game/luatest/Game/GameApp.cpp:171)
Console created
Save path: /home/duffy/.local/share/Psychonauts
Write path: WorkResource
STUBBED: inline asm at SSEMul_4x4_4x4_2arg (/home/icculus/projects/psychonauts/Source/CommonLibs/DFMath/Matrix.cpp:710)
STUBBED: inline asm at SSEMul_4x4_4x4_3arg (/home/icculus/projects/psychonauts/Source/CommonLibs/DFMath/Matrix.cpp:698)
******** unit test failed ********
Transport started
DaveD: NCListenSocket: Listening on port 40001
STUBBED: VK_* at InitInputNames (/home/icculus/projects/psychonauts/Source/CommonLibs/DirectX/SDLInput.cpp:1225)
No joysticks detected
SDL_SetVideoMode() failed: Couldn't find matching GLX visual
Start Up completed in 0.08 seconds
Segmentation fault (core dumped)
我安装了一些版本号为 4 的补丁……我真的记不清了。无论如何它都没有帮助。我刚刚尝试为我的 GeForce 7800 GT 安装最新的 Nvidia 驱动程序(不要笑)。没有用。
我在 askubuntu 上找到了一些类似的问题,但这些解决方案似乎也不起作用。请帮忙?
答案1
您可以尝试两种方法。它们可能不适用于 Nvidia,但适用于 Intel 芯片,即使不适用也不会造成任何损害。
首先查看您是否具有所需的纹理压缩所需的库mesa
,最简单的方法是打开软件中心并搜索;
libtxc-dxtn-s2tc0
如果你在 64 位系统上安装了 Psychonauts,它还需要这些库的 i386 版本(请注意,如果你使用软件中心安装了 Psychonauts,则 i386 版本应该已安装但请检查以确保)。
libtxc-dxtn-s2tc0:i386
如果您没有上述任一版本的库,请安装它们并尝试再次启动。(注意:如果您可以从捆绑包中运行 Amnesia,则很可能已经安装了 64 位库)如果您拥有它们或安装后启动仍然失败:
您可以尝试强制系统宣传 S3TC 支持(这是没有安装 i386 版本库的 Intel 芯片所需要的),通过终端启动:
force_s3tc_enable=true <path to application launcher>
强制 S3TC 可能会导致不当行为所以你必须尝试一下,看看它是否有效。如果上述命令有效,你可以编辑文件.desktop
以启用强制启动游戏,方法是使用gedit
sudo gedit /usr/share/applications/psychonauts.desktop
编辑该行并在启动路径前面Exec=
添加,它应该显示如下内容:注意force_s3tc_enable=true <plus a space>
force_s3tc_enable=true /opt/psychonauts/psychonauts.64bin
空间在 和 之间true
,/opt
进一步注意这只是一个例子。我不再安装 psychonauts,因为我的显卡不够强大,无法处理它(但我使用命令让它工作了force
),所以实际的启动器不能.bin64
在最后有 ,但你应该确切地知道路径是什么,你只需要force_s3tc_enable=true
在命令中将 粘贴在路径前面Exec=
,只需确保在路径前添加 [空格]
我用了RAOF 的回答作为命令的来源,我仅尝试使其具体针对您的问题,因此如果这有效,请确保对他的回答投赞成票,以给予他一些原始信息的信任。
正如我上面提到的,我不再安装 Psychonauts,所以我无法再将您遇到的错误与我遇到的错误进行比较。
{编辑} 我尝试通过软件中心进行安装。我能够毫无问题地启动它,因为 i386 版本的库的 .deb 文件是作为依赖项下载的。我已经编辑了上面的答案以反映这一点。我的图形芯片仍然不足以处理游戏,但我获得的性能比强制性能时要好得多S3TC
。安装了 64 位和 32 位库后,我的答案中的“强制”部分可能不需要,但我会保留它以防有人需要它。{编辑}
答案2
我刚刚遇到了同样的问题。Psychonauts 桌面快捷方式设置psychonauts.sh
为默认启动。Bash 文件似乎试图针对英特尔显卡(包括集成显卡)做一些巧妙的变通方法。不幸的是,这会干扰 NVidia 驱动程序并导致分段错误。在我的情况下,我能够/opt/psychonauts/Psychonauts
直接使用(注意大写P
和没有.sh
)来运行游戏。我也在运行熊蜂所以对我来说完整的命令是:
$ optirun /opt/psychonauts/Psychonauts
如果这对您不起作用,请尝试更新LD_LIBRARY_PATH
环境变量,使其指向 NVidia 驱动程序的文件,如下所示:
$ LD_LIBRARY_PATH=/usr/lib32/nvidia-current [optirun] /opt/psychonauts/Psychonauts
optirun
是可选的,并且仅当在具有独立显卡的 Optimus 配置上运行时才应将其包括在内。
如果您想了解有关 Bash 文件中包含的变量的更多信息,这里有几篇感兴趣的文章: