【爱折腾】SteamDeck完全折腾指南-F0-游戏订制
=飘落的枫叶=
2023年01月06日 20:25
收录于文集
共16篇

F0-游戏订制

本教程入口专栏:

网页链接​

本教程对应视频链接:

网页链接​


本章节是除安装双系统外第二困难的章节,原因是这里没有一个通用解法。不像双系统章节,我相信大家最后都可以解决问题并做好。而此章节我只能分享一些我认为比较通用的方法以及一些解决问题的思路,我无法保证大家想玩的游戏是否能够成功去订制和运行。所以还请大家在开始就先有一个思想准备,你可能需要额外去搜索解决方案。

首先,在Proton订制兼容层那篇中我也说了,Steam源生的游戏,借助兼容层很多都是可以运行的。尤其是不联网的单机游戏,一般问题不大。但是对于拥有反作弊、加密等网游,则比较容易遇到困难。接下来我将介绍以下内容,后续如果有新的技巧会持续更新

  • 添加本地游戏

  • 本地游戏自定义图片

  • 安装MOD

  • 自定义启动参数

  • 创建存档、MOD等文件的软链接

  • 常见问题

  • Debug方法

添加本地游戏

就像我们正常在Windows下的Steam中添加本地游戏一样,SteamOS中我们先进入桌面模式,然后就可以使用相同的方式添加本地游戏。

Windows下的可以参考我之前的教程:

https://www.bilibili.com/video/BV1tK411D7zA​

专栏:

https://www.bilibili.com/read/cv19272094​

左下角点击添加非Steam游戏

然后浏览文件

注意文件类型选择所有文件,然后选择Windows下的启动程序即可

之后我们可以为游戏添加兼容性设置,让其正常运行

本地游戏自定义图片

这点的方法和之前Windows教程中相同,讲过的内容就不再重复了

视频教程:

https://www.bilibili.com/video/BV1tK411D7zA​

专栏:

https://www.bilibili.com/read/cv19272094​

这里补充的就是SteamOS下用户文件夹的位置

库中的艺术化封面图片就在用户文件夹下的 目录下

命名规则请参考之前教程

如果你想找Steam游戏的默认缓存文件,其位置是

下的appcache和steamapps等,包括一些兼容性设置

如下我打开的是魔女的夜宴默认头图,我打算用这张图用于装饰我自己添加的本地游戏

安装Mod

如果是文件替换类的,比如将原有的游戏文件,直接替换为新的游戏文件,这是最简单的,大家只需要在Windows/SteamOS中去复制替换文件即可。

如果是需要额外的文件进行启动的,那就需要特殊处理,我们还是以之前Windows教程的两个游戏进行举例

魔女的夜宴

魔女的夜宴是替换文件类的,但是替换后,需要通过另一个exe来启动游戏,在windows下我们是通过自定义启动参数来进行的,如:

但是在SteamOS中会发现这种启动方式不再可行。之前Windows的视频中我提到过,这个方法其实就是在原本的启动指令前先执行我们指定的文件。但是如果使用下面Debug方法章节中的调试方法,我们这样运行,就会发现如下报错:

"/var/mnt/ntfs/SteamLibrary/steamapps/common/Sabbat of the Witch/Launcher.exe" /home/deck/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=888790 -- /home/deck/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/deck/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/deck/.local/share/Steam/compatibilitytools.d/GE-Proton7-42'/proton waitforexitandrun &#​39;/var/mnt/ntfs/SteamLibrary/steamapps/common/Sabbat of the Witch/SabbatOfTheWitch.exe’

从这里能看到,由于我们使用兼容层启动游戏,所以实际在运行之前,需要添加兼容层参数,以下就是一个启动案例

#!/bin/sh export PROTON=&#​34;Proton 5.0" export STEAMAPPID=1237970 export X="/home/niklas/.local/share/Steam" export PROTON_WINE=&#​34;${X}/steamapps/common/${PROTON}/dist/bin/wine64" export PROTON_BIN=&#​34;${X}/steamapps/common/${PROTON}/proton" export PFX=&#​34;${X}/steamapps/compatdata/${STEAMAPPID}/pfx" # Running with Proton cd "${X}&#​34; PROTON_LOG=1 \ PROTON_DUMP_DEBUG_COMMANDS=1 \ SteamAppId=${STEAMAPPID} \ SteamGameId=${STEAMAPPID} \ STEAM_COMPAT_DATA_PATH="${X}/steamapps/compatdata/${STEAMAPPID}" \ STEAM_COMPAT_CLIENT_INSTALL_PATH="${X}&#​34; \ "${PROTON_BIN}&#​34; run "c:\Program Files (x86)\Origin\Origin.exe" # Running with Proton&#​39;s wine WINEPREFIX="${PFX}&#​34; \ "${PROTON_WINE}&#​34; "c:\Program Files (x86)\Origin\Origin.exe"

所以SteamOS下,MOD后想要运行另外的执行文件,使用 的方式不再可行。这里我的解决方案是,我们将替换后的游戏,直接作为新的本地游戏,使用上面讲过的添加本地游戏方式,直接指定启动文件为我们需要的,如Launcher.exe,而不是原本的Sabbat of the Witch.exe。此时再设置兼容层,就可以运行了。

初音未来M39s+

这是我们上次Windows教程中的另一个栗子,这次也使用这个例子是因为初音未来M39s+是额外文件类的MOD,我们需要一个额外的dll文件以及mod文件夹来使用MOD。我们像Windows下一样将文件拷贝进去后,在SteamOS下直接运行会发现没有MOD效果。

