SteamDeck+MTools+NWjs封装的RPG游戏出错的解决方案
t0saki
2024年12月08日 17:34

按照以往经验来说,使用Steam Deck + Proton兼容层启动MTools机翻的RPG游戏应该没问题。但近期打算对两个NW.js封装的RPG游戏(典型特征是Game.exe为NWjs的黑六边形指南针logo)使用MTools时,遇到了游戏报错:Failed to initialize graphics。本文旨在解决这个问题。

解法TLDR:需要使用全英文路径,且需要在未修改游戏本体启动后使用MTools勾选“注入至正在运行的游戏”启动翻译。

首先,进入桌面模式。保证游戏路径全英文。

然后,在游戏目录(Game.exe同级)下创建一个bat文件,命名随意,比如start.bat,内容如下:

```bat

@echo off

start "" "Game.exe"

timeout /t 3 /nobreak >nul

start "" "./Tool/nw.exe"

```

Game.exe可以根据你的需要更改,如果游戏文件夹下没有Tool,可以改成对应路径,或者单独启动MTool后选择游戏并勾选“复制工具到游戏”启动一次即会创建。

之后,把Game.exe添加到Steam,然后在游戏的属性中设置好兼容层(我这里使用Proton 9.0),将快捷方式-目标修改为之前创建的bat文件。需注意这个路径应该是全英文。

如果含有空格则使用双引号引用起来!这一点对所有第三方Steam Deck游戏均适用。直接使用右键添加的第三方游戏Steam会自动添加引号,但通过浏览指定的不会,不知道算不算一个bug。

启动游戏,你应该能看到游戏本体和MTool两个窗口。在MTool窗口中取消勾选“精简版UI”,将游戏文件拖动到窗口区域,勾选“注入至正在运行的游戏”并启动翻译。此时游戏应该正常被翻译。

以后启动游戏可以稍微简单一些,在Steam中使用同样的bat启动游戏后在MTool的游戏库中点击启动游戏即可。(如果SD在普通模式不在桌面模式则按一下左边steam按钮即可切换不同窗口)

如果以上步骤均不起作用,可以尝试在游戏属性-启动选项中加入`LANG=zh_CN.UTF-8 %command%`,并安装unifont smooth字体(在桌面模式下打开ttf-安装到Personal即可)。

该方法理论上同样适用于其他Linux+Proton的组合。