前几个星期有发帖询问过我有一台电脑无法正常打开yuzu,症状是双击没用,日志提示错误:
错误应用程序名称: yuzu.exe,版本: 0.0.0.0,时间戳: 0x64618ff7
错误模块名称: ucrtbase.dll,版本: 10.0.19041.789,时间戳: 0x2bd748bf
异常代码: 0xc0000409
错误偏移量: 0x000000000007286e
错误进程 ID: 0x1624
错误应用程序启动时间: 0x01d9881179c78271
错误应用程序路径: D:\NS\yuzu-windows-msvc-early-access\yuzu.exe
错误模块路径: C:\Windows\System32\ucrtbase.dll
因为之前的帖子大概率触发版规没了(我很抱歉)。。。
所以找到原因之后,重新和大家分享下:
1、这台电脑无法打开yuzu,我下载的几个版本的(组合包)、都无法打开。
2、这几个组合包,我在另外两台电脑上面都可以正常打开。
3、按照“ucrtbase.dll”的故障,我重新修复和安装了所有能装的 Microsoft Visual C++ Redistributable,还有DirectX,都不行。
4、Dism 和 sfc /scannow 之后还是不行。。
5、终极大法:重新安装了 操作系统,更新补丁到最新,还是无法打开,同样的报错。。。
昨天晚上整理旧文件的时候,里面有一个旧版本的yuzu,我尝试了下,竟然打开了这个旧版本。。。
但是之前无法打开的新版本,还是无法打开。
详细对比了下,找到了问题,出在了模拟文件目录user下的qt-config.ini文件:
user\qt-config.ini
yuzu的便携化方式是检查当前目录有没有user,如果有user就将所有的配置保存在此目录下。
否则就放到 系统环境下 %APPDATA%的yuzu 里面。
(龙神Ryujinx的便携化是本地新建 portable 目录,并保存在里面)
而在 qt-config.ini 中有定义之前打开的相关目录地址:
nand_directory=E:\\Windows-Yuzu-EA-3591\\yuzu-windows-msvc-early-access\\user\\nand
sdmc_directory\default=true
sdmc_directory=E:\\Windows-Yuzu-EA-3591\\yuzu-windows-msvc-early-access\\user\\sdmc
load_directory\default=true
load_directory=E:\\Windows-Yuzu-EA-3591\\yuzu-windows-msvc-early-access\\user\\load
dump_directory\default=true
dump_directory=E:\\Windows-Yuzu-EA-3591\\yuzu-windows-msvc-early-access\\user\\dump
tas_directory\default=true
tas_directory=E:\\Windows-Yuzu-EA-3591\\yuzu-windows-msvc-early-access\\user\\tas
Paths\romsPath=E:/Windows-Yuzu-EA-3591/yuzu-windows-msvc-early-access/room
Screenshots\screenshot_path=E:\\Windows-Yuzu-EA-3591\\yuzu-windows-msvc-early-access\\user\\screenshots
继上面有详细的目录地址,我手动修改上述地址,为实际地址之后,竟然成功打开了。。。
另外,根据更详细的测试如下,也找到了之前,有的电脑能够打开,有的电脑不能打开的原因了:
1、如果电脑只有一块硬盘,分成两个区,例如C、D盘,上面的 qt-config.ini 文件中的例子是不存在的硬盘E,是可以正常打开,并自动修改qt-config.int为现在真实的地址。【通过2台电脑测试的结果】
2、如果电脑是有两块硬盘,分成两个区,第一块硬盘C盘,第二块硬盘D盘,上面的qt-config.ini文件中的例子是不存在的硬盘E,是无法打开yuzu,即qt-config.ini 无效。【通过另外2台电脑测试的结果】
3、还是上述2的2台电脑,有两块硬盘,分别是2个区,但是只要之前的qt-config.int 是当前盘符下的(例如D盘),也是可以成功打开的。(这也是同样的硬盘盘符下,可以随意修改主目录的名字,能够打开。但是更改到新的硬盘下,就会出现我上面的错误)
总结:发生我同样的问题的时候,只要修改 qt-config.ini 文件,将盘符改成当前文件所在的盘符即可(不需要修改为具详细的准确的目录,只要盘符对就行)。
感谢之前各位大佬提供的建议和帮助。