triwinds / ns-emu-tools

一个用于安装/更新 NS 模拟器的工具
GNU Affero General Public License v3.0
4.22k stars 150 forks source link

金手指功能非常好,但希望能够在金手指界面看到游戏的buildid,这样方便如何选择对应版本的金手指 #34

Open kongmao45678 opened 1 year ago

kongmao45678 commented 1 year ago

金手指功能非常好,但希望能够在金手指界面看到游戏的buildid,这样方便如何选择对应版本的金手指

triwinds commented 1 year ago

没太看懂,game id 现在已经在列表里面有展示了啊 image 前面的那串 16 进制的 id 就是 game id

kongmao45678 commented 1 year ago

这个是title id ,非build id,构建ID是根据游戏的版本号不同会变化的。游戏的金手指,对应bulid id正确才可以生效。 QQ截图20230323193729

triwinds commented 1 year ago

image

看起来 txt 文件名就是 build id ?

kongmao45678 commented 1 year ago

对,金手指文件是build id,得获取游戏的build id才行。通常模拟器中,可通过模拟器运行游戏后的日志文件可以获取这个数据。 一个游戏有多个金手指文件,build id根据游戏版本号不同,会有多个。

triwinds commented 1 year ago

日志会被刷掉的,这法子感觉不太靠谱...

或许可以在金手指里面加一个用 {} 包裹的特殊条目,然后将这个条目和文件名一起展示

例如

{异度神剑3 v1.3.0 BY-怪盗B}
040B0000 011A3570 F9400009

可以在列表里面显示:"B76CD24AF02ACEA2.txt - 异度神剑3 v1.3.0 BY-怪盗B"

kongmao45678 commented 1 year ago

最准确的数据,应该是游戏后读取的bulid id。金手指里面要人工加,这个不太现实。 你可以参见这个:https://github.com/Ryujinx/Ryujinx/pull/4340 龙神模拟器应该不久后会实现。

kongmao45678 commented 1 year ago

用程序来实现的获取这个数据的话,可以试着这样。打开游戏后,使用你的软件,获取日志的build id,并保存本地显示在金手指的页面上。 这样就省得大家从日志文件里慢慢去找这个数据了。

triwinds commented 1 year ago

只靠日志会有一致性问题,你无法确认用户一定会在打开游戏后启动程序的,如果用户在中途添加 DLC 而没有及时更新本地记录的话那就出问题了。 而且你可以看看 yuzu 的 log, 里面出现的可不止一个 build id... 靠谱点的话需要像上面的那个 pr 一样靠解析 ExeFs 里面的文件来实现,但这方法在模拟器外面不太好做. 这个 issue 我暂时先挂着,等看看后面有没有别的方法来实现.