yuzu模拟器吧 关注:209,768贴子:866,962

自己动手丰衣足食:编译一个修复了地底贴图bug的yuzu版本

取消只看楼主收藏回复

一楼祭天


IP属地:浙江1楼2023-05-08 02:55回复
    目前yuzu模拟器没有Ryujinx的一些贴图(比如石头白点)和音频(爆裂音,双声道不均衡,音效明显右声道更响)错误,然而:
    1.闪屏:原因不明,触发条件不明,纯玄学,目前只能选择性无视。
    2.内存泄漏:OpenGL模式下运行游戏有严重的内存泄漏问题,内存无法被正常释放,这导致不管你有多大内存最后迟早会爆,只是时间问题。而且和Ryujinx的问题不一样,内存泄漏是没法靠自动内存清理软件来解决的,所以你玩着玩着就会变卡、出错然后崩掉。
    3.地底贴图错误:Vulkan模式下虽然没有内存泄漏问题,但是地底贴图一团糟,基本没法玩。不过已经有人给出了解决方案(下面会贴出原帖),需要修改模拟器的一行源代码然后自己编译。
    虽然也有人发布了现成的修复版exe,但被怀疑含毒(似乎是因为会向一个远程IP发送数据),为了用的安心,不妨选择自己动手搞定编译过程。


    IP属地:浙江5楼2023-05-08 03:04
    收起回复
      2026-04-18 05:30:21
      广告
      不感兴趣
      开通SVIP免广告
      原帖链接地址发不出来,我就先写教程了,之后看看有没有办法能把链接发出来。


      IP属地:浙江9楼2023-05-08 03:15
      回复
        首先是需要准备的工具(链接我会贴在本楼回复...前提是贴的出来,也可以自己百度找):
        1.一台性能不能太拉(否则编译一辈子,一般来说能玩模拟器的电脑都没啥问题)的电脑。
        2.能访问G*tH*b托管网站的网络环境。
        3.Visual Studio 2022,需要在安装选项里安装”通用Windows平台开发“、”C++桌面开发“和”Visual Studio拓展开发“,推荐Community版本,免费使用。
        4.Cmake(构建工具)。
        5.Vulkan SDK(开发工具包)。
        6.Git,用于源码克隆。


        IP属地:浙江10楼2023-05-08 03:24
        收起回复
          疯狂吞楼,无语了


          IP属地:浙江16楼2023-05-08 03:37
          回复
            为了防止跳过太多步有人看不懂,安装的部分我也写下来吧,首先是VS2022:
            1.下载后按步骤执行,会打开一个叫Visual Studio Installer的程序,在上方标签页选择”可用“,然后找到”Visual Studio Community 2022“,安装。
            2.在选择安装组件时,一定要确保勾选了”通用Windows平台开发“、”C++桌面开发“和”Visual Studio拓展开发“三个选项,注意要较大硬盘空间。
            3.完成后根据提示信息重启。


            IP属地:浙江17楼2023-05-08 03:39
            回复
              CMake安装:没啥好说的,一直下一步。


              IP属地:浙江20楼2023-05-08 03:42
              回复
                Vulkan SDK安装:也是一直点下一步,但是选择可选功能时建议全勾上,反正我不勾是缺依赖。


                IP属地:浙江21楼2023-05-08 03:43
                回复
                  2026-04-18 05:24:21
                  广告
                  不感兴趣
                  开通SVIP免广告
                  Git安装:安装过程中,需要选择”Git from the command line and also from 3rd-party software“,同时建议勾选将Git集成到资源管理器右键菜单的功能(Git Bash Here),之后操作会更方便。


                  IP属地:浙江23楼2023-05-08 03:46
                  回复
                    这些东西都装上后,首先你需要克隆最新的yuzu EA以及yuzu主分支的源码(之后说为什么两个都要):
                    1.找到你要放源码的地方,然后右键-Git Bash Here,会打开一个终端。这里先说一下基本的终端使用方式:输入命令然后回车,粘贴时候要右键然后点Paste,Ctrl+V是没用的。
                    2.用git clone --recursive 命令克隆项目,因为怕吞,所以完整的命令我会尝试放在本楼回复下。
                    PS:如果你之前没有选择继承资源管理器,那你就得自己手动导航到路径,方法是:
                    ①先使用“cd [盘符]”切换盘符。
                    ②“cd [你希望的目录路径]”注意是相对于你当前目录的路径,所以盘符是不需要加的。
                    举例:cd d→cd abc/1


                    IP属地:浙江24楼2023-05-08 04:01
                    收起回复
                      根据官方文档的说明,externals文件夹中应该以及包含了所需依赖,但不知道为什么EA分支仓库里的依赖是不全的,所以我们要用主分支里的依赖替换yuzu EA源码文件夹里的依赖:
                      1.删除yuzu EA(pineapple-src)文件夹中的externals文件夹。
                      2.打开yuzu主分支(yuzu)的文件夹,将其中的externals文件夹复制到yuzu EA的文件夹中。


                      IP属地:浙江26楼2023-05-08 04:10
                      回复
                        这还没完,我用CMake生成配置的时候发现vcpkg还是会出问题,排查了一下日志后我选择简单粗暴地把这个仓库重新克隆一份,之后就好了:
                        1.删除yuzu EA\externals\vcpkg文件夹。
                        2.在externals目录下右键打开Git Bash终端,然后使用git clone命令克隆vcpkg的仓库,完整命令怕吞还是放在本楼回复。


                        IP属地:浙江27楼2023-05-08 04:14
                        收起回复
                          至此,准备工作就完成了,接下来打开CMake(cmake-gui),找不到直接在开始菜单里搜索。接着你会看到下图的界面。


                          IP属地:浙江28楼2023-05-08 04:18
                          回复
                            1.“Where is the source code”这一栏填入你的(yuzu EA)源码文件夹路径。
                            2.“Where to build the binaries”这一栏填入你要存放输出文件的路径,建议是直接在源码文件夹里新建一个build文件夹。
                            3.点击下面的Configure,会弹出一个新的窗口,如下图所示。只需要改一下第一栏和第二栏,按图中这么设置就可以了(选择VS2022,架构选x64)。.


                            IP属地:浙江29楼2023-05-08 04:23
                            回复
                              2026-04-18 05:18:21
                              广告
                              不感兴趣
                              开通SVIP免广告
                              搞定之后点击Finsh,就会开始生成配置文件,所需的时间依你的配置而定,且中途可能会弹红字告诉你语法过时之类的,只要配置过程没有停止就可以忽略不管。


                              IP属地:浙江30楼2023-05-08 04:25
                              回复