回复
7
查看
838
收藏
12

0

赠楼

0%

赠楼率

1944

蒸汽

34

主题

5966

帖子

5735

积分
发表于 2024-3-19 13:04:02 · 欧洲和中东地区 | 显示全部楼层 |阅读模式
本文为 其乐用户(UID:244986) 发布的原创文章,转摘前请联系该用户获得许可
本帖最后由 244986 于 2024-3-19 13:51 编辑


Steam商店Steam评测区 | 其乐相关帖SteamDBAStatsSCEBarter | Steam客户端中查看入库或安装 | 复制ASF代码

前情提要
隔壁帖热心坛友发现 KonoSuba 日文文本突然没了,我想着几周前首发的时候自己推了一章用的正是日文,怎就没了,一开游戏发现果然没了
简单搜了一下没找到解决方案。于是自己动手研究了一下是个怎么个回事,发现了问题所在,以及解决方案。


解决方法

目前想到的有三种,从易到难,选一即可:

1. 在 🇯🇵 IP 登录 Steam,保证 Steam 识别到的 IPCountry 是 JP,然后直接启动游戏即可;


  • 其中 IPCountry 在 Steam 控制台(steam://nav/console)里用 user_info 命令确认,如果切换不成功是因为同账号登录的其他 Steam 客户端或 ASF 没有登出;

2. 用旧版本游戏的 Assembly-CSharp.dll 替换现有的 dll,然后确保右键属性里语言选择的是「日本語 (Japanese)」,启动游戏就是日文了;
  • 旧版本的游戏可以在 Steam 控制台(steam://nav/console)里用下面的命令获得:
  1. download_depot 2349140 2349141 4482999107980334936
复制代码
  • 下载得到的旧版本游戏 Assembly-CSharp.dll 可以在下面这个文件夹下找到(请自行替换 C:\Program Files (x86)\Steam\ 为你的 Steam 安装目录,不是其他分区下的游戏库目录!):
  1. C:\Program Files (x86)\Steam\steamapps\content\app_2349140\depot_2349141\KONOSUBA_LFD_Data\Managed
复制代码

3. 修改现有的 Assembly-CSharp.dll,把 Steam 属性语言选项的检测加回来(参见技术细节提供的思路)

其中方法2和3因为修改了游戏文件,如果下次游戏推送更新了同文件或者执行“完整性检查”的话就会暂时失效,需要重新覆盖 dll 文件


技术细节 / 授人以渔

基本思路是,尝试下旧版游戏是否可以继续用日文游玩,如果可行,对比更新之后的变化找到异常。


从 SteamDB 得知游戏的 depot 发售至今一共有过两次更新:

https://steamdb.info/depot/2349141/manifests/



首发的 ManifestID 是 4482999107980334936,第一次更新后是 5864614434559655053,第二次更新后 1885058133446803480


点进 manifest diff 可以看到每次都只有三个文件被更新了,极大缩小了排查范围(而且都是小文件,也说明了日文文本的数据很可能还在):

https://steamdb.info/depot/23491 ... 5864614434559655053



https://steamdb.info/depot/23491 ... 1885058133446803480




有了 ManifestID,就能用 Steam console 的 download_depot 命令把以前的版本拖下来,命令格式如下:

  1. download_depot <appid> <depotid> [<target manifestid>] [<delta manifestid>] [<depot flags filter>] : download a single depot
复制代码
appid, depotid, target manifestid 对号入座:

  1. download_depot 2349140 2349141 4482999107980334936
复制代码
其实只需要那三个文件,似乎可以填 delta manifestid 达到只下载 delta 的目的?暂未尝试,欢迎尝试反馈
也有些第三方工具同样可以下旧 depot,可自行尝试。记得有坛友多年前也做过一个工具,不知还有没有在维护了。



上面的截图里可以看出我先有尝试第一次更新后的 manifest 5864614434559655053,替换文件后还是没有日文界面。再用首发的 manifest 1885058133446803480 替换三个文件就成功了。



再缩小范围一个一个文件尝试,确定了 Assembly-CSharp.dll 是罪魁祸首。

上工具伺候,可以看到新版本的 Assembly-CSharp.dll 有一个 IP 检测,在 IPCountry 是 JP 的时候才会用日语界面,否则一律用默认的英文:



而旧版本就非常单纯,直接检测属性里设置的游戏语言:




以此得出方法3(加回游戏设置语言检测逻辑也可以恢复日文)的结论,感兴趣的可以自己尝试一下。


如果有更好的方法欢迎大家讨论


(惠惠 prprpr
KonoSuba: God's Blessing on this Wonderful World! Love For These Clothes Of Desire!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

×
回复

使用道具 举报

浏览本版块需要:
1. 初阶会员或更高等级;
2. (点击此处)绑定Steam账号
您需要登录后才可以回帖 登录 | 注册

本版积分规则

欢迎发帖参与讨论 o(*≧▽≦)ツ,请注意
1. 寻求帮助或答案的帖子请发到问题互助版块,悬赏有助于问题解决的速度。发错可能失去在该板块发布主题的权限(了解更多
2. 表达观点可以,也请务必注意语气和用词,以免影响他人浏览,特别是针对其他会员的内容。如觉得违规可使用举报功能 交由管理人员处理,请勿引用对方的内容。
3. 开箱晒物交易中心游戏互鉴福利放送版块请注意额外的置顶版规。
4. 除了提问帖和交易帖以外,不确认发在哪个版块的帖子可以先发在谈天说地

  作为民间站点,自 2004 年起为广大中文 Steam 用户提供技术支持与讨论空间。历经十余载风雨,如今已发展为国内最大的正版玩家据点。

列表模式 · · 微博 · Bilibili频道 · Steam 群组 · 贴吧 · QQ群 
Keylol 其乐 ©2004-2024 Chinese Steam User Fan Site.
Designed by Lee in Balestier, Powered by Discuz!
推荐使用 ChromeMicrosoft Edge 来浏览本站
广告投放|手机版|广州数趣信息科技有限公司 版权所有|其乐 Keylol ( 粤ICP备17068105号 )
GMT+8, 2024-5-1 15:10
快速回复 返回顶部 返回列表