这是为什么呢?这是因为默认的兼容层设定只包含一些通用的dll运行库,也只会运行Steam库中游戏的标准启动程序。而这个游戏的MOD需要额外的dinput8.dll来加载MOD文件。也就是我们自定义启动参数,输入:

然后就可以正常启动了,可以看到,dll是正常加载的,以及mod文件

这里每个游戏需要的可能都不同,建议大家善用搜索引擎

本小节我们总结一下,简单来说,就是如果你MOD的游戏需要加载额外的dll文件,可以考虑通过WINEDLLOVERRIDES启动参数来进行启动。

CLANNAD FULL VOICE(本地汉化组版)

这在Windows下教程中,被我用来展示如何订制本地游戏的图片,巧了,在SteamDeck的教程中,她又有了不一样的问题,正好拿来做栗子。这样我们之前视频中的三个栗子,在这次的视频中又分别代表了三类问题,真神奇。

假如我们直接添加本地游戏后,指定兼容层直接运行,会发现无法启动,显示乱码。这常见于一些比较老的游戏或GALGAME等。尤其是大家安装的本地版游戏,带着汉化的。

这是因为游戏没有自动适配预言,没有使用中文语言,导致许多文件无法正确加载。这里我们可以通过启动参数,指定语言为中文。

然后再运行就可以正常启动了

当然,这种一般都是适配不好的,或者我们装了汉化补丁的,常见于GALGAME中。如果是Steam版CLANNAD,我们指定兼容层直接运行即可,中文语言没有问题

自定义启动参数

本章节其实喝多在上面都已经讲过了,可以说是个简单总结,后续如果我有新的收获会继续更新。

我们可以通过游戏设置中的启动参数来实现一些自定义选项。

执行其他exe

Windows下使用

SteamOS下不再可行,将新的exe作为非Steam游戏直接添加,再设置兼容层

加载额外dll

SteamOS下设置启动参数

手动设置语言

SteamOS下设置启动参数,中文zh_CN

日文

创建存档、MOD等文件的软链接

这里在双系统章节中提过,但是防止有同学不需要双系统,所以此处重复一遍。

Windows下的教程中,我们讲过使用mklink /d来创建符号链接,我当时就说Windows下的符号链接其实就是Linux的软链接。

视频教程:

https://www.bilibili.com/video/BV1tK411D7zA​

专栏:

https://www.bilibili.com/read/cv19272094​

实际上如果你在双系统的Windows下,按照之前教的方法创建软链接后,SteamOS中是可以直接看到的。如果在SteamOS下创建,我们可以使用命令

从下图可以看到,ls -l命令展示出,steamuser的存档目录下的Steam文件夹,被指向到了我们挂载的NTFS分区中的百度盘同步文件夹中

Steam -> /mnt/ntfs/BaiduSyncdisk/SaveData/Miku/

如果大家需要创建软链接实现存档同步,使用兼容层的游戏存档位置就在/home/deck/.local/share/Steam/steamapps/compatdata/<appid>下,如/home/deck/.local/share/Steam/steamapps/compatdata/<appid>/pfx/drive_c/users/steamuser/AppData/Roaming/xxxxxx

也就是兼容层在steamapps目录下创建了兼容数据,模拟Windows下的C盘用户文件夹

常见问题

游戏没有声音

如果你的游戏能够正常运行,但是只是没有声音,并且在系统界面都有声音,按音量键也一切正常,只有进入某一个游戏后没有声音,可以尝试如下操作:

切换到桌面模式,打开Steam,运行对应游戏,然后返回到桌面,查看游戏程序是否被静音。如果程序被静音,那么我们只要右键解除静音即可。后续再运行也就不会出现没声音的现象了。

双系统挂载的NTFS分区,重启后游戏无法运行

先详细描述下场景,首先这个问题我遇到的情况是游戏安装在双系统下的共享NTFS分区,游戏安装后在Windows下正常运行,在SteamOS下安装完后也正常运行过。但是当我SteamOS关机后,下次开机就会报错,出问题的游戏报错都不同,但是基本是找不到文件、或文件无法运行、或文件损坏等。但是即使重新安装也是一样的。

遇到这个问题,建议大家首先将游戏移动到SteamOS自己的/home分区中,尝试是否能够正常运行。如果可以,再尝试退出steam后,卸载/ntfs分区的挂载(详情查看双系统相关章节),并重新挂载,然后再打开steam,看游戏是否能够正常运行。如果也可以,就能够确认是挂载的问题。

但是这个问题我只有部分游戏遇到,其他游戏都正常,并且概率出现,没找到原因,所以我建议的解决方法是遇到后重新挂载一下分区,可以通过写脚本来完成,这样在外面没有键盘也能处理。如果有人有更好的建议,欢迎评论区留言。

在桌面新建一个sh脚本,写入如下内容:

如:

在桌面长按/邮件,以命令行运行即可。此时会重新挂载分区,然后关闭命令行,再打开Steam即可。

Debug方法

这里只简单介绍两个技巧,我相信如果你真的需要debug,那么你的水平应该已经超越了我的帖子涵盖的内容

第一个是输出日志,我们先退出steam,然后通过terminal使用如下命令重新启动steam,这样其标准输出和错误输出就会被打印到文件中了,我们可以后续通过日志文件查看steam报错。

第二个是protondb官网的一些FAQ,涵盖了很多方面,以及有对应的方法。真想debug还是老实看文档吧。

https://www.protondb.com/help/troubleshooting-faq