翻车🐭 1KLUYUI
关注数: 17 粉丝数: 373 发帖数: 4,141 关注贴吧数: 32
Yuzu进展报告2023年8月【edge浏览器机翻】 图图鲁~余兹人。你觉得上一份报告太短了吗?好吧,八月正在全力以赴!本月提供了重要的图形修复,开发人员解决GPU限制,几个早就应该修复的文件系统修复,Skyline框架支持,一些Android和Apple的喜爱,等等! 永远的柚子炸鸡 还有罗宾。 这是 、 和实现的最后一部分。但在我们开始之前,我们必须解释一些事情。Project Y.F.C.Query Cache RewriteHost Conditional Rendering 为什么我们需要查询缓存? 许多 GPU 公开计数器,这些计数器用于从 GPU 执行的各种命令中收集数据,例如绘制了多少像素或生成了多少三角形。 游戏使用查询在需要使用这些计数器并将其加载到内存中。 Yuzu 的查询缓存负责跟踪 Switch 游戏的 GPU 计数器的值以及来自游戏的服务查询请求。 它的用途是什么? 一些游戏可以利用这些获取的数据来进一步优化其渲染。例如,使用称为遮挡剔除的常用技术优化其渲染的三角形数量。SUPER MARIO ODYSSEY 遮挡剔除是一项功能,当摄像机当前看不到对象时,该功能会禁用对象的渲染,因为它们在屏幕外或被其他对象遮挡(遮挡)。 在 中,游戏首先渲染简单的边界框,这些边界框覆盖将在屏幕上渲染的所有对象。 然后,它查询渲染到每个框的像素数,并且仅渲染其相应框具有任何像素的真实对象。SUPER MARIO ODYSSEY 同样,游戏使用像素计数来检查给定角色触摸的墨水。 游戏同时测试盟友墨水和敌人墨水,如果两个测试都失败,则角色不会站在任何墨水中。Splatoon中孔(Splatoon 2) 发展与挑战 柚子已经有一个多年前开发的查询缓存。 但是,这种实现并不完美,并且存在许多问题。仅举几例: 它无法保存除像素计数之外的任何查询 它无法以正确的顺序写入内存 它不会使后来被其他查询类型覆盖的查询无效 我们的常驻 GPU 开发人员 Blinkhawk 着手重新设计查询缓存,以解决这些问题并使代码现代化。 但是,正如他后来发现的那样,这并不容易。 回想一下,查询缓存的工作原理是在主机 GPU 上运行查询。 事实证明,弄清楚如何使其在主机GPU上工作实际上是整个重写中最困难的部分,因为Switch GPU的功能与Vulkan等主机图形API公开的内容之间存在显着差异。 在开发过程中,Blinkhawk在Host GPU查询方面遇到了两大挑战。 首先,出于性能原因,我们无法在处理命令后立即向主机 GPU 提交命令。我们需要对它们进行批处理以获得任何合理的速度水平。这就引出了一个问题:我们什么时候需要执行查询并同步内存? 一旦您开始游戏,游戏就会开始进行查询以获取 GPU 计数器。 通常,结果是在计数完成后立即由 Switch 的 GPU 获得的——当渲染完成时。 但是像这样的游戏,它使用遮挡剔除,会进行很多查询。SUPER MARIO ODYSSEY 因此,如果我们尝试运行所有这些查询并以相同的方式在主机(用户)的 GPU 上写入结果,那么在绘制每个场景元素以写回计数器后,它会严重停止 GPU。 为了防止这种情况发生,每当游戏请求 GPU 等待命令完成渲染时,Blinkhawk 都会同步内存。这允许高效的批处理,以及在等待利用计数器值后发生的 GPU 命令。转动镜头,整个城市神奇地消失了(超级马里奥奥德赛) 其次,在来宾(交换机)的GPU中,计数器可以随时重置,也可以根本不重置。 但是这种行为并没有在OpenGL和Vulkan等图形API中公开。 相反,这些 API 具有仅计算较小部分(例如单次绘制或多次绘制)的查询。 这意味着我们需要获取所有查询结果并汇总它们,尤其是在游戏从未重置计数器的情况下。 在旧的查询缓存中,我们习惯于在单个 GPU 线程上汇总所有查询结果,这无法跟上繁重的工作负载。 随着查询结果数量的增加,对它们求和所花费的时间也在增加。 这对于大约 50 或 80 个查询来说很好,但有些游戏可以轻松地在单个帧内进行数千个查询。 Blinkhawk尝试了几种不同的算法,最终确定了基于Hillis Steele扫描算法的实现。 结果呢?好吧,让以下列表不言自明: 里面的灯笼是固定的。Luigi’s Mansion 3没有闪光弹(路易吉的豪宅3) 使用高 GPU 精度时,细节级别是固定的。不再有树木闪烁。Pokémon Scarlet & Violet 在某些Koei Tecmo游戏中渲染是固定的,当使用高GPU精度时。Marvel Ultimate Alliance 3: The Black Order 使用高 GPU 精度和禁用异步着色器构建时,会修复发光粒子。Xenoblade Chronicles 2 & 3 正确填充火焰时钟(异度之刃编年史3) 中的阴影是固定的。Metroid Prime Remastered不是黑暗萨穆斯(银河战士总理重制版) 在使用主机条件渲染的游戏中,低端和/或功耗受限硬件的性能有所提高,例如、、、大多数Koei Tecmo游戏等。Pokémon Scarlet & VioletLuigi’s Mansion 3SUPER MARIO ODYSSEY 还有更多! 更多 GPU 更改 GPU 的变化并不止于此;还有很多内容要介绍。 让我们从一个令人惊讶的端口开始:本月登陆Switch和其他游戏机,随之而来的是专有RAGE引擎的新版本,为我们的开发人员提供了一些需要解决的怪癖。 你知道,新版本通常也是如此。Red Dead Redemption 动态GPU二人组(Blinkhawk和Maide)分析了游戏,并得出结论,最初渲染中断的原因是由于Vulkan上缺乏对蒙版深度模板清除的支持。 深度模具或深度和模板缓冲区的组合是一种将深度缓冲区和模具缓冲区组合到内存中的单个图像中的图像类型,从而加快 GPU 的测试以确定是否将绘制任何给定像素。 进一步详细说明: 深度缓冲区存储相机与当前最接近它的像素之间的距离,允许 GPU 确定哪些像素将被其他对象覆盖,因此不应绘制。 模板缓冲区更专业:它为每个像素存储一个字节,开发人员通常使用它来标记某些类型的对象。例如,可以为地面分配值 1,为树木和树叶分配值 2,为玩家分配值 17,依此类推。了解哪些像素属于哪些对象以应用各种效果非常有用。这是一个很棒的视频,展示了如何在 中使用模板缓冲区的示例。此视频中提到的材质遮罩缓冲区是模板缓冲区,用于防止效果应用于不需要的材质。The Legend of Zelda: Breath of the Wild 这些缓冲区的主要用途是正确渲染具有阴影、反射和透明度的场景。如视频示例所示,通过标记每个像素,许多类型的图形效果变得更加容易,因为这允许 GPU 根据像素的材质类型有条件地应用效果。 那么,为什么明确的操作在Vulkan上是一个问题呢? 在图形编程中,清除用于将缓冲区的所有数据重置为指定值。 Switch的NVN和OpenGL等图形API支持应用掩码来清除操作。 应用清除时,遮罩会更改图像的哪些位将受到影响:设置为 1 的位位置受清除的影响,设置为 0 的位位置将单独保留。 例如,如果游戏需要 4 位模具的上 8 位进行后续绘制,则它可以将掩码设置为 二进制 ,并清除值为 0 的模具。 这将导致仅清除较低的 4 位,而根据需要保留较高的 4 位。00001111 OpenGL 支持所有清除操作的遮罩,包括颜色、深度和模板缓冲区。 但是,Vulkan 旨在支持移动 GPU,而在移动 GPU 上,最有效的实现可能是在清除旧缓冲区时完全丢弃它。 这样可以避免从内存中读回缓冲区,而这种读取可能很昂贵。 因此,Vulkan 没有直接等同于蒙版清除,并且需要一次清除图像的整个“方面”(颜色、深度或模板)。 Red Dead Redemption在其模板缓冲区上使用遮罩清除。这就是为什么这个错误只影响草和灌木丛:游戏试图用面具保持这些值不变。 但是由于我们直接从游戏中将清除转换为 Vulkan 清除,我们只是擦除了整个模板缓冲区,在此过程中破坏了灌木和草的渲染。 我们为Vulkan提出的解决方案类似于我们之前为《女神异闻录5 Royal》使用的技巧:使用常规抽奖,而不是透明抽奖。 通过常规绘制,我们能够使用内置的硬件支持来应用模板蒙版,并产生与 OpenGL 相同的结果。 现有的新系统通过绘制全屏三角形来工作,这允许常规模板硬件处理屏蔽和缓冲区写入。多亏了这一点,Red Dead Redemption中草丛和灌木丛的渲染问题现在得到了解决。你好!您可以直接正确渲染到您的脸部,无论喜欢与否。你有一些龙舌兰酒,然后胡安决定他是一个冒险家(荒野大镖客救赎) Blinkhawk和Maide还发现了间接计算调度模拟方式的旧回归。 对于外行,间接调度是一种技术,用于允许 GPU 从另一个计算着色器或 GPU 操作生成的结果中获取需要执行的工作量,而不是在记录时由 CPU 传递。通过让 GPU 像这样独立地工作来避免较慢的 CPU 路径可以提高性能。 如此独立而强大的Tegra X1 GPU。看着它成长。 由于这种后期的干预,、、 现在渲染得更好了:Rabbids 系列中的阴影具有适当的阴影水平,现在可以看到《孤独之海》中的环境。Mario + Rabbids Kingdom BattleMario + Rabbids Sparks of HopeSea of Solitude这个花了一段时间,嗯(马里奥+兔子王国之战和孤独之海) 《孤海》中的水需要模仿Tegra X1的其他非常棘手的方面,所以这是以后的功课。 正如麦德现在也了解到的那样,快速路径是一个古怪的女士。 她负责直接从 GPU 上传和下载图像数据,转换 CPU 和系统内存上的图像数据。 但是,它只有在满足适当条件时才能起作用。 如果你不小心翼翼地靠近她,你会在错误的地方、错误的时刻得到错误的数据。 这就是幸运,一个在Vulkan上崩溃的游戏,并在OpenGL上完全崩溃。Accelerated DMASid Meier's Civilization VI 罪魁祸首?未将目标缓冲区和/或映像标记为已修改,导致任何将来的读取都不会触发相应的下载。这导致游戏读取了错误的数据。快速路径的这一怪癖现已得到解决,并且添加了用于地址对给定图像格式无效的情况的 CPU 回退路径。策略迷现在可以尽情地互相攻击。 甘地说,和平从来都不是一种选择。再转一圈(席德梅尔的文明VI) 对于我们有文化的玩家来说,Blinkhawk 和 byte[] 为我们带来了期待已久的修复。 它们涉及模拟交换机的 GPU 驱动程序如何模拟硬件不支持的功能。是的。Bayonetta 3 这个故事围绕着 OpenGL 函数展开,该函数根据提供的角度在多个 mipmap 级别上进行纹理查找,并返回单个纹素。textureGrad 好吧,Switch 的 Tegra X1 上基于 Maxwell 的 GPU 无法原生地为 3D 纹理执行此操作,因此它使用 SAM 和 RAM 指令进入和离开一种特殊模式,我们对此知之甚少——但我们知道它用于计算纹理获取的导数。 通过寻找这种指令模式,Blinkhawk 实现了对 中雾和云的初步支持。 byte[]后来修复了该实现,使其按照Blink最初的意图运行,并避免在Mesa和基于RDNA3的GPU(AMD Radeon RX 7000系列)上崩溃。Bayonetta 3 神秘迷雾(巴约内塔3) Blinkhawk 不打算就此止步,还改进了在缓冲区缓存中丢弃不必要写入的逻辑,并改进了索引缓冲区(存储形成网格的顶点索引)大小的估计方式。 结果呢?中 的性能提升 69% 或更高,具体取决于系统规格。好。Bayonetta 3阿拉,阿拉(巴约内塔3) byte[] 发现 Yuzu 对 NVNflinger 的实现(负责呈现到屏幕的服务)缺少缩放模式选项“保留纵横比”。实现它可以解决其基本版本中的渲染问题。Gunvolt Chronicles Luminous Avenger iX地狱是的,精灵!(Gunvolt Chronicles Luminous Avenger iX) 一位用户报告说,很久以前的未知更改导致不断崩溃。 byte[] 发现罪魁祸首隐藏在分配期间映射的对齐方式而不是释放,这是前 Skyline 模拟器开发人员章程最初发现的错误。回归解决,游戏稳定,案件结束。AI: THE SOMNIUM FILES初级,我亲爱的用户(AI:SOMNIUM FILES) 最后,为了结束本节,与其说是图形代码更改,不如说是构建过程更改,vonchenplus 将 MoltenVK 作为外部依赖项添加到 yuzu 的 CMake 设置中,允许 Apple 用户在他们的 Vulkan 饥饿机器上构建 yuzu 时自动获取此翻译库的最新版本。(AGXV,有人吗?让我们从简单的东西开始(勇者斗恶龙III救赎的种子) 正确跟上MoltenVK更新可以让macOS版本运行一些基本游戏,但要让禁果公司的设备跟上速度,还有很多工作要做。 OpenGL特定的改进,这也改进了Vulkan 没错,Mesa和NVIDIA Fermi/Kepler用户,轮到你得到一些爱了。Epicboy 回来了,它对启动这一切的旧经典 API OpenGL 进行了一些重大更改。 首先是针对OpenGL和Vulkan API的GPU ASTC解码的重大改革。基于计算着色器的解码器多个领域的代码优化将 Vulkan ASTC 解码性能提高了 60%,但它使 NVIDIA 上的 OpenGL 快了 15 倍,使其现在在解码 ASTC 纹理方面比 Vulkan 略快。微妙的跳跃 留在 Vulkan 支持上的 GPU 现在可以在 、、 等游戏中享受更流畅的性能。The Legend of Zelda: Tears of the KingdomBayonetta 3Luigi’s Mansion 3 若要充分利用此更改,必须将该方法设置为 ,并且如果您使用的是 Vulkan,则应启用该方法。 这两个选项都可以在中找到。ASTC recompressionUncompressedEnable asynchronous presentationEmulation > Configure… > Graphics > Advanced toastUnlimited后来阻止了Mesa的本机ASTC解码器,因为它现在比我们的实现慢得多。 最后,Epicboy 解决了在我们将 Vulkan 作为默认 API 之前玩家非常普遍的问题。 坐下吧,孩子们,故事时间到了。Pokémon Legends: Arceus 在不那么遥远的美好时光里,柚子只是在试验一个不完整和不成熟的 Vulkan 后端,没有 LDN/LAN 支持,Android 版本被认为是一个发烧的梦想。 当时我们默认使用 OpenGL API,在着色器后端的三个选项中,GLASM 是首选的着色器后端,因为它不会影响不兼容的驱动程序——它是 NVIDIA 独有的“功能”,任何其他驱动程序都会自动恢复到与供应商无关的 GLSL。 这为 NVIDIA 用户提供了当时最好的体验,以及最短的着色器构建时间,直到 Vulkan 改进到足以成为今天的完全替代品。 在这些迁移日子里,一个非常常见的报告是角色阴影是错误的——它要么给角色引入了奇怪的微尘,要么它们看起来完全没有任何形式的照明。 这个问题很快就被发现源于GLASM。Pokémon Legends: Arceus 由于GLASM过去和现在都几乎不可能工作,因为它完全缺乏调试和辅助开发的工具,因此在Rodrigo引入它之后,没有开发人员愿意接触它。当他后来离开去更绿色的牧场时,这导致我们的 GLASM 着色器后端变得完全无法维护。 好吧,进入 2023 年,Epicboy 卷起袖子开始工作。他发现问题在于GLASM如何处理转换反馈。通过实现对多个转换反馈缓冲区的支持,他不仅解决了 Switch 中唯一好的主 Pokémon 版本中的问题(作者的观点,你不能证明我错了),而且很可能是许多其他依赖转换反馈来渲染的现代 Switch 游戏。 对于Gamecube来说仍然不错的图形(神奇宝贝传奇:阿尔宙斯) 我们希望我们的勇士仍在摇摆永不消亡的GTX 400至700系列GPU从这些变化中受益。 天际线框架:第 3 部分 经过漫长的等待,对天际线框架的支持,随之而来的是对 ARCropolis 模组框架的支持终于落地了! 但我们正在超越自己。让我们看看 byte[] 是如何使这成为可能的。Super Smash Bros. Ultimate 作为实施称为 ASLR(地址空间布局随机化)的安全技术的一部分,可以在交换机上加载程序代码的大范围地址。 事实上,即使 Switch 只有 4 GB 的物理内存,可以虚拟映射程序代码的区域大小也可以高达 512GB。 程序不应假设它们在地址空间内的加载位置,因为它们可以在控制台上此范围内的任何位置移动。 事实证明,Skyline 框架要求程序不在区域一开始就加载,但 yuzu 总是在那里加载它,导致它可靠地崩溃。 byte[] 通过将代码加载地址进一步移动到 ASLR 区域,为其运行留出空间,从而解决了 Skyline 的这一限制。 柚子负责处理来自访客代码的服务呼叫的代码并不完全处于理想状态。 模拟器早期的一个特别烦人的问题是锁,它阻止服务对象接收来自不同会话的并发请求。 由于实现不正确(锁根本不应该存在),但许多现有的 yuzu 代码依赖于它,byte[] 反而避免只在对套接字接口的调用周围锁定,避免在 Skyline 的 TCP 记录器处于活动状态时出现死锁。 要一劳永逸地消除此服务锁,还有更多工作要做。 通过这些更改,Skyline框架可以运行,但是需要做更多的工作才能使ARCropolis启动并运行,并且Smash模组社区感到满意。 值得庆幸的是,byte[] 并没有止步于此,而是继续实现所需的更改。 ARCropolis 曾经在连接到 SSL/TLS 套接字时错误地启动握手,而没有先设置主机名。 这已经在 ARCropolis 的依赖项中得到了修复,但大多数用户还没有更新到更正后的版本,所以 yuzu 必须支持这种行为。 最后,yuzu 缺少对 HTML 手动模组的支持,所以 byte[] 也实现了对它的支持。 经过这几次修复后的最终结果是,Super Smash Bros. Ultimate的大多数模组现在都可以工作了!
Yuzu进展报告2023年7月【edge浏览器机翻】 嘿,尤兹人! 欢迎回到我们的月度报告,了解我们所做的所有改进功能、性能提升和错误修复。 让我们直接跳进去吧! 外星人和鬼魂是真实的...它们在虚幻引擎上运行! 等待是漫长的,但值得。迷人的皮克敏系列中的另一款游戏终于来到了地球,正好赶上加入UFO报告的浪潮!想象一下与《玩具总动员》的交叉,它会解释爪子!(皮克敏4) 这一次,他决定使用虚幻引擎4,它保证了Switch的良好性能和质量。 然而,正如以前的游戏所证明的那样,该引擎也保证了模拟其稀疏纹理使用的头痛,并保证了运行 Vulkan 的 NVIDIA GPU 用户的不稳定性。Pikmin 4 byte[] 识别并修复了最近对纹理缓存的更改导致的回归,该更改严重影响了 NVIDIA GPU 的稳定性,导致设备不断丢失(驱动程序切断 GPU 的渲染,导致模拟器崩溃)。苔藓似乎很累(皮克敏4) emufan发现,将纹理缓冲区的总数硬编码会导致某些虚幻引擎4游戏崩溃,并将数量提高到.1632还好这个游戏没有与皮克敏相遇(侦探大师档案:雨码) 此更改不仅有所帮助,而且 ,另一个使用相同引擎的最新版本。Pikmin 4Master Detective Archives: RAIN CODE是的,火车的好名字,我会在德古拉站登上它(大师侦探档案:雨码) 很多事情都有所改进,但要提高使用这个流行游戏引擎的游戏兼容性,还有很多工作要做! 每场比赛配置 - 重新构想! 如果你对柚子有经验,很可能你已经看到并使用了每款游戏的配置。 但如果您不知道,柚子支持按游戏配置,作为设置游戏特定设置的简单方法,而无需更改您启动的每个游戏的全局设置。 对于要求 GPU 精度高而不是正常级别的游戏,或者对于最适合使用 OpenGL 而不是 Vulkan 的游戏,每游戏配置允许您轻松覆盖此类设置。 那么,你问有什么新变化? 这个功能实现背后的大脑和我们值得信赖的Toast切片ToastUnlimited已经开始朝着未来的方向努力,在这个未来,yuzu可以选择一个由社区策划的游戏特定配置文件,然后默认应用这些设置! 最终目标是让用户能够在默认情况下为任何游戏应用最佳设置,而不必修改我们今天拥有的许多配置选项。 听起来很令人兴奋,对吧?哎呀是的! 当 Toast 完成他的设计时,他很快就遇到了自己设计的障碍:我们当前的每场比赛配置系统。 现有系统的设计使得很难以编程方式定义和覆盖 yuzu 后端和前端系统中多个位置的每个设置。 Toast 决定直面挑战,并重写了整个设置后端以改进它,同时以编程方式更轻松地定义和实现任何设置。 由于这些更改,开发人员现在只需要写出设置的 UI 文本,系统将完成其余的工作(读取、写入、在 UI 中表示、重置全局状态)。 这样做的好处是提供了重新设计全局设置 UI 的多个部分的绝佳机会! 例如,系统设置现在包括支持、和 的所有三个可能值。Multicore CPU EmulationMemory LayoutLimit Speed Percent并列JS 对系统设置的重要更改 图形部分也得到了相当多的变化。 除了重新组织不同的选项外,新选项现在还列出了我们处理讨厌的 ASTC 格式的 3 种不同替代方案:CPU、GPU 和异步 CPU 解码。ASTC Decoding Method并列JS 图形设置也得到了一些喜爱 这里有很多变化,但关于全局设置已经足够了!Toast 还更改了每个游戏配置的更新方式。如果它们是从全局值修改的,它们现在将在每个设置的右侧显示一个 X 按钮,允许您在需要时快速还原它们。并列JS 图形设置也得到了一些喜爱 请继续关注我们设置的后续更改,并在此新基础上构建! 图形更改 Maide 继续努力通过优化来提高性能,他的最新更改进一步优化了他早期的优化之一。我们听说您喜欢优化,因此我们将优化放入您的优化中,以便您可以在优化的同时进行优化。 虽然最初的更改旨在减少将数据从来宾复制到主机(用户的PC)时的内存分配,但最新的更改完全删除了数据复制,从而在部分地区(例如Metro Kingdom区域)中提高了近10%的性能。 也看到了类似的收益。Super Mario OdysseyXenoblade Chronicles: Definitive Edition byte[] 的最新修复显著改善了 中最慢的着色器编译时间,将其从 减少到大约。 最近对纹理缓存的 AccelerateDMA 逻辑的更改被确定为导致设备丢失,此后已恢复。Splatoon 330 seconds4 seconds她称它为萨沙(Splatoon 3) 输入更改 German77继续对Switch NFC服务进行逆向工程,提高了柚子的代码准确性。他还修复了一个错误,该错误会导致鼠标在一段时间后停止工作,避免意外除以零。 新人SuperSamus对柚子的第一个贡献是删除了柚子中按钮映射的解决方法,该解决方法用于反转面部按钮映射。 通过这些更改,SDL 可以正确使用任天堂设备的本机 A/B 和 X/Y 映射。谢谢! 注意:此更改会中断那些使用没有直接驱动程序的任天堂控制器的用户的控制器配置。 安卓变化 Bunnei 实施了更改以修复萝卜驱动程序在某些骁龙设备上失败的问题,并添加了对损坏的高通 7xx 驱动程序的检查。 这意味着任何骁龙用户现在都应该能够运行萝卜驱动程序。本文后面的硬件部分提供了链接。 T895 禁用卸载柚子时保存用户数据的提示。当用户尝试使用不同的APK版本时,此功能通常会导致问题。 T895还添加了一些有用的错误提示,以告知用户为什么在某些设备上禁用某些按钮。 最常见的情况是Mali或Xclipse用户尝试安装自定义驱动程序,该功能仅适用于Adreno用户,至少目前是这样。您的梅萨司机在另一座城堡 杂项更改 除了上面强调的那些之外,还有一些较小的变化不一定适合单一类别。因此,让我们在下面快速讨论它们: FearlessTobi在yuzu的文件系统中添加了对压缩和稀疏NCA的检测。柚子现在不会静默失败,而是会记录此信息并中止解析。 toast 添加了一个新的 Linux 构建脚本,该脚本添加了在我们的官方 AppImage 版本中启用 Wayland 支持所需的库。 Toast 并没有止步于此,而是使用新的时区数据生成器修复了内存泄漏。当游戏尝试过多次询问时区信息时,就会发生这种情况。 此问题已通过跟踪生成的时区二进制文件而不是重复重新创建它来解决。 Toast 还绕过了新时区二进制更改的 MSVC 生成崩溃,方法是暂时禁用 MSVC 的 MSVC 生成崩溃,直到 Microsoft 提供解决方案。 对于那些感兴趣的人,原因记录在这里。Windows version 10 1809 LTSC byte[] 实现了缺少的服务功能,修复了导致 Quake 无法启动的错误,并修复了导致 Splatoon 3 在启用 LAN 时具有无尽加载屏幕的错误。 byte[] 还修复了 Yuzu 文件系统中的一个问题,该问题导致保存数据损坏或无法保存数据。 之前的合并导致具有非 ASCII 游戏的游戏在 Linux 上崩溃,因为需要字符串。此问题现已修复。谢谢泽尔特曼!DBusUTF8 Morph 修复了在最近的缓冲区大小增加后通过重构进度条计算代码而破坏游戏安装进度条的错误。 Morph还修复了一个bug,由于yuzu对CPU时钟精度的严格要求,yuzu会在CPU以非常低的时钟速度运行的较弱CPU的系统崩溃。 在某些情况下,German77 通过修复 Discord 存在代码中的内存泄漏(假定由 .cpp-httplib German77 还修复了 Yuzu 游戏列表中的崩溃,当您在没有按键的情况下启动 Yuzu 时会发生崩溃。 yuzu 新人和 Citra 专家 Steveice10 对 macOS 上的 Vulkan 曲面创建进行了一些改进。 comex为macOS提交了一些修复和解决方法,以解决一些未定义的行为错误。谢谢你们! 这并不意味着完全支持MoltenVK,但现在差距更小了。 硬件部分英伟达 撰写本文时发布的最新驱动程序 536.99 是稳定的,并且似乎也提高了 Vulkan 的性能,幅度很小,但可以衡量,在 3% 到 7% 之间。 免费表演就是免费表演。 阿德 现在是七月,我们又有一个新的AMD GPU驱动程序,另一个扩展导致问题。 如果您还记得我们 6 月份的进度报告,我们报告说最新的 AMD 驱动程序破坏了 Vulkan 功能 - ,我们不得不暂时禁用它在 AMD 驱动程序版本及更高版本上的使用。extendedDynamicState3ColorBlendEquation23.5.2 快进到七月,对一些人来说它仍然被打破。 在适当的时候给予信任,AMD确实解决了这个问题 驱动程序版本 ,但仅适用于GPU(RX 6000系列)。,也称为(RX 400和500系列),被确认仍被破坏。 鉴于此,以及修复的驱动程序仍然报告相同的 Vulkan 版本,我们从 <> 月开始恢复了原始更改,并且目前已禁用在所有 AMD 官方驱动程序上使用此扩展,直到修复并具有新版本号。23.7.2RDNA2GCN4Polaris 萝卜 Mesa永远不会放慢进度,K11MCH1的AdrenoTools发布是仙女们的真正祝福。 对于Adreno 600用户(骁龙###系列),进展是稳定的。 但最好的消息是A700用户(Snapdragon # Gen #系列),现在在Mesa Turnip驱动程序上的渲染和性能有了很大的改善。 有些游戏仍然需要专有的 Adreno 驱动程序更稳定或更快,但按照这种进度,我们很可能会很快看到这种变化! 未来项目 柜台背后,一些重点项目取得了很大进展。 最后一个缺失的部分,,已经发布,但我们下次再讨论。我们相信异度之刃和路易吉的豪宅粉丝会喜欢它! byte[] 继续改进当前的文件系统仿真——也许某些特定的游戏很快就会开始工作? Maide 有一些有趣的想法要在着色器缓存代码中实现。Project Y.F.C.Query Cache Rewrite 这就是所有人!感谢您阅读到最后。下次见!
Yuzu进展报告2023年5月【edge浏览器机翻】 真是一个月!GOAT发布,柚子冒险进入新平台,我们体验了盖亚计划,全面的Amiibo支持,进一步的YFC项目等等! 系上安全带,开始演奏一些欧洲节拍,这将是一段漫长的旅程。 塞尔达传说:VRAM 的眼泪 六年,等待是值得的。 没有赢得奖金的机制,没有令人筋疲力尽的微交易,没有发布后发布的道歉信。只是游戏,只是好游戏。在 2015 平板电脑上运行。(塞尔达传说:王国之泪) 塞尔达回来了,再次教游戏行业如何制作视频游戏,同时也让它适合 15 岁的 U 盘,并在 8 岁的移动 SoC 上运行。而且只有 16GB!(塞尔达传说:王国之泪) The Legend of Zelda: Tears of the Kingdom不仅让它的前身(一款已经重新发明了开放世界游戏玩法的游戏)看起来像一个技术演示,而且事实证明它也是一个重量级的重量级人物,在模拟时在硬件要求上远远高于同类产品。 更重的物理引擎、大量的着色器以及大量 ASTC 纹理的荒谬使用相结合,让模拟器屈服了。 让我们从公主引入该项目的最复杂的问题开始。PC上的交换机仿真的老克星,现在提升到新的高度:ASTC公司。鹿。(塞尔达传说:王国之泪) 由于没有一个专用的台式机或笔记本电脑显卡支持 ASTC 纹理的原生解码(英特尔 iGPU 除外),yuzu 被迫将它们即时转码为所有 GPU 都支持的安全无损格式;在本例中,格式。RGBA8 到目前为止,这完全没问题(即使在 2GB GPU 上),因为是唯一一款“广泛”使用 ASTC 纹理的游戏,在用于 4p 和 1080p 屏幕分辨率的移动设备上提供 720K 纹理。 我们的垃圾收集器是两年前与哈迪斯计划一起推出的,我们的老用户称之为“记忆收割者”,当时针对这种最坏的情况进行了调整。ASTRAL CHAIN 但是,如果一款具有更多纹理的游戏和一个远程传输系统,允许玩家在游戏中到达不同地区(反过来,加载大量新的、不同的纹理)版本,会发生什么? 如果这个假设的游戏使用了几十个巨大的ASTC纹理呢?VRAM着火了!(塞尔达传说:王国之泪) 好吧,突然之间,我们开发的旧的且值得信赖的垃圾收集器不再能够保持8GB GPU的工作。 没错,影响PC游戏行业的VRAM饥饿也伤害了柚子。 必须进行重大更改,并且必须允许2GB GPU仍然以某种方式兼容。您的作家的VRAM测试塔。GTX 750 2GB、RX 550 2GB 和 RX 6600 8GB。未附图,GTX 1650 4GB,GTX 1660 SUPER 6GB和RTX 3060 Ti 8GB 该解决方案经过多次尝试,被分成几个部分,以确保没有其他游戏受到更改的负面影响,并且需要Maide,byte[]和Blinkhawk的共同努力。 在调查非常低的VRAM设备时,byte[]发现yuzu在Vulkan内存分配器处于压力下时使用了不兼容的内存属性标志,导致低VRAMGPU在尝试实际使用回收分配时崩溃。 拥有更多的VRAM当然有帮助,但这还不足以避免游戏在压力条件下(例如,在不同区域之间传送)咬掉超过GPU内存所能咀嚼的内存。 以前,如果VRAM几乎已满,内存管理器将尝试使用共享内存(仅是系统RAM的一部分)进行新的分配。 这在游戏过程中导致速度大幅下降,因为通过系统 RAM、CPU、PCIe、GPU 和最终 VRAM 的传输操作是一个缓慢的过程,引入了高延迟。 在VRAM中收集内存比将数据传输到系统RAM要快得多。 因此,内存管理器(Reaper)现在将所有内容保存在专用内存(VRAM)中,而不是依赖缓慢的共享内存,从而留出一些可用空间来适应加载新资产时VRAM使用量的突然峰值。 如果您在系统中看到 2GB 或更多始终免费的 VRAM,请知道它的目的是保持游戏流畅,即使在 4GB GPU 上也是如此。 别担心,我们不会浪费您宝贵的 VRAM。我们只是在您需要时保持温暖和舒适。 这也具有节省系统RAM消耗的额外好处,使8GB RAM用户拥有更稳定的游戏玩法。 所有这些还不足以让4GB VRAM或更少的用户获得稳定的游戏玩法,所以是时候揭开柚子袖子上的王牌了。 如果模拟器不再依赖于像素精确但更大的纹理格式,而是重新压缩为其他一些较小的格式,该怎么办?RGBA8 女士们,先生们,我们向您展示了一个可用的新选项,旨在通过将那些被Ganon诅咒的不受支持的ASTC纹理转换为更适合低VRAMGPU的纹理来减少VRAM消耗。ASTC recompressionEmulation > Configure > Graphics > Advanced我们建议尽可能避免使用BC1。 原理非常简单,我们只是在重新压缩过程中再添加一个步骤,从 ASTC > RGBA8,到 ASTC > RGBA8 > BC1 或 BC3。 默认设置使用旧方法,该方法保留了原始图像质量,但也消耗了最多的 VRAM。 对于希望 模拟 ,如果他们的 GPU 至少有 10-12GB 的 VRAM,我们建议设置此选项。 对于其他更合理的游戏,此选项适用于拥有至少 4GB VRAM 卡的用户。UncompressedRGBA8Tears of the Kingdom 该设置将 ASTC 纹理的 VRAM 使用量减少了四倍,质量损失非常小,通常显示为稍微柔和的纹理。 建议在 6GB 和 8GB GPU 上模拟此设置。 对于其他游戏,此设置适用于具有 3GB VRAM 的 GPU。BC3 (medium quality)Tears of the Kingdom 最后,该设置将VRAM消耗减少了八倍,但也会对纹理质量产生重大影响,以至于某些资源看起来完全不同。 除非确实有必要,否则我们不建议使用此设置。 它允许拥有4GB VRAM的用户在没有重大问题的情况下玩游戏,并使2GB用户在其他游戏中获得更流畅,更可靠的体验。BC1 (low quality)Tears of the Kingdom从头到尾,BC1 vs BC3 vs ASTC(火焰纹章交战) 如您所见,BC1 在某些游戏中会破坏图像质量。从头到尾,BC1 vs BC3 vs ASTC(塞尔达传说:王国之泪) 但在其他情况下,差异不太明显。 如果您只有2GB的VRAM和8GB的RAM,那么牺牲可能是值得的。 这目前是使用 CPU 完成的,但计划在未来进行 GPU 加速。 我们还希望在未来添加一个使用 BC7 的选项,以提供更高质量的体验。 请记住,ASTC重新压缩仅适用于ASTC纹理,因此实际的VRAM使用量减少将取决于游戏。并非VRAM中持有的每个资源都是ASTC的。 如果您的硬件可以本机处理 ASTC,则此设置不会为您执行任何操作,因为无需任何重新压缩。 此外,byte[] 还调整了内存管理器,使其更加无情。 此更改应有助于提高在 RAM 较少的系统上长时间会话期间的游戏稳定性。 柚子始终致力于在具有专用GPU的系统上支持至少8GB的RAM。 他还确保在配置步骤期间不会发生内存收集,这样它就不会导致设备丢失(即 GPU 驱动程序关闭)。 通过修复切片上的块深度调整,Blinkhawk 解决了影响地形上阴暗纹理的渲染问题,这个错误在低 VRAM 硬件上尤其令人沮丧。Tears of the Kingdom 让我们不要让阴郁感到沮丧...(塞尔达传说:王国之泪) 对于具有 16GB 或更少系统 RAM 的集成 GPU 用户,例如 Steam Deck,新手 scorpion81 为您提供了款待。将硬上限设置为 4GB 可以播放,而不会太用力地撞击页面文件/交换。Tears of the Kingdom 配备2GB的GTX 750(塞尔达传说:王国之泪)的差异 以上总结了对内存管理所做的更改列表,以允许至少在我们的硬件要求中列出的组件中播放。Tears of the Kingdom 如果 GPU 仅支持 ASTC 纹理,则不需要进行这些更改。 难道你不希望你的游戏不超过100GB,而不是拥有破坏图像质量的软件功能,比如帧生成吗? 本机ASTC解码支持将使这成为可能。 英特尔锐炬 Xe iGPU 可以在手持模式下以 30 FPS 的速度运行游戏,同时使用的内存比任何其他硬件组合都少,这一切都归功于他们最后一个能够解码 ASTC 的 GPU。 稍后将详细介绍英特尔的驱动程序支持。我们需要更深入!(塞尔达传说:王国之泪) 这是最糟糕的部分...到目前为止。需要做更多的工作才能使游戏正确启动和渲染。让我们深入了解一下。 Switch和Android设备的共同点是它们呈现在屏幕上的方式。 Google的操作系统使用(唯一好的Linux演示方法),而Switch使用,这是为Switch的固件和操作系统设计的定制改编。 虽然这为我们提供了一个很好的参考框架,说明应该如何模拟,但有时错误仍然会潜入。 这些错误并不总是很容易发现,特别是如果到目前为止没有游戏存在渲染问题。SurfaceFlingernvnflingerSurfaceFlingernvnflinger byte[] 意识到 yuzu 错误地序列化绑定器响应(与 Android 的方式不同)。 修复这个允许启动的简单错误。Tears of the Kingdom 同时,Maide 实现了 Kristijan1001 建议的着色器修复,解决了 The Deeps 中云闪烁和缺少几何体的问题。你的GPU很好,它只是软件。(塞尔达传说:王国之泪) 接下来是一个只影响基础游戏的错误。后续更新不受影响,因为它们以不同的顺序呈现。加农喜欢录制林克...(塞尔达传说:王国之泪) 右侧这个神秘的红点是由于清除时错误地跟踪呈现器目标索引引起的。 由于Maide所做的一些行为改变,Link不再被监视。 游戏发布后,一些用户报告说,游戏存档文件中的日期始终设置为 1 年 1970 月 <> 日。 在检查了 Switch 的行为后,byte[] 实施了一些更改,通过更新的服务实现解决了这个问题,该服务实现允许以纳秒为单位计算时间,自动调整时钟偏差,并使用与系统稳定时钟相同的时钟源。 还有报告称,在使用 2X 分辨率缩放因子时会出现图形故障:切换武器后,链接和地形纹理会损坏。打乱的纹理。(塞尔达传说:王国之泪) Blinkhawk 很快找到了这个问题的原因:在缓冲区缓存中负责同步的代码中执行了错误的清除。一些调整,游戏可以在缩放时安全地玩。 对于Linux AMD用户,尤其是那些没有使用最新Mesa RADV Vulkan驱动程序版本的用户,byte[]发现动态深度钳位的功能之一在驱动程序中实现不正确,导致游戏中某些说明性时刻的顶点爆炸。VK_EXT_extended_dynamic_state3 哦,有顶点...(塞尔达传说:王国之泪) 禁用受影响驱动程序版本及更早版本的功能可解决此问题。 另一个已发现的问题影响了Ultrahand技能的光线投射,旨在帮助玩家定位物体。 绿色光芒具有像素化的外观,这是由于附件反馈回路上缺少屏障造成的。 绿灯侠手。(塞尔达传说:王国之泪) 敲了几下键盘后,byte[]因羡慕而变绿。 在奇怪的渲染问题列表中,下一个是影响摄像机变化的问题 - 例如,与NPC交谈或用弓瞄准/投掷武器时。 玩家面前的大片区域会变黑一帧,然后恢复正常。 不用说,这非常分散注意力。 一把被诅咒的弓,它试图带你去暗影领域!(塞尔达传说:王国之泪) 此错误是由纹理缓存处理别名和重叠的方式引起的,这些别名和重叠的顺序错误并导致同步问题。 经过 Blinkhawk 和 byte[] 的几次尝试,这个问题终于得到了解决。 在调查与 相关的错误时,还发现了隐藏在代码中 3 年的复制粘贴错误。 在着色器重新编译代码中,罗德里戈将错误的值从一行复制到下一行。 这是另一个有趣的案例,直到现在问题才成为问题,因为直到塞尔达需要再次救援之前没有人注意到这个错误...... 通过更改单个字符,byte[]解决了可以从整个地图的远处发现的地形间隙,但在The Deeps中最为明显。Tears of the Kingdom 还有什么比《深渊》更深?(塞尔达传说:王国之泪) 在一个需要UI设置来改善游戏渲染的有趣案例中,byte[]添加了一个选项来清理游戏的缓存存储,当右键单击柚子游戏列表中的游戏时,可以从菜单中访问该选项。Remove观看游戏实时重建图像很有趣。
Yuzu进展报告2023年4月【edge浏览器机翻】 你好,余星人!本月的个人变化较少,但所做的更改是实质性的!你不会想错过这个。 可怜的梅利亚在那里。 YFC 项目 1.90! 一个周末,Blinkhawk 出现并问道:“想要在正常 GPU 精度上测试性能提升 50% 和近乎完美的渲染吗? 这正是我们所做的。 此更改的更准确名称是“缓冲区缓存重写的重写”,也许简称 rBCR?从本质上讲,Blinkhawk重写了Rodrigo两年前引入的大部分旧缓冲区缓存更改,同时考虑到了最近游戏的新需求以及原始BCR发现的问题。 部分工作还涉及: 允许在单独的线程中验证屏蔽和异步下载的写入 通过跳过主机-来宾围栏同步而不在主机条件渲染上下载以实现正常 GPU 精度来重组准确性的管理方式 提高异步下载的一致性Query Cache 结果是惊人的。大多数过去需要高 GPU 精度才能正确渲染的游戏现在可以在正常上运行,没有任何问题。 此外,所有这些魔法都减少了带宽使用,并将每个人的性能提高了 87%(平均 50%),从低端 APU 到高端野兽。 以下是不完整的更改列表: 如前所述,许多需要高 GPU 精度才能在视觉上准确的游戏现在以最小的牺牲使用正常的 GPU 精度。 粒子和角色光照/阴影已修复为正常 GPU 精度。在正常 GPU 精度上,性能提高了多达 40%。Pokémon Sword & Shield 模型(例如 BowWow)和粒子渲染固定在 中的正常 GPU 精度上。在正确渲染的情况下,正常精度的性能现在比以前提高了 70%。The Legend of Zelda: Link's Awakening 照明已修复,不再闪烁。Diablo II: Resurrected 光源和阴影将不再随机闪烁。Luigi's Mansion 3 神奇宝贝照片检测和数据已固定在正常 GPU 精度上。这使得工作照片检测的性能提高了50%。New Pokémon Snap Kirby and the Forgotten Land顶点爆炸、光照和粒子已固定为正常 GPU 精度。这导致高达 40% 的性能提升,并以正常精度进行准确的渲染。 某些机器中的红灯已修复。Xenoblade Chronicles 2 Fire Emblem Warriors已准确修复,不再需要解决方法。 MONSTER HUNTER RISE现在以正常 GPU 精度准确渲染,性能提升高达 50%(但请注意,3.0.0 之后的更新仍然存在问题,需要更多工作)。 在正常 GPU 精度下不再发生顶点爆炸,导致性能提高高达 30%。Persona 5 Royal Atelier Ryza系列游戏现在可以正确呈现。 高级图形设置中的悲观刷新选项在它受益的任何受影响游戏中都不再需要,我们现在已经将其删除。 Mortal Kombat 11不再有任何顶点爆炸。 NieR:Automata The End of YoRHa Edition现在可以正确呈现。 Bayonetta 3不再需要高 GPU 精度即可正确渲染。 Splatoon 2的墨迹物理在 AMD GPU 上正常工作,同时使用高 GPU 精度。 中的粒子已修复,在正常 GPU 精度下,性能和准确渲染提高了 40%。The Legend of Zelda: Breath of the Wild 树闪烁已修复所有 GPU 精度选项。The Legend of Zelda: Breath of the Wild 还有很多很多! 无需启用任何选项即可利用所有这些,只需将 GPU 精度切换到正常(如果尚未切换)。你还在等什么? 以下是一些最受欢迎的游戏的一些统计数据。 我们比较了主线 1407 中的高 GPU 精度和主线 1421 中的正常 GPU 精度。 所有测试均以 2 倍分辨率缩放完成,并在可能的情况下使用 mod 禁用动态分辨率。硬件制造商为这种免费的性能提升而哭泣 然后我们有这四个,高FPS小队。他们有足够的理由考虑要求模组社区开始发布 240 个 FPS 模组!当您必须在上一代CPU上如此之快以至于需要第二个图形时 使用 Zen 4 3D V 缓存芯片,预计数字会更高。 例如,在 的同一测试点中,非 3D 7900X 获得 90 FPS。Breath of the Wild与当前出售的怪物相比,您作家的 PC 感觉就像一只蜗牛...... 其他图形更改 Citra传奇人物GPUCode挺身而出,帮助我们进行演示。演示是大多数图形代码的最后一步 - 将输出到屏幕的过程。 GPU 的工作将交换链操作移动到单独的线程,以避免停止主 GPU 线程。这提高了要求更高的游戏和低端硬件的性能,并且在许多情况下可以在勉强获得 60 帧和每秒获得流畅的 60 帧之间产生差异。 但是,它也会使帧时间不太一致,因此我们默认将其关闭以允许进一步测试。我们需要确定哪些系统和游戏受益最大。 对于那些有兴趣尝试的人,可以在 中找到切换开关。Emulation > Configure… > Graphics > Advanced > Enable asynchronous presentation (Vulkan only)与我们分享您的经验! vonchenplus 繼續致力於使代碼與 NVIDIA 在其最新文檔中公開的信息相匹配。 你可能还记得Wollnashorn在大修Vulkan管道缓存中的作用。 现在,Wollnashorn 为我们提供了一种绕过硬件限制的技术,以便在非 NVIDIA 硬件上准确渲染。The Legend of Zelda: Breath of the Wild 物体边缘,尤其是草叶,在AMD和Intel GPU上具有明显的黑色边框。 无论使用何种驱动程序,都会出现问题,因此这显然是硬件限制,并且与游戏预期不兼容。 使用一种称为延迟渲染的技术 - 在这种特殊情况下,阴影以一半的分辨率渲染。 全分辨率深度纹理的四个像素与 textureGather 调用同时采样。 具有使用纹理的规范化浮点坐标的特征,因此每个片段始终位于四个选定像素的边界处。The Legend of Zelda: Breath of the WildtextureGather四个特殊像素 现在,使用浮点,每个 GPU 设计将具有不同的舍入精度。 此外,多亏了 Nathan Reed 的博客,我们知道纹理上像素的整数坐标是由 GPU 在从浮点数转换为定点数后计算的。textureGather 由于涉及浮点转换,您也许能够知道这是怎么回事。 如果用户的GPU未使用与Nintendo Switch相同的舍入精度,则可以对不同的像素进行采样。因此,只有NVIDIA GPU获得了游戏预期的四个正确像素。 沃尔纳斯霍恩是如何解决这个问题的?当然,有一个聪明的小技巧。 向样本坐标添加非常小的 (1/512) 子像素偏移量足以使舍入变得模糊。 实现这一目标需要修改 SPIR-V 和 GLSL 后端的代码,改变目前仅针对 AMD 和 Intel 硬件的操作处理方式,并可以选择强制用于任何其他可能需要它的未来硬件,例如某个水果公司。 这是最终结果: 有趣的是,我们最终如何分享Cemu面临的相同问题(塞尔达传说:旷野之息) 我们必须提到的是,这并不能解决在AMD和Intel GPU中使用高于默认值的值时出现的非常相似的黑线问题。 这是一个单独的问题,我们建议红队和蓝队用户至少设置每场比赛的设置,以将其设置为仅默认。 无论如何,游戏并没有从更高的价值中受益,因为它的地形纹理似乎没有利用它。anisotropic filteringThe Legend of Zelda: Breath of the Wild 周围都是干净的外观(塞尔达传说:旷野之息) Linux 也得到了当之无愧的爱,这要归功于 byte[]。 首先,他修复了Wayland上Vulkan交换链的初始化,帮助Linux NVIDIA用户能够启动他们的游戏。 正如你们中的一些人可能知道的那样,NVIDIA 历来对 Wayland 的支持非常固执,大多数 Wayland 合成师自己也非常固执,这无济于事。 Linux 桌面之年,总是在拐角处... 其次,他修复了Flatpak用户试图玩游戏时发生的崩溃问题。 在用于大小估计的数组访问中可能会发生越界,从而导致“讨厌的东西”。 一个小的调整,问题就不复存在了。那里的拉取请求号码很好。Bayonetta 3 说到越界,Maide发现了一个有趣的案例,由于之前增加了偏移量,在角落采样中发生了。 不考虑此偏移会导致 2D 纹理块传输期间出现另一种越界情况。 修复此特殊情况解决了 中的景深渲染问题。Kirby Star Allies 噗!(柯比星盟) 仍然在燃烧,还有更多的工作要做,Blinkhawk并没有停止。 为了轻松,他决定重构 Accelerate DMA 的很大一部分,改为通过纹理缓存进行纹理下载。 结果是恢复了性能,并在旧的Y.F.C 1.75更改之前。 将 Y.F.C 1.90 的收益相加,您将成为低端系统的赢家!Pokémon Sword & ShieldHyrule Warriors: Age of Calamity 我们还有更多 Blinkhawk 实施的更改,但他们没有及时赶上进度报告的截止日期,因此我们将在下个月提及它们。 常规更改和设置术语表 模组社区要求我们允许更大的纹理模组。旧的 6GB 限制是不够的,因此 byte[] 将其扩展为支持自定义的 8GB 排列,将几乎所有限制都提供给模拟程序。 然而,这产生了不可预见的后果。 我们发现用户喜欢在不知道自己做什么的情况下启用设置。 令人震惊,对吧? 具有比普通开发控制台高得多的可用内存量会导致问题。例如,在收到几份关于神奇宝贝在玩游戏几分钟后未能重生的报告后,我们将更改范围缩小到启用了此设置的用户。Pokémon Scarlet & Violet 但是,此选项仅适用于非常大的纹理模组,除非您使用此类模组,否则不应启用。 不幸的是,打开它时它在柚子设置的第一页上,所以这是一个非常明显的设置。 此外,我们发现一些YouTube教程错误地暗示它可以提高性能和稳定性,用户也遵循了这一点。 这将导致浪费 4GB 的额外 RAM 没有任何好处,并可能导致游戏出现问题。 为了防止这种情况,我们建议阅读我们的新设置词汇表,该词汇表与我们的推荐设置页面一起,应该可以帮助用户了解每个设置的作用以及建议更改的内容。 此外,为了解决不查看我们官方频道的用户的问题,byte[] 将设置移动到选项卡底部,并重命名,确保没有以前的配置文件在没有用户干预的情况下再次启用它。 如果您确实需要扩展内存布局,请确保再次手动启用它。 或者不要,我们不会评判你...太多了。System 您已被降级为系统设置 用户报告说这不可玩。 Vonchenplus调查了原因,并在我们的音频仿真中找到了原因。 显然,游戏在 Switch 上实现其音频代码方面做得不是很好,并且无法初始化新的音频输出会话,这应该返回错误。 因此,正确返回此错误足以使游戏正常工作。IGS Classic Arcade Collection没有什么能比得上经典(IGS 经典街机系列) 我们的 LDN 用户可用的选项之一是能够创建私人房间,为主机提供多种选项来根据需要配置其服务器。 Twitchax 知道对于某些服务器主机,例如 ,需要自定义绑定地址。 他们实现了该功能,现在用户可以将参数传递给房间的配置。 谢谢!fly.io--bind-address Morph 继续致力于提高 CPU 时序精度,修复了原始 CPU 频率和 或 CNTFRQ 之间的混淆。 两者之间的区别在于 CNTFRQ 报告系统时钟的频率,而不是 CPU 频率。 在解决这个问题的同时,他还将测量计时信息所需的时间减少了约60%。Counter-timer Frequency 这对用户意味着什么? 甜蜜的 1-7% 性能提升。 输入更改 也称为德语77的部分。 您与游戏的交互方式可能比图形或音频更重要。毕竟,这是它与CG动画电影的区别。 按照现在的传统,我们亲爱的海妖一直致力于进一步改进柚子的输入模拟。 编写模拟器的很大一部分工作涉及逆向工程,因此他一直致力于使NFC服务与Switch内部的功能相匹配 - 在这种情况下,实现所有剩余的缺失接口,将它们与真正的控制台处于同一水平。 下一个变化是来自TAS工作的简单启示。 如果您实现虚拟控制器,它将不需要范围和死区设置,因为它几乎是完美的(对不起,不对不起)。 但并非所有工作都是由 german77 完成的,v1993 抓住了一个令人讨厌的小错误。 鼠标移动的运动仿真由 3D 矢量 (x, y, z) 处理。是的,惊喜数学课,处理它。 无论如何,柚子是这样做的: (x, y, z) = (x, y, z) + (1, 2, z) 这导致: (x + 1, y + 2, 2z) z 分量被错误地加倍了! 解决方案是改为执行以下操作: (x, y, z) = (x, y, z) + (1, 2, 0) 这给了我们: (x + 1, y + 2, z) 现在世界一切都好了。 对于那些喜欢使用键盘和鼠标获得 FPS 体验的人来说,这应该会提高鼠标运动的质量。 或者只是喜欢折磨自己。 硬件部分 用户在运行使用 Vulkan 的现代模拟器时面临的一个反复出现的问题是,如果程序崩溃,无法获得有用的反馈。 Vulkan非常挑剔。 中间的任何错误步骤都将拒绝启动,任何 Vulkan 层程序都可能导致这种情况。从过时的屏幕录像机到mod管理器,性能覆盖,甚至灾难代码主板供应商都称之为RGB软件。 特别令人讨厌的是Epic游戏商城的覆盖层,据报道,它会导致严重的性能问题。 在某种程度上,yuzu可以检测到这些问题并切换到OpenGL来避免它们,但这并不能告诉用户问题出在哪里。 我们最近发现了一个可爱的小程序,RPCS3社区已经使用了一段时间来诊断这些问题,VkDiag。 您可以在此处找到其最新版本。 该程序的作用是列出影响 Vulkan 渲染的所有相关组件和层,并警告其中任何一个的潜在问题。它已经过实战测试,过时的驱动程序和破损的层都在它的视线中 我们已经开始在我们的支持渠道中使用它,并取得了惊人的成功,我们建议自助服务用户将其保存在他们的工具包中。您永远不知道何时忘记更新的 OBS 安装会给您带来问题,或者何时 RGB 软件决定变得流氓。 英伟达,享受自动HDR 对于摇摆HDR显示器的Windows 11用户来说,这里有一些好消息。 前段时间,GitHub 用户 svonolfen 在我们的问题跟踪器中发现了一种有趣的方法,可以让 Auto HDR 与 NVIDIA GPU 配合使用。这是链接。通过将柚子重命名为“Cemu”并执行其他步骤,自动 HDR 突然起作用。不要介意西班牙人 塞穆确实获得了特权。 这仅适用于 NVIDIA Windows 驱动程序,因为至少目前只有 NVIDIA 控制面板提供了强制 DXGI 交换链的选项——有效地使 Vulkan 程序作为 Direct3D 程序呈现。 这有几个好处:自动HDR工作,大大改善动态范围,无边界优化应用于柚子,改善输入延迟和帧同步,并解决了G-Sync/Freesync问题。 它有一个值得一提的缺点,它可以比常规的 Vulkan 演示慢 5%。不要忘记相应地设置您的 NVIDIA 控制面板! 虽然这种有趣的重命名效果很好,但我们也从 Windows 预览体验成员用户那里听说,Xbox 游戏栏应用程序的未来版本将允许柚子在不进行任何重命名的情况下使用自动 HDR。 这很可能需要更新的 NVIDIA 驱动程序才能工作。 如果您拥有兼容 HDR 的显示器并想要比较结果,这里有一个默认 Windows 11 照片查看器可以打开的 .jxr HDR 捕获,以及一个可比.png本机 SDR 捕获。 您当然需要在显示器和 Windows 11 设置中启用 HDR 输出。 注意天空和灯的区别。 色调映射并不完美,但无论如何,我们永远不会让 Switch 游戏输出原生 HDR。 您的作家没有调光区的简单HDR400显示器足以注意到其好处,因此这是您说服父母/妻子购买您已经关注了数周的OLED显示器的借口。塞尔达。在 HDR 中。 可以在柚子中实现 Vulkan 扩展,以获得对任何 GPU 的全球支持。 你可以肯定,我会唠叨我们的 GPU 开发人员,直到它被添加。 AMD 兑现承诺 上个月,我们提到AMD引入了一种回归,导致某些游戏的图形损坏和崩溃。 我们很高兴地宣布,自驱动程序版本 23.4.2 及更高版本以来,Vega 及更高版本的问题已得到解决,允许 Radeon Windows 用户充分受益于最新驱动程序支持的新 Vulkan 扩展,从而将着色器构建卡顿降至最低。 正如AMD所承诺的那样,除了... 北极星(RX 400/500系列)卡在某些极少数情况下可能仍然不稳定,但修复程序应该不会花太长时间出现。 与此同时,北极星用户应该坚持使用驱动程序23.3.1,除非他们想面对这样的结果:您的整个桌面看起来像这样 在另一个主题上,我们向AMD报告了我们怀疑是Pentelas地区顶点爆炸的原因,这也影响了其新扩展中的初始区域。Xenoblade Chronicles 3Future Redeemed那是水执行所有顶点爆炸之母(异度之刃编年史3) 由于这个问题不分青红皂白地影响了官方的AMD和Mesa驱动程序,我们怀疑这是一个硬件限制 - 可能是缺乏对D24深度格式的支持,许多游戏都使用D<>深度格式(包括Xenoblade游戏),以及NVIDIA和英特尔的支持。这就是硬件限制的样子 英特尔。。。 正如我们之前报道的那样,Intel Windows Vulkan驱动程序不稳定。 SPIR-V 编译器(处理 Vulkan 管道着色器的部分)在处理计算着色器和某些特定着色器指令时可能会崩溃。 我们发现了一种情况,即在开关块中编译具有 5 个以上案例的着色器时,驱动程序崩溃,或者相同条件的 if-else 块超过 5 个。 也许优化出错了?如果取消注释掉最后两种情况,驱动程序将崩溃 六个月前,我们向英特尔报告了这次崩溃,他们本月的回复是: 感谢您报告此问题。我们的首要任务是定位最受欢迎的游戏和应用,集中精力为最广泛的用户群提供高质量、稳定的体验。我们将在 2023 年及以后继续提高软件性能和兼容性。 因此,即使在提供测试用例后等待六个月,原因解释,甚至在指出驱动程序中发生崩溃的位置之后,英特尔也无法找到时间来解决问题。 这是某种扭曲的笑话。 相比之下,当您与 NVIDIA 合作时,他们会雇用您。 我们别无选择,只能尽可能减轻崩溃。 为此,Morph 完全禁用了英特尔 Windows 驱动程序的计算着色器,确保像这样的游戏仍然可以启动 - 即使它们因此会出现游戏问题。The Legend of Zelda: Breath of the Wild 这不足以解决所有崩溃问题。一些游戏,如仍然会使着色器编译器崩溃。我们尚未诊断出这一点,但相信它可能与我们已经报告的同一问题密切相关。Xenoblade Chronicles 3 禁用计算着色器会对某些游戏产生这种可爱的副作用,例如:Super Smash Bros. Ultimate这就是当我们被迫删除整个管道阶段时发生的事情,英特尔(Super Smash Bros. Ultimate)。 对于那些喜欢在英特尔Windows驱动程序上正确渲染,可以容忍随机崩溃,并且不想只使用实际工作的Linux Mesa驱动程序的人来说,Mainline 1414是目前支持计算着色器的最后一个版本。 我们正在努力添加一个可以为每个游戏配置的切换开关。 但是等等,还有更多,乐趣并不止于此。 Reddit用户发现,在Windows 12上运行的英特尔第13代和第11代CPU的帧时间明显比在Windows 10上运行的相同硬件差。EA对此会怎么说 因此,如果您在玩游戏时发现卡顿,解决方案可能非常简单:执行干净的 Windows 10 安装! 未来项目 因此,部分发布得到了回报。 Blinkhawk正在研究它的最后一部分,其中包括GPU精度设置的重组,以及其他一些惊喜。 敬请关注。Project Y.F.C 您很快就会听到有关新闻的消息!Project Lime 这就是所有人!感谢您阅读到最后,没有什么能让我们更快乐。
Yuzu进展报告2023年3月【edge浏览器机翻】 嗨,你们好!我们一直像往常一样努力工作,今年 3 月在性能、图形、音频、CPU 精度、输入等方面都有所改进! 使CPU与BRRRR相反 本月最大的变化之一是CPU准确性的一系列改进。 这需要一些回溯,所以让我们倒带一点。 早在 7 月,我们就解释了如何使用主机计时器以当前形式运行。 调用的线程用于处理 HLE 事件,例如输入和音频。 但是,其中一些事件(如音频)需要高水平的计时器精度才能按照游戏预期的方式运行,这比 Windows 通常允许的要高。CoreTimingHostTiming 默认情况下,Windows 仅允许 1 毫秒的精度,因为操作系统事件循环以 1000Hz 运行。 这还不够。 但是,运行Linux,BSD和MacOS的设备不会面临此限制,并且可以达到μs(微秒)级别的精度。 如果游戏想要以 16.67 毫秒(60 FPS)的帧时间运行,你可以等待 17 毫秒的三分之二时间,等待 16 毫秒剩下的三分之一时间,但这在过去已经被证明对音频准确性来说是可怕的。 另一种,也是用于Windows的旧方法是等待16ms并繁忙等待0.67ms。 在这 0.67 毫秒期间,CPU 线程没有做任何事情,并且在没有实际工作的情况下消耗功率。 这是删除对Windows 7和8 / 8.1的支持的好处。 Windows 10 SDK具有新的未记录的功能,并且可以将计时器分辨率提高到0.5ms。 这允许柚子等待 16.5 毫秒,只旋转剩余的 0.17 毫秒,比以前的默认方法短四倍。NtSetTimerResolutionNtDelayExecution 通过实现这些新功能,Morph 减少了 CPU 在旋转锁中花费的时间,从而降低了时序繁重的游戏(如 Kirby Forgor 💀) 等 CPU 使用率。 新的免费资源意味着低内核数 CPU(如四核)以及功率预算有限的系统(如笔记本电脑和手持设备)具有更好的性能。 通过这一变化,我们测得 CPU 使用或功耗降低了 24%,具体取决于限制因素。Kirby and the Forgotten LandSuper Smash Bros. Ultimate左:旧的 1ms 精度;右:电流精度为0.5ms。结果来自您的作家的笔记本电脑,该笔记本电脑运行单语言Windows安装,所以不要介意西班牙语。请注意,两个结果之间的 CPU 使用率存在差异 如果可以在相同的功率范围内执行更多任务,则可以在不牺牲电池寿命的情况下提高性能。 或者,模拟器的更常见方案是,如果天花板是固定帧速率,则可以降低温度。这就是为什么笔记本电脑中的膝盖是谎言,请注意包装温度(异度之刃编年史 3) 用户报告说,由于计时器精度的提高,游戏的音频卡顿更少。 Windows 10 SDK添加的另一个不错的工具是允许我们将yuzu设置为一个进程,向Windows调度程序暗示,如果有更高性能的内核可用,它们应该优先考虑。 这通过建议使用 CCX 的最佳内核进一步提高了当前锐龙 CPU 的性能,对于英特尔第 12 代及更高版本,通过优先考虑 P 内核(“性能内核”,普通内核),进一步提高了性能。HighQoS 强烈建议使芯片组驱动程序保持最新,以充分利用您的硬件。 如果 CPU 以更高效的方式运行,我们如何走得更远? 好吧,Morph认为下一步是改进CPU计算时间本身的方式! 在使用 x86 体系结构的现代 CPU 上,固定计时器是使用 RDTSC 指令获取的。 RDTSC的事情是...它在较长时间内是不准确的。 它不能在多核处理器上。 RDTSC提供的最佳估计值与实际现实之间的微小差异会导致游戏的时间漂移,例如。 您可能会注意到这个问题将其丑陋的头显示为不准确的比赛时间。 英特尔第 12 代是我们测量的受影响最大的 CPU 架构(也是在 <> 月份),每分钟差一秒。Super Smash Bros. Ultimate Morph 对此问题的解决方案是生成一个额外的线程,其任务是对 TSC 进行两次测量 10 秒,然后取该差异并应用它来了解在前 10 秒内通过了多少实际即时报价。 如果然后将时钟周期数除以 10,则会得到主机 RDTSC 计时器运行的确切频率。好在我们不必为此使用旧秒表(超级粉碎兄弟终极版) 结果是,在锐龙和英特尔第 11 代及更早的系统上几乎是完美的时序,在第 12 代桤木湖系统上几乎是完美的时序。 对于这个特定的应用程序来说,在 CPU 内部同时计算时间的完全不同的内核并不漂亮。 我们无法击败英特尔设计的混合不对称性质,但我们设法将漂移从每分钟一秒减少到每 5 分钟一秒左右。 “好吧,这很好”Morph说,但你怎么能更深入呢? 剩下的唯一选择是下降到组装。 有问题的优化目前仅适用于第 12 代及更新的英特尔 CPU;AMD尚未添加对它的支持。 我们正在谈论 TPAUSE(CPUID 名称),这是 Team Blue 的新指令,它允许 CPU 进入低功耗状态并空闲,直到经过精确的时间。WAITPKG 需要进行一些测试以指定等待期的正确周期数;错误的值会在一个极端过度降低精度,或者在另一个极端不会产生任何好处。 100000 个周期是 Morph 测试中的神奇数字,除了之前的好处之外,它还将 CPU 使用/功耗降低了多达 20%。 如果只有英特尔 GPU 驱动程序可以工作,他们配备 Xe 的笔记本电脑/掌上电脑现在将成为非常可行的柚子游戏机...... 哦,好吧,运行 NVIDIA 或 AMD 实际工作 GPU 驱动程序的第 12/13 代用户将从所有这些工作中受益匪浅。 图形更改 CPU的改进就足够了。图形呢? 好吧,我们有很多话要谈。 用户报告了有趣的色带。Maide深入研究了这个问题,并确定了颜色格式的罪魁祸首,例如和。 通过一些试验和错误,以及来自伟大章程(来自Skyline模拟器)的一些大帮助,Maide设法解决了问题,在不破坏其他游戏的情况下提供了准确的显色性。STORY OF SEASONS: A Wonderful LifeS8_UINTD32_FLOAT_S8_UINTS8_UINT_D24_UNORM 现在,您可以享受这款具有所有鲜艳色调的农业模拟器,而不必担心色带。这不是哞哞唱吗?(四季物语:精彩人生) Epicboy 再次推出他的忍者更新。这一次,他给仍然蓬勃发展的OpenGL团伙带来了一些爱,带来了我们在上一份报告中讨论过的AccelerateDMA的所有好东西。 这意味着OpenGL用户,特别是那些使用费米和开普勒GPU的用户,可以享受这种伪Y.F.C的速度提升。2.改变,使游戏等运行得更快。 再也不用等萨穆斯装填她的臂炮了。Metroid Prime Remastered 我们强烈建议没有良好 Vulkan 支持的旧硬件用户升级到更新的硬件,因为对 OpenGL 的支持即将结束。话虽如此,多亏了epicboy,那些无法升级的人不会在使用旧的但黄金的OpenGL API时遭受糟糕的性能。 但这还不是全部,epicboy还增加了一个优化,略微提高了性能。 您的作者观察到性能提高了 3-5%,这是为数不多的在具有 NVIDIA 硬件的 OpenGL 上运行速度更快的游戏之一,如果您忽略着色器卡顿。GL_SYNC_STATUSThe Legend of Zelda: Breath of the Wild在游戏中最重的地方之一从 54 到 57 FPS,OpenGL 仍然有生命力!目前...(塞尔达传说:旷野之息) 章程再次出手相救,指出我们旧的 Vulkan 调度程序实现在去年 10 月有一些回归,当时 byte[] 致力于使自制应用程序与 Vulkan 一起工作。 这意味着游戏和自制软件在开始渲染之前必须等待帧显示在屏幕上,这在某些情况下是反馈循环的最坏情况的坏例子。 通过在后台等待队列被清空而不必等待帧呈现,byte[] 修复了回归。 谢谢章程! 还记得我们上个月谈到的那个可爱的游戏吗?适合所有年龄段的!与家人一起玩完全安全。 Vonchenplus决定让它变得可玩,这样世界各地的Weebs玩家就可以享受到惊人的游戏玩法,通过修复柚子处理内联索引和绘制纹理命令的一些错误。Moero Crystal H文化游戏(莫埃罗水晶H) Steam Deck最近的系统更新搞砸了许多游戏中的图形。罪魁祸首?一些问题,帮助减少着色器构建卡顿的 Vulkan 扩展之一。VK_EXT_extended_dynamic_state3 柚子期待 NVIDIA 驱动程序行为的结合,以及 Deck 上最新 Mesa 实现的差异导致了您接下来看到的情况:看起来像有人在屏幕上洒了一些油漆(塞尔达传说:荒野之息) byte[] 暂时禁用了导致问题的功能,但我们将来会重新考虑再次打开它,因为 Mesa 很可能已经解决了这些问题。 这里有几个针对异度之刃粉丝的重要修复,Maide 花了很多时间研究。 由于采样器中的 sRGB 边框颜色转换问题,着色器在游戏中被破坏。 这是一个将颜色从一个颜色空间转换为另一个颜色空间的过程。 这将导致不准确,使受影响的着色器上的某些检查失败,从而导致丢弃错误的像素作为阴影。 我们需要更多信息来充分理解这个问题,但就目前而言,忽略sRGB采样器上的色彩空间转换可以实现硬件精确的渲染。 雷克斯知道他的未来会怎样,眨眨眼(异度之刃编年史2) 另一个影响异度之刃三部曲(好吧,最终版和至少 2)的另一个长期存在的问题自传奇的纹理缓存重写以来一直困扰着柚子。 这是随机的“彩虹模式”,可以在游戏过程中的任何时候发生,或者在特定的游戏后期过场动画中,因为我不会剧透新玩家。 如果你在柚子中玩过,你就知道是哪一个。 这让你怀疑你是否在狂喜中。Xenoblade Chronicles 2某处,在(云)海之外!(异度之刃编年史2) 另一个观察到的问题是过度照明使整个场景无法阅读(特别是在夜间使用HDR显示屏,而不是令人愉快的突然闪光)。我的眼睛!(异度之刃编年史2) Maide 发现该问题是由于将新的来宾数据替换为环境照明立方体贴图中的过时主机数据引起的。 解决方案是仅按照缓冲区缓存重写的行为复制已标记为 GPU 修改的数据。 这不是2009年,我们不需要这么多的花朵,非常感谢(异度之刃编年史:最终版) 通过这些更改,影响《异度之刃编年史》传奇的图形问题很少,使其成为从头到尾在柚子上享受的绝佳选择。 然后你可以和你的作家一起辩论哪个女王是最好的。 由于此问题仅在过场动画第一次渲染时发生,因此我会使用错误报告图片作弊,咬我(异度之刃编年史 2) 新人rschlaikjer,我希望我说得对,一直在深入挖掘纹理缓存,试图弄清楚为什么像简单的视觉小说在改变场景时会卡顿。 也许是因为游戏太情绪化,模拟器无法处理。Tsukihime -A Piece of Blue Glass Moon- 罪魁祸首是捕获 GPU 页表时缺少引用运算符,导致表每秒被一遍又一遍地复制数千次。这会让任何人口吃,更不用说模拟器了。将捕获转换为引用解决了这个问题,它也可能解决其他游戏中的类似问题。 我们很高兴rschlaikjer在它失控之前抓住了这个错误。我们不想像那把椅子一样结束。 用户界面更改 有些问题是如此难以捉摸,以至于多年来一直没有引起人们的注意。有些问题非常复杂,需要深入了解所涉及的所有层才能找到正确的解决方案。他们让许多放弃的开发人员感到沮丧,希望其他人会有更好的运气。 有些问题简直是愚蠢的。就像游戏因默认用户配置文件损坏而崩溃一样。 German77 为数十款游戏中的崩溃找到了一个简单的修复方法:将默认个人资料图片设置为真实的 32x32 分辨率而不是0x0。 就是这样。 继续致力于UI改进,german77 还将最后一个音频设置移到了它所属的音频部分。不再为此选项在一般情况下徘徊。Mute audio when in background 良好,适当的顺序 下一个是UX(用户体验)的一个很大的改进,对我个人来说是一个巨大的安慰。 以前,在使用每游戏控制器配置文件时,如果在开始游戏之前忘记更改输入设置,则会在游戏关闭时丢失它们,下次必须重新设置它们。 Epicboy修复了这个烦人的问题,German77合并了这些更改。 非常感谢您的修复程序。 German77 也在努力改进配置文件选择小程序。 当前的变化只是一个开始,我们将在未来为您提供最新进展。 输入改进 让我们谈谈输入,德国77继续闪耀的地方。 由于不满意游戏时的鼠标和键盘体验,German77 将默认鼠标灵敏度设置为 50%,并删除了平滑过滤器,在获得银河战士粉丝的宝贵反馈后,提高了高 DPI 游戏鼠标的性能。 他还降低了运动阈值,钳制了转速,并累积了所有输入直到交付,从而修复了先前实现的延迟和断断续续。Metroid Prime Remastered你有没有注意到萨穆斯缺乏领先指标?她的西装不能为此多一点处理能力吗?(银河战士总理重制版) 由于这些变化,表明它可能是一款出色的 PC 游戏。要是任天堂能把它放出地牢就好了。Metroid Prime Remastered 我们得到的一个常见问题是“这个第三方交换机控制器可以工作吗? 简短的回答是也许,但长答案有点复杂。 根据任天堂的API,Joy-Cons有两种模式:主动和被动。 官方 Joy-Con 使用主动模式,但某些第三方控制器使用被动模式,通常是因为它们没有正确遵循 API,并且不支持任何配置命令。 它们只是使用默认设置运行,无论好坏。 这并不意味着被动控制器毫无用处。他们仍然在交换机上工作。但这确实意味着它们的工作方式不同。主动控制器每 15 毫秒更新一次其状态,而被动控制器仅在发生某些事情(例如按下或松开按钮)时才更新。 好吧,事实证明,柚子直到现在才支持被动模式!所以 german77 的更改让很多第三方控制器用户感到高兴。 考虑到有多少非官方控制器,这非常方便。 与振动的战斗还在继续! 在进行常规研究时,german77 发现,如果您有多个玩家使用相同类型的控制器,或者如果您使用带有单个控制器的双 Joy-Con 设置,您最终可能会连续向同一个控制器发送两个振动命令。 这可能很烦人,并且还会占用蓝牙连接的有限带宽。 解决方案很简单:只获取每个控制器的冷振动队列中的最新元素,检查控制器是否可以处理请求的振动,并忽略其余元素。 我们都喜欢生活质量的变化,对吧?即使它们不是很华丽。 让我们谈谈 ,它负责在游戏请求时要求玩家选择他们的输入设置。 到目前为止,小程序是不可跳过的;您必须给出有效的答案才能继续游戏。 虽然这还过得去,但它很麻烦且不准确。 有些游戏会回到上一个菜单,而不是在玩家无法或不会确认其输入风格时陷入无限循环。Controller Applet你会过去的! German77 解决了这种行为,同时也解决了玩家数量不正确的错误。 德国77实施了...等等,让我先喘口气,服务电话。 他实现了它,希望使可玩性,但不幸的是,还有更多问题。SetNpadJoyAssignmentModeSingleWithDestinationLet’s Get Fit 将话题转移到Amiibo支持,这个月发生了很多事情。 首先,German77设法编写了正确的CRC,使柚子写入的Amiibo数据与Switch兼容;不再有无效信息。 接下来,如果您在扫描Amiibo时尝试连接控制器,则无法识别该控制器。通过说明这一点并初始化或最终确定控制器,他解决了这个问题。 最后但并非最不重要的一点是,为了结束 Amiibo 传奇,德国谢尔曼赫尔曼添加了对普通 Amiibo 文件的支持。 一些 Amiibos,例如以 为主题的 ,可以在不需要键的情况下进行编辑。现在,柚子可以正确读取您的 Amiibos 中的非加密游戏数据!Super Smash Bros. Ultimate 音频修复 Maide 设法发现了混响预延迟线读取方式中的一个错误,导致输出出现问题。 通过输入而不是输出正确读取来解决问题,可以得到像正确音频这样的游戏。 现在,您可以在没有任何回声的情况下享受马里奥的声音。妈妈咪呀!New Super Mario Bros. U Deluxe Bylaws 一直在深入研究音频同步,在这里和那里改进代码库,并通过将客人样本跟踪链接到主机来设法避免停滞。 此更改导致一些回归,因为某些游戏对音频调度要求非常敏感。 用户报告合并后出现爆裂声,因此章程通过在样本计数报告中增加恒定的 15 毫秒延迟来改善这种情况。 其他代码更改 《火焰之纹章》的粉丝们在游戏中一直遇到冻结,经过一番调查,Morph 发现罪魁祸首是有界的线程安全队列,这是由 behunin 的拉取请求引入的。 队列的工作是将事件从事件生产者(如 CPU 内核)传递到事件使用者(如 GPU 线程)。 behunin 替换的先前实现不断分配和释放内存,导致周期性延迟峰值。 解决此问题的方法是将队列转换为有界队列,这意味着不需要内存分配,因为有固定数量的可用资源。 这就是behunin所做的,但新的队列实现似乎有问题。 Morph 添加了简化的实现,修复了新的游戏卡顿影响和 .Fire Emblem: Three HousesFire Emblem Engage 继上次对 Windows 所做的更改之后,您的编写器为 GCC 构建重新启用了 LTO,但仅将优化应用于核心和video_core子项目,从而为 Linux 用户提供了不错的免费性能提升。 硬件部分AMD 23.3.2 及更高版本的驱动程序 一个坏消息和两个好消息。 从积极的方面来说,AMD终于在其最新的Windows驱动程序版本中增加了对缺少的动态状态扩展的支持,这改善了着色器构建时间并减少了Radeon GPU上的卡顿,使它们的性能与NVIDIA相当。 但是,从不利的一面来看,此驱动程序更新还引入了严重的回归:这可能会影响您的整个桌面(银河战士Prime重制版) 某些游戏(例如 和 )会触发似乎是越界崩溃的情况,从而导致桌面损坏和驱动程序崩溃。 我们建议用户暂时使用驱动程序版本 23.3.1 或更早版本。一些较旧的 Radeon 卡也可能受益于使用 23.2.2。Metroid Prime RemasteredPokémon Legends: Arceus 我们向 AMD 报告了此问题,他们立即确认、重现,并通知我们他们正在努力修复。 现在这就是您提供客户支持的方式。 说到这里... 做英特尔的工作 在测试我们将在下个月讨论的关键渲染修复时,Morph 进行了一些功能测试,以调查是什么让英特尔 Windows 驱动程序运行得如此糟糕。The Legend of Zelda: Breath of the Wild 他的发现既令人意料之中,又令人失望。 大约 95% 的崩溃的罪魁祸首是驱动程序中的计算着色器阶段故障。 像我们过去对旧英特尔硬件所做的那样禁用计算着色器会使大多数游戏运行,但不是全部。 在 中打开菜单时,我们仍然不知道崩溃的原因。Xenoblade Chronicles 3 我们现在试图找出是什么触发了计算着色器像这样使驱动程序崩溃,但这也引发了一个困境。 我们应该自己修补这个问题,使游戏渲染变得更糟,让英特尔摆脱困境,还是我们应该让它坏掉,以便他们必须正确修复它? 在调查继续进行的同时,解决方案是使用可靠的Linux,或者避免购买仅依赖Intel GPU的硬件。叹息。 未来项目 我们甚至还没有过半,我已经对下一份进度报告中的内容感到兴奋。 开发人员着火了,他们不会很快停止。 Maide正在为Xenoblade系列进行更多改进,例如修复云层闪烁,修复粒子效果,以及影响整个传奇和其他一些游戏的纹理闪烁。 但是,这些修复是以性能为代价的,因此他需要另一位 GPU 开发人员的帮助来优化它们。 也许眨眼鹰可以伸出援手?Xenoblade Chronicles 2Xenoblade Chronicles 3 任天堂为发布Vulkan扩展的圣杯做出了贡献,VK_EXT_shader_object。 正如其依赖项所建议的那样,此扩展有望显着减少构建着色器所需的工作量,需要支持所有以前的动态状态扩展。 任天堂很可能打算将其用于其内部模拟器,也许是为了“向后兼容”。 无论如何,我们还有很多工作要做,以添加对此扩展的支持。 但足够了。让我们谈谈一些令人兴奋的项目。长笛增强 关于盖亚计划: 它仍在开发中。 哦,Project Lime处于发布候选状态,正在进行严格的内部测试。 这就是所有人!感谢您一直坚持到本进度报告结束。 感谢Bing Chat的可怕笑话。
Yuzu进展报告2023年2月【edge浏览器机翻】 你好,余星人!这个月,柚子的各个方面都发生了变化。我们在 GPU、内核、服务、输入、用户界面和体验、与驱动程序相关的咆哮等方面进行了改进! Y.F.C. 项目 1.75? 又一个月,又是一份YFC项目附录。介绍先前 1.5 版本中缺少的功能之一。 Blinkhawk为Switch的DMA引擎(或简称Accelerate DMA)实现了主机纹理下载加速。 DMA 加速通过让 GPU 处理纹理下载来减少大量开销,从而显著提高没有 CPU 瓶颈的游戏的性能。 过去,柚子通过主机的CPU和系统内存运行所有内容,滑动/取消滑动纹理的过程是主要任务。 现在,此过程是在GPU及其VRAM上完成的,从而节省了CPU周期,避免了将信息传输回系统内存,并使我们能够访问现代GPU视频内存中可用的超高带宽。 当您发现一款受益于更快纹理下载的游戏时,数字不言自明:瓶颈破坏者! 其他 GPU(和视频)更改 在介绍 GPU 仿真中的渲染更改之前,让我们介绍一下我们一段时间没有触及的东西:视频解码。 首先,vonchenplus提高了复制视频帧数据的速度。 也就是说,只要编译器注意到优化并使用它。 当它起作用时,这有一个额外的好处,那就是减少了开始播放视频所需的时间。 接下来,Maide 禁用了多帧解码,这导致了一帧延迟,使 Maide 还可以选择将解码器设置为使用所有可用的 CPU 线程。虽然大多数人对视频解码性能没有问题,但运行旧 GPU 的人,例如 AMD 北极星系列(RX 400/500 卡),将使用他们的 CPU 解码 VP9 视频,因为这些旧卡缺乏所需的硬件解码器。 诸如此类的游戏将通过这些更改提供更流畅的视频播放。The Legend of Zelda: Skyward Sword HD 好的,关于按顺序预渲染的2D帧已经足够了,那么真正的3D内容呢? 令人高兴的是,我们有一些话要谈。 Behunin回来了,优化代码。 有一个作业,只有一个作业,以使用其命令队列。 问题在于它还在生成命令以及使用它们。 通过摆脱这种不良行为,它又回到了仅使用命令的状态,为将来的更多修复开辟了道路。gpu_threadgpu_threadgpu_thread 即使在阴影中,epicboy仍然送给我们一些新玩具。真正的阴影中的杰出人物。 狂热的读者可能还记得,MSAA图像上传在Switch仿真中占有奇怪的位置。 交换机可以使用其本机NVN API做什么,以及我们可用的图形API(OpenGL和Vulkan)允许做什么之间存在冲突。 OpenGL和Vulkan对MSAA纹理上传和复制都非常严格,让epicboy只剩下唯一可用的工具。是的,你是对的!是时候使用计算着色器了! 打破规则以获得正确的渲染(声波力量) 这样,渲染是准确的。 请记住,这是仅适用于OpenGL的实现。 与往常一样,Vulkan 的工作要多得多,所以这是以后的功课。 在修复 Blinkhawk 缓存写入拉取请求中的回归影响(使用正常 GPU 精度时游戏会冻结)的同时,epicboy 还修复了缺少建筑几何形状的问题。Yoshi's Crafted WorldPokémon Scarlet/Violet并列JS 不再有鬼城(神奇宝贝猩红) 啊,ASTC,你们大多数人现在都知道挣扎了。 手机、平板电脑、Mac、Nintendo Switch 等移动设备原生支持这种非常压缩的纹理格式,但笔记本电脑/台式机/服务器 GPU 没有。 这使得 Switch 仿真社区难以缓解在不是为此类任务设计的硬件上解码这些纹理的缓慢过程的方法。 是的,即使是弱而过时的Switch在这项任务中也击败了RTX 4090。 打赌你的钱包对这个事实不满意。 到目前为止,柚子在这场战斗中的武器是多线程CPU解码,以及通过计算着色器进行GPU解码,这利用了现代GPU的巨大并行化能力。 这两种解决方案在解码时总是会出现卡顿,尤其是在过度使用大型 ASTC 纹理的新游戏中,例如 和 .Bayonetta 3Metroid Prime Remastered 好吧,epicboy 为我们的武器库增加了一种新武器,哦,男孩,它可以提供帮助。有代价。 异步 ASTC 纹理解码简介! 对于那些在游戏过程中喜欢零 ASTC 相关卡顿的人,这个新的切换使用后台线程在游戏渲染时解码 ASTC 纹理。 这种方法将消除卡顿,但代价是在纹理完成加载之前引入图形故障。 以下是异步解码与 16 线程 Ryzen 7 5800X3D(因此甚至不是线程数之王,对 CPU 解码最重要的)与 RTX 4090(目前消费者最大的商用计算怪物)的比较。 左侧是 GPU 计算着色器解码,右侧是异步 CPU 解码(星链) 如您所见,虽然异步解码的过程非常明显,但它比目前可用的最佳 GPU 快得多。 即使是 12 线程的 CPU 仍然可以在有史以来最密集的 ASTC 游戏中赢得一场飙车比赛。 具有较少线程数 CPU 的用户(如具有 8 个或更少线程的四核)可能需要计时其结果。ASTRAL CHAIN 您可以在 中找到该选项。 启用它还将覆盖选项卡中的设置。此设置使柚子使用 GPU,但启用将强制柚子始终使用 CPU 解码。因此,如果要改用 GPU 计算解码,请记住禁用异步 ASTC 解码。Emulation > Configure… > Graphics > Advanced > Decode ASTC textures asynchronously (Hack)Accelerate ASTC texture decodingGraphicsDecode ASTC textures asynchronously (Hack)我们建议低 CPU 线程用户坚持使用 GPU 解码 根据epicboy的说法,虽然异步GPU计算方法是可能的,但计算着色器的规则和限制阻碍了它的潜力,很可能使其几乎不比使用计算单元的常规GPU解码好。 如果 GPU 供应商正确地为其 GPU 添加本机 ASTC 支持,生活会轻松得多......你的记者很乐意把它放在无用的东西上,比如RGB、丑陋的塑料裹尸布或驱动程序DVD。 NVIDIA,AMD,请考虑添加原生ASTC支持。 这当然比生成带有恶心伪影的假帧更有用。 英特尔,您的 iGPU 中提供了出色的 ASTC 支持。 请考虑将其添加回 Arc 图形的未来版本。 Maide 一直致力于解决在 和 等游戏中发现的重叠纹理故障。 虽然这不是一个完美的解决方案,但重新添加(意外)移除的寄存器有助于缓解几乎任何相机角度(最倾斜的角度除外)的问题。The Legend of Zelda: Breath of the WildXenoblade Chronicles 3invalidate_texture_data_cache我们向您介绍:新型裂缝封口机!移动相机,裂缝消失了!(塞尔达传说:旷野之息) 根据地形的形状或摄像机角度,问题可能会再次浮出水面。 但作为临时解决方案,此更改使玩受影响的游戏更容易忍受。 工作还在继续! CPU、内核、服务和优化 Merry 将 dynarmic (我们的 JIT) 更新到 6.4.5 版,解决了一些问题并缩短了编译时间。 从中受益的一个游戏是,它的加载时间大大减少了。Taiko Risshiden V DX慢慢来(立志殿太鼓V DX) byte[] 也一直在深入内核代码。他的一项更改改进了 . 但是包装纸是什么?好吧,游戏和自制软件需要与内核通信,为此,它们使用 SVC 指令,这些指令充当与内核的接口。SVC wrappersmspaint 的回归 包装器的工作是将来自游戏的请求转换为对内核的C++调用,然后将内核中的结果带回游戏。 过去,柚子使用手动编写的包装器,这些包装器非常容易出错。通过此更改,byte[] 会自动生成所需的包装器。 此代码要准确得多,因此,如果您发现游戏不再崩溃或软锁定,这里是负责它的新代码。 一个这样的例子是第一次开始启动。Moero Crystal H不要判断,它是Switch库的一部分(Moero Crystal H) 该游戏需要更多的工作才能获得正确的视频和游戏渲染。 为了保持对准确性的追求,byte[] 还实现了服务的 HLE 多进程。 现在,服务不会将游戏的请求推送到服务,而是等待请求到达。 在大多数情况下,所有这些处理都是在交换机的模拟中完成的,而不是到处都是每个服务一个线程。 游戏通常只能访问 0 到 2 的内核,因此我们现在将最后一个内核专用于系统服务处理,就像实际的 Switch 操作系统一样!core 3 CPU仿真的这一部分是我们在硬件要求中建议至少6个内核的主要原因之一,4个用于交换机CPU的不间断仿真,以及用于其他进程和任务的额外内核。仅 4 核 CPU 通常会过载。HT / SMT可能会有所帮助,但这始终取决于任何给定时刻的工作负载。 如果内核已经饱和,则 SMT/HT 线程无法显著提高性能。 Bunnei也插话,修复了内存映射中的一个错误。我们错误地使用了(请耐心等待,这不是冗余)系统的系统资源跟踪,而不是在将程序加载到内存时依赖应用程序的资源跟踪。 大多数游戏对此都很宽容,但不喜欢它,每次用户尝试加载存档时都会卡住。 在这里和那里进行调整,回归现在已经消失了!FINAL FANTASY CRYSTAL CHRONICLES Remastered Edition现在随时推进游戏(最终幻想水晶编年史重制版) 新的神奇宝贝游戏更新,需要修复的新内容。 再一次,让我们头疼。Pokémon Scarlet/Violet 这一次,最近发布的更新 1.2.0 无法在 yuzu 上启动。经过一番调查,german77发现原因是某些蓝牙功能未正确实现,导致游戏在尝试启动安装的最新更新时崩溃。强制性主角座位(神奇宝贝猩红) 后来进行了一些代码更改,German77 修复了这个问题!现在任何人都可以享受减少的NPC数量和更短的抽奖距离。 甚至你的作家也试图伸出援手(强调尝试)。正如过去所报道的,我们申请了柚子的所有子项目。这意味着每个部分,如音频、输入、UI 等。在构建时使用 LTO,试图挤出所有可能的性能。 这导致了一个意想不到的问题:构建时的 RAM 消耗增加到足以导致我们的构建机器人呼救,从而导致 Azure DevOps CI 上的构建随机耗尽内存。Link-time Optimization byte[] 建议我转而分析哪些子项目将提供最大的性能提升,并且只将 LTO 应用于这些子项目。 后来通过构建柚子来烘烤CPU几轮,并确定两个最明显的候选者,核心和video_core,是启用LTO提供的性能提升的责任。 仅将 LTO 部分应用于核心和video_core项目不仅减少了编译器 RAM 的使用,而且还提供了非常小但始终如一的性能提升。例如,从 257 FPS 增加到 260 FPS。 没有什么开创性的,但它是仅旨在减少 RAM 使用的更改的免费奖励!The Legend of Zelda: Link’s Awakening Morph后来添加了一个小但非常关键的修复程序,以使所有这些实际工作。 我是灾难,对不起。 输入改进 Metroid Prime Remastered引入了一个严重的困境:人们希望使用鼠标和键盘将游戏作为 FPS 来玩。这个游戏很华丽,就像萨穆斯(银河战士总理重制版) 问题在于游戏使用摇杆输入顶部的运动来瞄准,这使得如何处理非控制器输入成为一个有趣的案例。 这足以激励 German77 有兴趣尝试一下: 首先,他修复了一个运动不断被重新校准的问题。 接下来,German77 调整了运行高于 100% (1.0x) 的 DPI 缩放的用户的鼠标缩放。 随后,改进了鼠标输入的映射。默认情况下,鼠标摇杆被视为操纵杆,其中包括假定死区和默认情况下不为零的范围。此拉取请求包括一些其他杂项更改,例如修复某些 UI 元素不起作用。 最后,为了解决“双摇杆模式”的问题,添加了对使用鼠标的专用运动的支持。由于游戏只使用两个轴,这可以直接 1:1 映射到鼠标移动,让瞄准变得轻而易举!Metroid Prime Remastered 要使用此功能,请转到 ,单击 ,然后再次单击以将鼠标设置为运动。然后在“高级”选项卡中,启用鼠标平移。之后,手动映射密钥,就像配置 FPS 一样。Emulation > Configure… > ControlsMotion 1 GitHub用户SixelAlexiS90提供了一个输入配置文件。要使用它,请在 yuzu 上转到并将此输入配置文件放在文件夹中(如果没有,请创建一个新的“输入”文件夹)。之后要做的就是在柚子的控制设置中选择配置文件。File > Open yuzu folderconfig\input 用户可以使用与鼠标平移相同的设置来调整鼠标运动的灵敏度Emulation > Configure… > Controls > Advanced记得根据自己的喜好设置灵敏度 但是德国77只关注吗?不。 继续 2022 年 <> 月开始的工作,在新的自定义“Joy-Con”驱动程序中支持 Pro 控制器。 由于该选项是实验性的,因此它只能在官方 Switch Pro 控制器上正常工作,而不能在第三方控制器上正常工作,因此默认情况下处于禁用状态。 鼓励真正的专业控制器的所有者启用此选项,因为它将提供大大改进的运动和高清隆隆声支持。Metroid Prime Remastered与上一个截图不同,我发誓 以前的限制,例如无法使用Pro Controller进行Amiibo检测,仍然存在,因为仍有工作要做。 音频改进 音频仿真中有一些有趣的变化,许多用户会很高兴,让我们一一介绍。 german77 在初始化我们的默认音频库 cubeb 时修复了崩溃问题。 猜猜更少的崩溃总是好的,对吧? 梅里尝试修复双四阶滤波器中的舍入问题。 虽然此更改的目的是部分提高几款游戏的音频质量,尤其是(本月游戏),但它并没有完全达到目标。 这还不足以解决影响游戏的随机噪声问题,因此Maide着手调查并发现音频仿真代码库错误地将所有不同音频通道的状态保存在同一个地址中!Metroid Prime Remastered 可以想象,如果左音频通道存储了一些样本,右通道执行相同的操作(覆盖左侧通道存储的内容),然后左通道取回一些意外的东西,结果可以听起来......有趣。 用户在Metroid中将这个问题描述为“如果有人在你的耳朵上开枪”。 现在,每个音频通道都将其信息存储在不同的内存区域中,避免了访问重叠的任何问题。 不仅从中受益;这两款游戏也都显示出改进。Metroid Prime RemasteredFire Emblem小丑泳装(火焰纹章订婚) Maide 发现的另一个问题是错过检查导致数组索引读取负值,简单来说,这是“非常错误的”。 这导致音频引擎抓取随机内存块作为混合信息,使音频引擎崩溃,并随之柚子。 解决这个问题可以解决 玩游戏时发生的崩溃 ,很可能还有其他崩溃。Metroid Prime Remastered 用户界面更改 LDN大堂的窗户得到了陌生新来者的喜爱,增加了隐藏空房间的选项。没有什么比生活质量的变化更胜一筹了,谢谢!请只提供最潮湿的房间 对于不和谐游戏玩家,SoRadGaming 为您的不和谐状态实施了正确的游戏图像!这些图像是从我们的兼容性维基中抓取的,该维基正在重写中,所以预计现在会缺少一些游戏。用这个简单的技巧让你的朋友羡慕你! 一个小错误导致 Web 小程序在调整柚子 Web 小程序窗口大小时失去重绘和缩放其内容的能力。重新添加调用可以修复缩放,允许玩家根据自己的需求调整他们的马里奥手册。setZoomFactor 每个游戏的设置非常有用,但要正确编码也非常棘手。m-HD通过向列表中添加一些缺少的图形设置来迎接我们,解决了在每游戏配置窗口中设置全屏模式,分辨率缩放,过滤器和抗锯齿值时的冲突问题。 然后,German77 正确地实现了每游戏配置支持,以设置 AMD GPU 受益匪浅。Force maximum clocks 虽然我们一直在努力改善用户体验,但柚子有时会崩溃。这是任何第一代模拟器所期望的,但不应该发生的是在崩溃或强制关闭后不保存对配置设置所做的更改。 问题出在我们的Qt UI中,german77努力正确地告诉Qt保存配置并将其同步到文件,避免在强制关闭后丢失任何配置更改。 常规修复 MonsterDruide1继续用LDN代码创造奇迹。 这一次,正确的错误处理。 处理 TCP 连接时可能出现的错误之一是 ,当另一端突然关闭连接时,就会发生这种情况。 老派游戏玩家称之为“愤怒退出”。ECONNRESET 撇开笑话不谈,当像这样突然断开连接时,错误曾经被柚子而不是游戏捕获,导致游戏永远不会收到客户端断开连接的通知。 将错误正确传递给游戏允许它以自己的方式处理问题,而不是使柚子 LDN 会话崩溃。 对 yuzu-cmd 进行了一些改进,这是默认 Qt UI 的命令行替代方案。 German77 添加了对鼠标单击触摸输入和 SDL 控制器输入支持的支持,以及两个参数:用于指定游戏文件位置和指定用户配置文件。-g-u 您的作家也出现了,更新了最近添加到主线柚子中的图形过滤器和分辨率倍数选项。 硬件部分英伟达驱动程序531.18,这是一个很好的驱动程序 这个最新的(在撰写本文时)NVIDIA驱动程序531.18版本包括对Vulkan扩展的支持,以前的读者将熟悉。 支持此扩展意味着需要构建的着色器更少,由于减少了着色器卡顿和 RAM 使用量,从而获得更流畅的体验。VK_EXT_extended_dynamic_state3 我们建议至少更新图灵和更新(GTX 1600,RTX 2000-4000)用户进行更新,因为我们希望此版本不会解决影响Pascal和Maxwell硬件(GTX 1000及更早版本)的问题。 AMD 锐龙 7000X3D 系列,以及游戏模式的重要性 AMD最近发布了采用4D V-Cache技术的Zen 3 CPU,为了复制英特尔的怪异,他们决定发布带有7950X3D的顶级不对称设计。 这个游戏野兽CPU的两个CCD(每个模块包含8个内核)中只有一个可以访问扩展的L3 V-Cache,并且决定使用哪一个取决于Windows游戏栏。 令我们沮丧的是,这里没有硬件调度程序。 芯片组驱动程序和 Windows 切换开关决定了哪种模式更好。 由于 yuzu 和基本上任何其他模拟器都没有被 Windows 注册为游戏,因此用户必须手动干预并启用,以便让芯片组驱动程序配置文件性能并决定哪个 CCD 性能最佳。Game Mode 这样做也应该使每个用户受益,而不仅仅是 7000X3D 用户,因为 Windows 使用切换将资源(RAM、线程)分配给受影响的程序,所以这根本不是一个坏做法! 以下是步骤: 打开 yuzu 或任何其他选择的模拟器/程序,按 ,然后转到设置齿轮。Windows + G打赌你不知道Windows中的这个额外的膨胀 然后启用 .Remember this is a game就这样,更好的性能! 就是这样! 现在,Windows将以更智能的方式分配资源,Ryzen 7000X3D用户将从其闪亮的新CPU中获得最佳性能。 测试还表明,这也有助于在当前英特尔 CPU 上通过适当的 P 核和 E 核分配来提高性能。 对于较老的Ryzen用户,据报道,支持3D Zen4产品性能分析的最新芯片组更新也略微提高了性能。 谁能在两次点击后对免费性能说不,对吧? 英特尔,请修复您的 Vulkan 支持 我们正在等待英特尔修复Windows驱动程序上的SPIR-V编译器崩溃。 在当前状态下,如果您使用 Vulkan,任何游戏都可能随时崩溃,并且与通过重写解决大部分 OpenGL 问题的 AMD 不同,英特尔没有使用旧图形 API 的后备选项,在当前状态下,几乎所有内容都呈现为黑色。这种崩溃随时可能发生 令人沮丧的是,这不是Mesa Linux驱动程序或旧的Gen9 / 9.5 / 11 iGPU及其已停产的Windows驱动程序的问题,因此这是一个影响新驱动程序分支的适当关键回归,必须等到AAA本机PC游戏运行良好,让开发人员有时间专注于“不太重要的东西”, 比如专业程序和控制台模拟器。 未来项目 我被我们的开发人员绑架了,所以这次没有泄漏。我承诺下个月会更多! 有一件事我可以提一下,最近的核心时序更改使 Windows 上的 CPU 使用率全面减少了 5-20%,具体取决于总线程数。这意味着更好的性能和更低的功耗,特别是有利于笔记本电脑和手持设备等移动设备。 这一变化已经在主线和抢先体验中出现,但我们将在下个月更多地讨论它和其他好东西。 这就是所有人!
Yuzu进展报告2023年1月【edge浏览器机翻】 新的一年,还有更多的工作要做!2023 年以大量图形更改、音频和输入改进、TAS 和 LAN/LDN 修复等开始!请继续关注yuz-ers,这只是今年即将发生的事情的开始! 新的挑战者即将到来! 在上个月合并期间,其他一些与GPU相关的更改不得不推迟。 一位新贡献者所做的一项更改溜走了,极大地改善了 Vulkan 的体验,几乎感觉像是在作弊...... 变化很简单:Wollnashorn 决定使用官方 Vulkan API 来存储和验证管道缓存(也称为着色器),而不是依赖 GPU 驱动程序来存储和验证管道缓存(也称为着色器),并且让像 Windows AMD 驱动程序这样的常见嫌疑人由于一些任意的低大小限制而无法存储其中的 95%。Project Y.F.C. 1.5 通过将整个管道缓存存储在 yuzu 文件夹之间的自定义文件中,在 Windows 上运行的 AMD GPU 现在可以在几秒钟内正确加载大型缓存,这是应该的。 这为我在玩 RX 6600 时节省了数小时的时间,因为该游戏具有许多重型着色器的可爱特权。 使用 25000 个着色器启动游戏过去需要近 15 分钟,驱动程序仅提供前 3000 个左右的着色器,其余的始终需要重新编译。这个过程现在只需几秒钟。Xenoblade Chronicles 3 NVIDIA和Intel在着色器构建方面比AMD更快 但这不仅仅是AMD Windows用户的另一个修复程序。虽然目标已经实现,但好处并不止于此。 事实证明,与依赖 GPU 驱动程序相比,本地存储的文件保存速度要快得多。 可能是由于执行的检查较少? 所有 GPU 供应商在面对新的着色器时都会看到卡顿减少! 通常的限制适用:缓存仍要求驱动程序进行验证,因此将其更新到较新版本或较旧版本将需要重新编译,并且由于缓存是特定于供应商的,因此如果您切换到其他供应商的新 GPU,您将无法保留缓存。(我们很高兴现在有两个以上的选择。 虽然 Wollnashorn 一开始打算将此功能作为可选功能,但我们认为它是完全稳定的,因此现在默认启用它。 任何有兴趣测试禁用它的人都可以在中找到新选项。Emulation > Configure… > Graphics > Advanced > Use Vulkan pipeline cache仅 Vulkan,OpenGL 在计算工作方面并不那么灵活 Wollnashorn为新的一年提供了另一个惊人的条目,在OpenGL后端实现了对AMD的FidelityFX超分辨率(FSR)的支持。虽然AMD只打算将这种适配过滤器与Vulkan和Direct3D 12一起使用,但它实际上是可移植到OpenGL的,并且与其他过滤器相比,它通常提供更好的结果。 谢谢!费米用户欢欣鼓舞 火焰之纹章团结 该系列的新条目,除了一些核心变化之外,这是一个很好的! 此版本最好的部分是在技术方面。 笨重而缓慢的Koei Tecmo引擎已经一去不复返了。 改用更加灵活和优化的 Unity 引擎。Fire Emblem Engage 对于我们仿真爱好者来说,这意味着在非常低端的硬件上可以实现 60 FPS,并且在解锁帧率的情况下也可以合理地玩游戏。只有一些动画和 2D 元素会遇到更高帧率的问题,我们希望模组社区能够解决这一问题。 我们希望看到 120 甚至 240 FPS 模组在相当强大的硬件上运行良好。 另一点,也许更重要,是着色器卡顿。 Koei 的引擎因拥有臃肿的着色器而臭名昭著,如果没有我们方面的大量工作,可以使任何 GPU 驱动程序在超时时崩溃。 另一方面,Unity 具有更轻的着色器,让 Vulkan 的并行构建大放异彩,如果您的 CPU 没有足够的线程来隐藏剩下的少量卡顿,异步着色器构建提供了额外的帮助。 尽管如此,新的游戏发布,新的问题和新的修复。因此,让我们列出到目前为止所做的工作。 byte[],他可能刚刚发现也可能不是刚刚发现火焰纹章系列,他注意到着色器编译器的一个问题:在着色器中实际有意处理多重采样(MSAA)纹理的唯一地方是在着色器后端,尽管不正确。 在后端,它被完全忽略,而在后端,它为指令生成了无效的参数组合,这导致 Mesa 在处理我们的着色器时中止。传递多样本信息修复了崩溃,但留下了更多的工作要做......GLASMGLSLSPIR-VSPIR-V ...着色器编译器的原始作者之一 Epicboy 注意到了这一点,并提出了一系列快速修复来解决的问题。 他的第一个修复是继续 byte[] 启动的内容,并在后端和后端完全实现多采样纹理提取,使用这些后端清理游戏的渲染。GLSLGLASM并列JS 从潜行到战术角色扮演(火焰纹章交战) 然后,他又实现了两个更改:防止TXQ指令的翻译产生另一个无效的参数组合,然后使用,实现对多采样图像的完全支持,只有一些小的松散端需要整理 - 这将需要另一个缓存失效。 我们先发制人地向所有《粉碎》玩家道歉(即使它还没有发生)。TXQ instruction并列JS 现在你最喜欢的角色不会在暗影领域(火焰纹章参与) 此固定菜单呈现在其他游戏中,例如 和 .Dokapon UP!Pokémon Mystery Dungeon: Rescue Team DX并列JS 以火攻火(神奇宝贝神秘地下城:救援队DX) 正如任何 NVIDIA 玩家都会告诉您的那样,Unity 引擎游戏在 OpenGL 上更稳定,这是首选旧 API 的罕见情况之一。 我们正在努力解决此问题,但现在,如果您在将 Vulkan 与 NVIDIA GPU 一起使用时遇到崩溃,请尝试改用 OpenGL,作为替代方案,看看禁用加速 ASTC 纹理解码是否有帮助。 与往常一样,这两个选项都可以在中找到。Pokémon Brilliant Diamond/Shining PearlEmulation > Configure… > Graphics 涡轮增压模式 如果您遵循以前的进度报告,您可能已经注意到某种模式。 你的作家有一个愚蠢的想法,而byte[]是最终听我胡言乱语并使这个想法成为现实的人。 这个例程成功地与 Vulkan 的 SMAA 一起使用,但没有成功增加暂存缓冲区大小以利用 ReBAR,可悲的是,这一次,它几乎与 ,或其官方/无聊的名称,强制最大时钟一起工作。Turbo mode 你也许能够看到这是怎么回事。一年前,Patreon 的资金让您的作家能够访问 RX 6500 来帮助测试和调试。 那张卡死得很可怕,过早地死了(没有人错过它),但在踢水桶之前,它让我们了解到,如果你不经常把工作推到GPU上,AMD的RDNA和RDNA2硬件就会遭受严重的降频问题。 值得庆幸的是,由于加密采矿崩溃,RX 6600 取代了它的位置,无需额外费用。 在你的脸上,矿工。 咳咳,回到正题。 该卡将尝试尽可能多地空闲以节省电量,因此如果工作负载不是恒定的,它会切换到较低的时钟速度,再次提高时钟需要时间。 这会导致性能降低。 虽然这个问题以一种或另一种方式影响了所有GPU供应商,但只有AMD遭受高达70%的性能损失,同时使用Windows和Linux驱动程序。是的,甚至是 RADV。 由于要求用户应用外部解决方法,例如在后台编码视频以保持VRAM使用率高或超频最低时钟速度不容易沟通,或者可以算作使您的保修失效,因此您的作家试图找到干净解决此问题的方法,因为AMD似乎对此不太感兴趣。 解决方案再次来自超频背景。memtestCL 是测试视频内存稳定性的工具:您可以设置大小、要运行的迭代次数,计算负载将比较结果,通知您任何错误。 同时运行柚子和memtestCL完全修复了AMD卡的降频问题! 后来进行了一些小讨论和原型设计,解决方案开始形成。 并行创建和运行 OpenCL/CUDA 进程被认为是工作量太大,可能会被调度程序发送到后台,从而抵消任何收益。 相反,我们决定使用 Vulkan 自己的计算能力。 无用的虚拟负载将不断在 GPU 上运行,迫使它始终保持尽可能高的时钟,随之而来的是功耗。四款最耗费 GPU 的游戏。像臭名昭著的RX 6500 XT这样的低端卡可以看到高达70%的跳跃 虽然这是一个简单的解决方案,但它有一些缺点,迫使我们遗憾地默认不启用此选项: 首先,并非所有用户都希望或能够以最佳性能运行他们的 GPU。在移动设备上,它会导致糟糕的电池寿命,或者达到AMD和Intel APU的功率限制,例如Steam Deck,其小型15W默认TDP。 其次,低恒定负载,例如以非常高帧速率运行的旧游戏,或者执行虚拟周期的模拟器,会产生一种称为线圈呜呜声的噪音,这是一种电“咕噜咕噜”,其强度随每个 GPU 而变化。有些几乎听不见,有些可以吓到他们的用户,即使卡没有受到伤害。 第三,虽然这是AMD专用GPU的安全选择,但在NVIDIA和英特尔上,结果变化更大。 较弱的NVIDIA卡(比RTX 3060弱的任何东西)很可能会在Turbo模式下失去相当大的性能,而功能强大,昂贵的显卡将看到类似于AMD的性能提升。 特别是RTX 4090在Turbo上的表现甚至比NVIDIA自己的控制面板中的“首选最大性能”设置还要好。左边是RTX 4090的默认性能,中间是使用驱动程序的“首选最大性能”,右边是柚子的涡轮模式(神奇宝贝猩红) 英特尔一如既往地是一个特例。 虽然 Turbo 模式肯定有助于桌面 ArcGPU,但集成 Xe 显卡和更早版本只能运行一个队列。 这意味着,根据设计,这些 iGPU 无法同时渲染和运行计算任务。 虽然调度程序似乎做得很好,不会对 Turbo 造成任何性能损失,但在使用英特尔 iGPU 时,您仍然会遇到所有缺点,没有任何好处。 我们努力解决尽可能多的限制,但由于不同供应商和卡的结果差异很大,因此默认情况下该选项将保持禁用状态。 我们强烈建议大家测试它。如果它在游戏中产生性能提升,它应该在各个方面保持一致。 至少所有桌面AMD用户,Big Chungus NVIDIA所有者以及拥有Arc的5个人都将从中受益匪浅。 该选项可在 中找到。 ...我仍然更喜欢称它为涡轮模式...Emulation > Configure… > Graphics > Advanced > Force maximum clocks让我们重复使用相同的图片,没有人会注意到它 更多 GPU 更改 以轰轰烈烈的方式开始新的一年,天际线成名的章程又回来了,为我们的着色器编译器项目进行了另一轮修复。 是 Switch 上提供的一项 NVIDIA 硬件功能,主要用于选择视口或图层,而无需实际的几何着色器,并且可供 yuzu 与桌面 NVIDIA 卡一起使用。 但是,AMD、英特尔和其他供应商不支持此扩展,并且需要使用几何着色器进行模拟。 Bylaws 添加了对几何着色器直通模拟的支持,修复了 、、 以及许多其他游戏中的渲染问题。Geometry shader passthroughNieR:Automata The End of YoRHa EditionMarvel Ultimate Alliance 3: The Black OrderPokémon: Legends Arceus并列JS 机器人拍摄非常有趣(NieR:Automata The End of YoRHa Edition) vonchenplus 实现了 Draw Texture 方法,这是 NVIDIA 独有的另一项功能,包括原生版本和模拟版本。 这就像Switch使用了某种NVIDIA GPU,嗯。 通常,OpenGL 和 Vulkan 等图形 API 需要着色器和一些几何体(至少是一个三角形)来将纹理渲染到帧缓冲区,但这绕过了这一要求,将轴对齐的纹理绘制到屏幕上,仅包含边界矩形的坐标。 在 NVIDIA 硬件上使用 OpenGL 时,yuzu 会尝试使用主机的绘制纹理功能,并在 Vulkan 或其他平台上用着色器进行模拟。 这将修复 上字幕屏幕的呈现。draw texture methodTitan Quest并列JS 人们问为什么我们“让”游戏在NVIDIA硬件上运行得更快(Titan Quest) byte[] 纠正了 Yuzu 处理交换间隔方式中的一个错误。在 Switch 上限制帧速率的一种方法是设置一个数字,控制帧的呈现次数,其中演示每秒发生 60 次。 程序可以通过将此数字设置为 30 来将自身限制为每秒 2 帧,通过将此值设置为 20 来将自身限制为每秒 3 帧,依此类推。 柚子错误地将交换间隔视为基于 1 的幂,因此对应于每秒 2 和 60 帧的值 30 和 3 正常工作,但值 15 错误地呈现为每秒 60 帧。 在修复此错误的同时,byte[] 还增加了对 mod 开发人员使用负值作为每秒 <> 帧的倍数的支持。 让(高帧率)游戏开始吧! epicboy还修复了在OpenGL上构建异步着色器的一个长期问题,迫使着色器在发出可用性信号之前完全刷新并可用于主渲染上下文。 这应该可以缓解旧 API 中异步着色器独有的任何持久性图形错误。 Blinkhawk 回归,为世界上看似优化最少的神奇宝贝游戏带来了另一项重大性能改进。这允许它们在我们更快但精度更低的 GPU 正常模式下渲染,并在此过程中实现一些相关的优化。 玩得开心闪亮的狩猎!如果你问为什么所有照片都在同一区域,这是最好的基准点之一。左侧为正常精度,右侧精度高(神奇宝贝猩红) 请记住,正常的 GPU 精度会产生帧的顶点爆炸,但持续时间也一样长。永久顶点爆炸消失了! 高 GPU 精度会更干净,但速度更慢,所以选择你的立场。 作为GPU部分的最后一点,您的作者实现了一项自分辨率缩放器发布以来已经要求了很长时间的功能,但直到现在还没有人真正费心去看 - 额外的分辨率选项。 现在,您可以从 1.5 倍缩放或 7 倍和 8 倍的附加选项中进行选择(如果您对显卡有死亡愿望)。 用户报告证实,RTX 4090 可以在 8x 下玩一些游戏,而 RX 6950 XT 在 7x 下没有太多问题。 添加奇数 1.5 倍是因为我们的指标显示,最常用的非 iGPU 卡足够强大,可以在 1 倍时具有多余的性能,但不足以处理 2 倍。 中间地带非常适合在保持 30/60FPS 目标的同时获得更清晰的图形,或者如果用户有 1440p 显示屏。 我们认为这应该是目前合理的未来证明。警告,请勿在弱设备上单击此图像:16K 分辨率(超级马里奥奥德赛) 小警告,AMD和英特尔硬件不支持像NVIDIA那么大的纹理,因此在某些游戏中可能会达到此限制并使驱动程序崩溃。 如果您有性能和VRAM备用,并且遇到崩溃,请降低乘数。
Yuzu进展报告2022年12月【edge浏览器机翻】 你好余星人。真是一年啊!我们在 2022 年结束时推出了更多的柚子炸鸡、Vulkan 更改、新的输入驱动程序、大量的内核工作、更高的性能、更好的视觉效果等等! Y.F.C项目.part...1.5 和缓存失效 Blinkhawk也一直在努力完成他心爱的项目,发布了Y.F.C. PART 1.5。基本上是完整“第 2 部分”版本预期的删节版本。 此拉取请求中的更改包括对实现的返工,以包含用于间接绘制和配置的各种新宏。MacroHLE 如前几篇文章所述,宏是实现间接绘制和实例化绘制等功能的小型 GPU 程序。它们必须被效仿。 MacroHLE(高级仿真)是避免执行请求的宏,而是将其直接转换为它将生成的代码(如实例化或间接绘制)的过程。 这与 MacroJIT 形成对比并并行,MacroJIT 的工作原理是实时模拟宏程序中包含的循环和控制流。 现在,为什么要同时保留两者?好吧,每个人都执行自己的专业任务。 与MacroJIT相比,MacroHLE的优势与间接调用的模拟有关。 间接调用(例如绘制)使用通过某些着色器在 GPU 中的某处生成的数据,以建立绘制参数及其绘制计数。 传统上使用 MacroJIT,我们必须同步主机 GPU 和来宾 GPU 以获取间接数据,以便正确执行宏。 使用 MacroHLE,我们在主机 GPU 中创建一个间接绘制命令,该命令指向 GPU 生成数据应位于的转换地址。 从而跳过同步。 由于这些改进,yuzu 现在能够更有效地执行宏,大大减少了 CPU 开销,并且无需更改任何设置。 我们内部喜欢称之为“被动技能”。 由于这些更改,多个游戏的性能得到了改进,包括由 Koei Tecmo 开发的游戏、、、 和(版本 12.0.0 除外,它仍然需要进一步修复)仅举几例。 崩溃也已修复。 我们测得部分游戏的性能提升了 5-20%,但在具有大量缓存的 CPU 上,性能提升可能更高。根据我们的测试,5800X3D在某些游戏中可以达到30%以上。 以更高分辨率渲染的性能成本也大大降低。Pokémon Scarlet and VioletBayonetta 3Monster Hunter RiseFire Emblem: WarriorsR5 5600X - 2x16GB 3933MHz CL18 - RX 6600 但好东西还不止于此!Blinkhawk 还增加了对 和 Vulkan 扩展的支持,减少了游戏过程中需要构建的着色器的数量和大小。VK_EXT_extended_dynamic_state2VK_EXT_extended_dynamic_state3 这个相对“新”的对,以及已经实现的和,是负责大大减少着色器构建卡顿的四个扩展。 但正如往常一样,消费者GPU中对这些扩展的支持充其量是参差不齐的,最坏的情况是支持混乱。 特别是仅受 NVIDIA Vulkan Beta 驱动程序(撰写本文时的版本 527.86)和最近的(2021 年末及更新)RADV Mesa 驱动程序支持。 我们建议任何有兴趣测试新着色器缓存性能的人都可以尝试这些驱动程序。VK_EXT_extended_dynamic_stateVK_EXT_vertex_input_dynamic_stateState3 别无选择,实现这些扩展迫使我们执行另一个可怕的缓存失效。证明柚子最好的GPU仍然是适用于操作系统的NVIDIA或Linux上的AMD的 大多数驱动程序至少涵盖了 4 个扩展中的 3 个,没有任何问题,只有一个明显的例外,AMD Windows 驱动程序。 与使用 RADV 的 Linux 上运行同一张卡或使用任何其他品牌相比,在处理新着色器时,这样做的代价是更高的卡顿。 一个小的旁注,Linux RADV用户应该将他们的Mesa版本更新到最新版本(或者如果需要,使用更新的发行版版本),因为在21.2之前的版本中,对的支持被破坏了。state2 作为最后一秒的更改,Blinkhawk测试删除了在NVIDIA Ampere和更新的GPU(RTX 3000系列及更高版本)上强制执行的16位浮点(FP16)黑名单。如果它有效,它将允许他们在这方面类似于图灵和AMD Radeon产品。然而,NVIDIA重新设计了他们的FP32和FP16装置在安培和更新设备上的操作方式,两者都提供相同的性能。不幸的是,即使它更快,最终也无关紧要,因为安培和艾达上的 FP16 仍然在驱动程序中被窃听,在许多游戏中产生图形问题。 唯一可以从启用列入黑名单的 FP16 支持中受益的架构是 Windows 上的英特尔,但它们的驱动程序是关于 FP16 的垃圾箱火灾。因此,他们继续以与Ampere和Ada相同的方式以32位模拟16位精度,在这种情况下,它始终存在性能损失。当然,可以从此更改中受益最大的最弱架构是唯一仍然损坏的架构...... 此迭代的另一个额外好处是 GPU 精度使用起来更安全。 粒子将继续变得更好,但像 、 和许多其他游戏可以更频繁地准确地玩,而不会出现故障,这提供了巨大的性能优势(特别是仍然需要它的标题屏幕,但游戏玩法是安全的)。Y.F.C.NormalHighPokémon Scarlet/VioletBayonetta 3NormalBayonetta 3HighNormal 其他令人敬畏的 GPU 更改,以及更多的缓存失效 这个月并不止于此,在我们的GPU代码库中也有很多值得一提的变化。 哦,天哪,这个月肯定很忙。 首先,他负责为我们的 Vulkan 和 OpenGL 后端实现 SMAA 抗锯齿滤波器。 但这还不是故事的全部,所以让我们进一步阐述。 SMAA,或增强的亚像素形态抗锯齿,是由西班牙萨拉戈萨大学和以孤岛危机闻名的视频游戏工作室 Crytek 开发的 MLAA 的改进。 BreadFish实现了最初的OpenGL版本,打算将其作为分辨率缩放器的一部分发布。事实证明,为 Vulkan 实现可不是开玩笑的,在被你的作家唠叨之后,byte[] 不得不工作 2 周才能让它成形。SMAA SMAA,基于 ,旨在成为一种后处理(又名基于着色器)的选项,通过分析相邻像素来专注于质量而不是性能,这与它只是模糊整个屏幕不同。 筛选器是使用渲染通道实现的,当与 FSR 筛选结合使用时,它会产生最佳结果。 AMD 建议在其官方概述集成指南中正确消除映像锯齿。 结果不言自明:MLAAFXAASMAA并列JS 在这里,您可以看到SMAA的理想测试用例,即简单的死亡三角形绳索和电源线,抗锯齿测试的经典示例(神奇宝贝猩红)3D游戏中的精灵元素受益于它(异度之刃编年史3) 对于那些感兴趣的人,我们使用了预设,测试显示即使使用 GT 1030 的性能损失也很低,因此我们更愿意关注质量。 只有使用旧集成 GPU 的用户才应避免 。对于其余部分,打开并忘记这是一个安全的选择。 您可以在 中找到该功能。ULTRASMAAEmulation > Configure > Graphics > Anti-Aliasing Method并列JS SMAA没有FXAA(塞尔达传说:旷野之息)的可怕色带并列JS 对于运行低分辨率乘数的用户来说,这是一个很大的帮助。这个例子是 0.5x 单独双线性与 0.5x FSR + SMAA(神奇宝贝猩红)完成的特写镜头(异度之刃编年史3) 作为旁注,NVIDIA 的 FSR 版本 NIS 也经过了测试,但结果是如此丑陋和过度锐化,以至于我们决定保留两者中的最佳选择 FSR。 byte[] 还修复了各向异性过滤的问题。如果用户在 Linux 上运行 RADV 驱动程序,则 以外的各向异性过滤值会导致 中出现明显的“类似痤疮”的呈现问题。在其他各向异性过滤和分辨率乘数值上,该问题仍然存在,但 byte[] 继续解决此问题。DefaultSuper Mario Odyssey并列JS 所谓的RADV痤疮(超级马里奥奥德赛) 此更改还解决了在 Lavapipe(Mesa、Linux)上使用自动各向异性过滤时的错误水渲染问题,尽管错误仍然发生在其他各向异性过滤值处。Super Mario Sunshine并列JS 有点让它看起来更老(超级马里奥阳光) byte[] 还更正了内存中数据缓存管理操作的语义。 以前,当来宾请求缓存失效时,实现只会使硬件上的缓存失效,而不是按预期使内存对 GPU 可见。 另一方面,他还推广了各种 Vulkan 扩展使用核心方法。在 Vulkan API 中,供应商扩展是由特定硬件供应商或驱动程序提供的可选功能,可能并非在所有系统上都可用。相比之下,核心方法是 Vulkan 规范的基本组成部分,并保证在所有支持 API 的系统上可用。因此,提升扩展以使用核心方法可以提高其可靠性和可移植性。 byte[] 对 Vulkan API 进行了进一步的初始化调整。这些更改包括 和 的恢复,这些内容在之前的 PR 中被错误地删除了。他还在结构中添加了标志,以便被检测为可用的Vulkan设备。VK_KHR_timeline_semaphoreVK_EXT_host_query_resetVK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHRVkInstanceCreateInfoMoltenVKMoltenVK 请记住,要在macOS设备上获得柚子渲染还需要做更多的工作。这只是早期的初步工作。 vonchenplus已经为Maxwell3D实施了绘图管理器,旨在消除解决方法并重新组织绘图过程以更准确地枚举绘图行为。 由于这些更改,某些 3D 模型无法正确渲染的问题已得到修复。Dragon Quest Builders并列JS 不再缺少东西!(勇者斗恶龙建造者)没有盔甲是最好的盔甲(黑暗之魂) 在这些更改之后,vonchenplus 还改进了拓扑更新逻辑的代码,以便实现更加准确。为了使用 Vulkan 实现特殊拓扑,此更改是必要的。 这包括对 的支持,这需要使用三角形来模拟它们,以及模拟索引和非索引模式的功能。 在非索引模式下,固定映射表用于连接顶点,而在索引模式下,计算着色器用于动态映射原始图形索引。 Vonchenplus还实现了对线环的支持,前者需要使用三角形列表来模拟它们,后者需要使用三角形扇形。quad strips 这些更改修复了 中英雄的路径以及 中的状态摘要图形,它们还给了我们另一个着色器缓存失效,耶!Legend of Zelda: Breath of the WildPokémon Scarlet and Violet并列JS 不要弄乱统计数据!没有统计数据就无法繁殖!(宝可梦猩红)并列JS 当Sheika GPS信号返回时(塞尔达传说:旷野之息)
Yuzu进展报告2022年10月【edge浏览器机翻】 问候,亲爱的余德华人!我们度过了一个多么美好的一个月。十几个图形修复,大内核更改,音频,输入和amiibo修复等等! 不要触摸那个表盘,因为我们才刚刚开始! 图形和常规错误修复 让我们从肉质部分开始。新的一个月,新的游戏要修复! Persona 5 Royal,本月上映的两部大片之一,在Vulkan中推出了一些神秘的黑色战斗场景。vonchenplus认为这缺少对 Vulkan 规范不支持的特殊 OpenGL 样式清除命令的支持,并添加了在这种情况下跳过清除的解决方法。 要在 Vulkan 中正确实现这些清除,还有更多的工作要做,但这可以让游戏可玩。并列JS 小丑,不偷屏幕!(女神异闻录5皇家) 长期的图形贡献者Blinkhawk已经死而复生来修复游戏。 本月的另一个主要版本出来了,令用户沮丧的是,它在柚子中不起作用。 在解决导致其冻结的服务问题后,Blinkhawk 调查并修复了导致其在 Vulkan 中显示为白色的渲染问题。Bayonetta 3并列JS 这是天堂吗?(巴约内塔3) 新的挑战者来了! 或者更确切地说,是一些旧游戏的新节目,而且。 虽然渲染错误在 Vulkan 和 OpenGL 中使用 GLSL 后端进行了修复,但现在它们已通过 NVIDIA 独有的 GLASM 后端修复,因为byte[] 最终获得了一些用于测试和开发的 NVIDIA 硬件。Super Mario SunshineSuper Mario Galaxy并列JS 最好。音乐。曾!(超级马里奥银河) NVIDIA卡并不是byte[]本月购买的唯一新硬件。 他还购买了一台英特尔Arc A770 16GB,并用它来追踪驱动程序问题。 尽管通过了我们所有的验证测试,但 Vulkan 驱动程序无法编译 yuzu 使用的 ASTC 解码器,并且 yuzu 在启动时无条件编译它。 因此,如果改用 ASTC 的 CPU 解码,则byte[] 跳过编译它,并向英特尔提交了一份报告以供参考。 这允许 yuzu 在使用 Intel Arc Windows Vulkan 驱动程序时在 Vulkan 中启动游戏。蓝色玩家加入战斗!(超级马里奥3D世界+鲍泽之怒) byte[] 本月还发现并调查了宏 JIT 的两个问题。 宏 JIT 是一种优化,它重新编译上传到 GPU 的小程序,以控制绘制为本机机器代码。 他解决的第一个问题允许使用deko3d渲染 API 的自制应用程序最终在启用宏 JIT 的情况下变得可见。比NVN更好,它是免费的! 第二个问题是导致无法渲染大多数场景元素。 柚子在主线中有一个解决方法已经一年多了!但是,这掩盖了这个问题,这就是为什么花了这么长时间才能修复的原因。 byte[] 也修复了这个问题,现在一切都按预期工作——宏 JIT 不再有已知问题!MONSTER HUNTER RISE并列JS 有人在我的海洋中放了一个世界(怪物猎人崛起) 不幸的是,修复宏 JIT 中的准确性问题导致在启动时使用 Windows 上使用的官方 AMD Vulkan 驱动程序并在 Linux (amdvlk) 上选择加入时崩溃。 此问题以前在禁用宏 JIT 时出现,并且是由于提交清除命令时发生的崩溃而发生的。 我们已将此作为驱动程序问题报告给 AMD,他们已经确认他们正在调查此问题。 在我们等待修复期间,在以 2 倍缩放运行游戏时使用 OpenGL 可能是一种解决方法。Xenoblade Chronicles 3 说起来,Blinkhawk 为这款游戏中的渲染贡献了另一个修复,实现了 ASTC 10x5 格式。颗粒状纹理消失了!MONSTER HUNTER RISE并列JS 阿斯泰克痘痘,走了!(怪物猎人崛起) byte[] 发现 yuzu 在调试图形问题时,在合并后经常崩溃他将其缩小到一些从我们在 Skyline 模拟器的朋友那里不当移植的代码并实现了修复,最终允许他调试而不必担心游戏的渲染速度导致任何问题。 现在,用户的PC性能不会成为崩溃的原因。Project Y.F.C. Maide和Morph在几个月前合并3D 寄存器拉取请求的两次回归之上。 Morph 发现合并导致许多着色器无意中重新编译,并将其缩小到寄存器定义中细分参数的不同默认值。 同时,Maide 和 byte[] 一起发现了一个奇怪的渲染问题,最终在模板掩码寄存器的值中找到了问题。Luigi's Mansion 3并列JS 路易吉看到了RTX 4090的价格(路易吉的豪宅3) Vonchenplus 发现了 Yuzu 自己的着色器重新编译器项目编译计算着色器的问题,并通过删除损坏的优化传递,将块状渲染恢复正常来实施修复。TRIANGLE STRATEGY并列JS 项目矩形,我的意思是,三角形策略 vonchenplus还在滚动中,还实现了1D纹理复制。通常,来宾驱动程序(每个游戏都包含的 GPU 驱动程序)必须提供内存中使用的纹理类型类型,但由于前面提到的 NVIDIA 提供的开放文档,我们现在知道有一种方法可以在初始化内存时设置正确的类型。 最终结果是大大改进了渲染。Snack World: The Dungeon Crawl - Gold并列JS 几乎看起来像没有眼镜的3D电视(零食世界:地牢爬行 - 黄金) 随着 Blinkhawk 的回归,团队终于可以开始唠叨他修复他的更改,更具体地说,第 1 部分。 在解决了部分信号量和缓存刷新回归问题后,Blinkhawk修复了影响墨迹逻辑的剩余故障以及ATM中闪烁的模型。Project Y.F.C.Splatoon 2Animal Crossing: New Horizons长假 Byte[]本月的内核和服务工作一直专注于让Homebrew运行,但这也修复了一些图形问题。 第一个主要成就是首先让自制软件始终如一地运行。 byte[] 注意到在 yuzu 中启动 Homebrew 通常会导致整个模拟器在近 50% 的尝试中锁定 - 但只有在使用 Vulkan 时。 在启用验证层并对消息进行一些仔细调查后,他发现并修复了 Vulkan队列提交中一个微妙的竞争条件,最终使自制应用程序能够可靠地与 Vulkan 配合使用。可以说单元测试是仿真开发的核心 Vonchenplus本月也一直在支持自制软件,赠送了柚子对实例化绘制和滑稽的内联索引3D寄存器的支持,修复了gpu_console并允许自制游戏在柚子中渲染。与这些类型的变化相关的通常回归清单,这次影响,,,并且也已被识别和修复。Sonic 1 (2013)Super Mario 64Super Mario GalaxyXenoblade Chronicles 3Animal Crossing: New Horizonsgpu_console,可用示例之一 是的,医生,所有的怀旧都直接流向我的血液(索尼克 1 2013) 最后,byte[] 修复了启用 Vulkan 时从自制菜单启动自制软件时产生的强烈、引起癫痫发作的闪烁,这是由于没有重新创建用于演示的图像造成的。现在,您可以从自制菜单启动控制台自制软件,就像在 Switch 上一样!模拟被黑客入侵的控制台现在非常热门 将话题切换到一个小(但很烦人)的问题,我们从 byte[] 提高了生活质量。 过去,将柚子拍摄的屏幕截图写入磁盘会明显阻碍游戏的渲染。 用户会认为这是一个相对较短的冻结(这种冻结的长度根据所使用的分辨率倍数的大小而变化)。 byte[]使它完全异步,即使在特别密集的照片拍摄期间也能实现流畅的游戏。 CPU、内核、服务和核心修复 几个月前对 CoreTiming 准确性的修复,作为拉取请求 #8650 的一部分,由于 Windows 对高精度计时事件的支持极差,添加了故意浪费 CPU 周期,直到经过一定时间。 但在 Linux 中,不需要此修复程序,因为 Linux 本身支持高精度延迟。byte[] 修改了该行为,允许 Linux 用户利用这一点并降低高 CPU 使用率。还记得我们说yuzu在Linux上更快吗?这是一个很好的例子,说明了我们的意思。 No Man's Sky发布,我们的测试人员Law发现它可以在启用自动存根的情况下启动。 byte[] 调查了日志文件并存根了以前未实现的调用,CheckFriendListAvailability和GetCacheStorageSize,允许启动。No Man's Sky仍然是最好的屏幕保护程序 Bayonetta 3的发布导致了一些难以追踪的问题。 您的常驻bunnei兔子正确实现,并且用于设置存储的打开的用户配置文件的相关内容导致启动时崩溃。修复存根使游戏最终启动,虽然现在可以玩,但它仍然很慢。 请继续关注将使这款游戏受益的性能优化!ListOpenContextStoredUsersStoreOpenContextListOpenContextStoredUsersBayonetta 3 German77也参与其中,将 SetRecordVolumeMuted 服务打断,让游戏启动。您所在地区的热门主角(巴约内塔 3) 本月Bunnei的另一个值得注意的版本是多进程项目的开始。从一开始,柚子就只支持单进程架构,因为游戏在Switch上只使用一个进程。 然而,为了帮助提高 yuzu 对 Switch 软件的准确性,yuzu 一直专注于让关键的操作系统功能正常工作,其中最重要的是多进程支持,因为这对应于 Switch 软件的实际工作方式。 byte[] 和 bunnei 一直在努力为多进程支持提供某些先决条件。其中之一是支持服务器会话,这是自制软件所必需的。 这在 Switch 上用于启动自制软件,并且对于直接从其 NRO 文件启动时不起作用的自制软件是必需的。nx-hbloader 此外,byte[] 需要修复多个服务,因为以前的存根实现假设它们永远不会被拆除。 通过这些更改以及相关的图形修复,现在终于按预期工作了! 要使用它们,您可以从 Atmosphere 安装中提取。 放入柚子的SD卡目录,然后启动,自制菜单将启动。nx-hbloadernx-hbmenuhbl.nsphbmenu.nrohbmenu.nrohbl.nsp 他们现在推出(自制菜单和索尼克1 2013) 让我们谈谈amiibos。 Amiibo数据既以加密方式存储,也以纯数据的形式存储。 要访问加密部分,需要密钥转储,但并非所有游戏都使用加密部分,并且可以使用可用的明文。 对于这些情况,如果没有可用的密钥转储,German77 现在会将 amiibos 标记为只读。如果游戏需要,这不会取代转储您的 amiibo 密钥,但许多游戏只需基本级别的只读检测即可。谢谢吉多利和德国77的照片! 输入改进 每次游戏初始化控制器的振动时,Yuzu 都会执行振动测试,但问题(始终存在问题)是某些控制器比其他控制器需要更长的时间来响应。 以前,实现了固定的 15ms 延迟,因为一些控制器只需要那么多时间来响应。 如果游戏执行连续的振动测试,游戏将延迟到控制器响应,这会导致帧速率降低,例如,从 60 FPS 降低到 32 FPS。 等待劣质控制器时失去的所有性能都是一场悲剧。 因此,需要一个更好的中间立场。值得庆幸的是,German77 提出了一个更智能的解决方案。 与其每次都重复测试,不如在第一次缓存它,然后返回相同的结果。对于我们这些使用通用控制器的人来说,这是一个不错的、免费的、性能的提升。 新人ZwipZwapZapony(喜欢这个名字)修复了左右控制器颜色识别方式中的复制粘贴错误。谢谢! 音频更改 你有没有注意到在主板BIOS/UEFI设置中,该选项似乎什么都不做,而只是反映了列表中第一个可用的选项? 好吧,我们多年来一直这样作弊。默认情况下,音频后端选项仅每次都处于选中状态。耻辱。 Maide 发现某些音频设备在使用时会产生巨大的延迟,因此他决定进行延迟测试并根据结果选择任一。AutoAutocubebcubebcubebSDL 然后,ToastUnlimited解决了此更改引起的回归问题,避免了崩溃。 新的Switch固件版本通常附带相当份额的新服务和附加功能,因此为了避免未来游戏中的潜在问题,Maide实现了一些新参数,任天堂使用固件15.0.0将其添加到其音频核心中。 用户界面改进 一些用户更喜欢更接近黄金比例的显示器,即辉煌的 16:10 纵横比。 虽然 Switch 游戏不适合在标准的 16:9 宽高比之外玩,但一些用户可以拉伸图像以填满整个显示器,即使这意味着一些轻微的失真。 随着Steam Deck的发布,这越来越受欢迎,它使用16:10的显示屏,分辨率为1280x800。 社区还可以选择为每个游戏提供不同的宽高比模组,允许正确使用那些漂亮的额外像素。 German77花时间将此新选项添加到纵横比列表中,您可以在其中找到该列表。Emulation > Configure… > Graphics > Aspect Ratio我个人不喜欢伸展,黑条万岁 Docteh,Morph和lioncash(他们从平时转移了一些时间,确保所有提交给柚子的PR都是理智的)在修复拼写错误方面有相当多的份额。发生在我们最好的人身上。 为了在我们重新设计兼容性报告时帮助减少用户混淆,Docteh 添加了一个新选项,用于默认从游戏列表中隐藏兼容性评级列。 任何有兴趣将其还原的人都可以在其中找到它。 请记住,在我们努力实施新的报告系统时,报告将不准确。Emulation > Configure… > General > UI > Show Compatibility List我们正在努力解决所有这些未测试的报告 并不是每个人都喜欢在游戏列表中以英语列出他们的游戏,许多人宁愿用他们的母语列出,或者至少是 Switch 支持的官方语言的另一种选择。 Vonchenplus致力于解决这个问题,现在Yuzu优先考虑以用户选择的语言显示游戏。并列JS 即使在线工作迫使您不断使用英语,用您的母语阅读也始终是最好的 硬件部分 这个部分本月会很短,因为大多数事情都在进行中! AMD, WIP 正如我们之前所说,我们得到了AMD的确认,他们正在调查现在影响启动崩溃的原因,以及其他先前报告的修复程序。Xenoblade Chronicles 3 未来的驾驶员将很有趣。 英伟达,更近一步 我们在影响Maxwell和Pascal卡的稳定性问题上取得了一些缓慢的进展。 现在承诺任何事情还为时过早,因此我们会及时通知您。 同时,如果您必须运行最新的驱动程序,请使用OpenGL。 希望下一个中端卡的成本不会与整个PC相同。 英特尔 Arc,我们走吧! 由于 byte[] ,游戏现在可以在 Vulkan 上运行,我们只需要自豪的蓝卡队所有者在我们的 GitHub 上报告问题。 给英特尔的信息:在欧洲、中国和美国以外有销售。请已经开始发货,以便您的作家可以开始测试... 这也适用于你,GabeN。 未来项目 随着第一部分导致的所有回归,Blinkhawk 已经开始为内部测试人员提供第 2 部分将包含的一些更改的第一个测试版本。 与任何首次尝试一样,当然也有回归,但一些长期存在的问题已经在这些版本中修复,因此请在以后的文章中期待更多新闻。Project Y.F.C. 不要忘记我们的文件系统重写,Morph实现了对传入保存数据路径结构的支持。工作仍在继续,一些障碍被击中,减缓了进度,但 Morph 继续前进。Project GaiaGaia 特别感谢神秘作家B的大力帮助,而你的作家在处理课程时半死不活。他是复仇。他是黑夜 这就是所有人!谢谢你的时间,下个月见!
Yuzu进展报告2022年10月【edge浏览器机翻】 问候,亲爱的余德华人!我们度过了一个多么美好的一个月。十几个图形修复,大内核更改,音频,输入和amiibo修复等等! 不要触摸那个表盘,因为我们才刚刚开始! 图形和常规错误修复 让我们从肉质部分开始。新的一个月,新的游戏要修复! Persona 5 Royal,本月上映的两部大片之一,在Vulkan中推出了一些神秘的黑色战斗场景。vonchenplus认为这缺少对 Vulkan 规范不支持的特殊 OpenGL 样式清除命令的支持,并添加了在这种情况下跳过清除的解决方法。 要在 Vulkan 中正确实现这些清除,还有更多的工作要做,但这可以让游戏可玩。 并列JS 小丑,不偷屏幕!(女神异闻录5皇家) 长期的图形贡献者Blinkhawk已经死而复生来修复游戏。 本月的另一个主要版本出来了,令用户沮丧的是,它在柚子中不起作用。 在解决导致其冻结的服务问题后,Blinkhawk 调查并修复了导致其在 Vulkan 中显示为白色的渲染问题。Bayonetta 3 并列JS 这是天堂吗?(巴约内塔3) 新的挑战者来了! 或者更确切地说,是一些旧游戏的新节目,而且。 虽然渲染错误在 Vulkan 和 OpenGL 中使用 GLSL 后端进行了修复,但现在它们已通过 NVIDIA 独有的 GLASM 后端修复,因为byte[] 最终获得了一些用于测试和开发的 NVIDIA 硬件。Super Mario SunshineSuper Mario Galaxy 并列JS 最好。音乐。曾!(超级马里奥银河) NVIDIA卡并不是byte[]本月购买的唯一新硬件。 他还购买了一台英特尔Arc A770 16GB,并用它来追踪驱动程序问题。 尽管通过了我们所有的验证测试,但 Vulkan 驱动程序无法编译 yuzu 使用的 ASTC 解码器,并且 yuzu 在启动时无条件编译它。 因此,如果改用 ASTC 的 CPU 解码,则byte[] 跳过编译它,并向英特尔提交了一份报告以供参考。 这允许 yuzu 在使用 Intel Arc Windows Vulkan 驱动程序时在 Vulkan 中启动游戏。 蓝色玩家加入战斗!(超级马里奥3D世界+鲍泽之怒) byte[] 本月还发现并调查了宏 JIT 的两个问题。 宏 JIT 是一种优化,它重新编译上传到 GPU 的小程序,以控制绘制为本机机器代码。 他解决的第一个问题允许使用deko3d渲染 API 的自制应用程序最终在启用宏 JIT 的情况下变得可见。 比NVN更好,它是免费的! 第二个问题是导致无法渲染大多数场景元素。 柚子在主线中有一个解决方法已经一年多了!但是,这掩盖了这个问题,这就是为什么花了这么长时间才能修复的原因。 byte[] 也修复了这个问题,现在一切都按预期工作——宏 JIT 不再有已知问题!MONSTER HUNTER RISE并列JS 有人在我的海洋中放了一个世界(怪物猎人崛起) 不幸的是,修复宏 JIT 中的准确性问题导致在启动时使用 Windows 上使用的官方 AMD Vulkan 驱动程序并在 Linux (amdvlk) 上选择加入时崩溃。 此问题以前在禁用宏 JIT 时出现,并且是由于提交清除命令时发生的崩溃而发生的。 我们已将此作为驱动程序问题报告给 AMD,他们已经确认他们正在调查此问题。 在我们等待修复期间,在以 2 倍缩放运行游戏时使用 OpenGL 可能是一种解决方法。Xenoblade Chronicles 3 说起来,Blinkhawk 为这款游戏中的渲染贡献了另一个修复,实现了 ASTC 10x5 格式。颗粒状纹理消失了!MONSTER HUNTER RISE并列JS 阿斯泰克痘痘,走了!(怪物猎人崛起) byte[] 发现 yuzu 在调试图形问题时,在合并后经常崩溃他将其缩小到一些从我们在 Skyline 模拟器的朋友那里不当移植的代码并实现了修复,最终允许他调试而不必担心游戏的渲染速度导致任何问题。 现在,用户的PC性能不会成为崩溃的原因。Project Y.F.C. Maide和Morph在几个月前合并3D 寄存器拉取请求的两次回归之上。 Morph 发现合并导致许多着色器无意中重新编译,并将其缩小到寄存器定义中细分参数的不同默认值。 同时,Maide 和 byte[] 一起发现了一个奇怪的渲染问题,最终在模板掩码寄存器的值中找到了问题。Luigi's Mansion 3并列JS 路易吉看到了RTX 4090的价格(路易吉的豪宅3) Vonchenplus 发现了 Yuzu 自己的着色器重新编译器项目编译计算着色器的问题,并通过删除损坏的优化传递,将块状渲染恢复正常来实施修复。TRIANGLE STRATEGY并列JS 项目矩形,我的意思是,三角形策略 vonchenplus还在滚动中,还实现了1D纹理复制。通常,来宾驱动程序(每个游戏都包含的 GPU 驱动程序)必须提供内存中使用的纹理类型类型,但由于前面提到的 NVIDIA 提供的开放文档,我们现在知道有一种方法可以在初始化内存时设置正确的类型。 最终结果是大大改进了渲染。Snack World: The Dungeon Crawl - Gold 并列JS 几乎看起来像没有眼镜的3D电视(零食世界:地牢爬行 - 黄金) 随着 Blinkhawk 的回归,团队终于可以开始唠叨他修复他的更改,更具体地说,第 1 部分。 在解决了部分信号量和缓存刷新回归问题后,Blinkhawk修复了影响墨迹逻辑的剩余故障以及ATM中闪烁的模型。Project Y.F.C.Splatoon 2Animal Crossing: New Horizons 长假 Byte[]本月的内核和服务工作一直专注于让Homebrew运行,但这也修复了一些图形问题。 第一个主要成就是首先让自制软件始终如一地运行。 byte[] 注意到在 yuzu 中启动 Homebrew 通常会导致整个模拟器在近 50% 的尝试中锁定 - 但只有在使用 Vulkan 时。 在启用验证层并对消息进行一些仔细调查后,他发现并修复了 Vulkan队列提交中一个微妙的竞争条件,最终使自制应用程序能够可靠地与 Vulkan 配合使用。可以说单元测试是仿真开发的核心 Vonchenplus本月也一直在支持自制软件,赠送了柚子对实例化绘制和滑稽的内联索引3D寄存器的支持,修复了gpu_console并允许自制游戏在柚子中渲染。与这些类型的变化相关的通常回归清单,这次影响,,,并且也已被识别和修复。Sonic 1 (2013)Super Mario 64Super Mario GalaxyXenoblade Chronicles 3Animal Crossing: New Horizons gpu_console,可用示例之一 这里是视频 是的,医生,所有的怀旧都直接流向我的血液(索尼克 1 2013) 最后,byte[] 修复了启用 Vulkan 时从自制菜单启动自制软件时产生的强烈、引起癫痫发作的闪烁,这是由于没有重新创建用于演示的图像造成的。现在,您可以从自制菜单启动控制台自制软件,就像在 Switch 上一样!模拟被黑客入侵的控制台现在非常热门 将话题切换到一个小(但很烦人)的问题,我们从 byte[] 提高了生活质量。 过去,将柚子拍摄的屏幕截图写入磁盘会明显阻碍游戏的渲染。 用户会认为这是一个相对较短的冻结(这种冻结的长度根据所使用的分辨率倍数的大小而变化)。 byte[]使它完全异步,即使在特别密集的照片拍摄期间也能实现流畅的游戏。 CPU、内核、服务和核心修复 几个月前对 CoreTiming 准确性的修复,作为拉取请求 #8650 的一部分,由于 Windows 对高精度计时事件的支持极差,添加了故意浪费 CPU 周期,直到经过一定时间。 但在 Linux 中,不需要此修复程序,因为 Linux 本身支持高精度延迟。byte[] 修改了该行为,允许 Linux 用户利用这一点并降低高 CPU 使用率。还记得我们说yuzu在Linux上更快吗?这是一个很好的例子,说明了我们的意思。 No Man's Sky发布,我们的测试人员Law发现它可以在启用自动存根的情况下启动。 byte[] 调查了日志文件并存根了以前未实现的调用,CheckFriendListAvailability和GetCacheStorageSize,允许启动。No Man's Sky仍然是最好的屏幕保护程序 Bayonetta 3的发布导致了一些难以追踪的问题。 您的常驻bunnei兔子正确实现,并且用于设置存储的打开的用户配置文件的相关内容导致启动时崩溃。修复存根使游戏最终启动,虽然现在可以玩,但它仍然很慢。 请继续关注将使这款游戏受益的性能优化!ListOpenContextStoredUsersStoreOpenContextListOpenContextStoredUsersBayonetta 3 German77也参与其中,将 SetRecordVolumeMuted 服务打断,让游戏启动。 您所在地区的热门主角(巴约内塔 3) 本月Bunnei的另一个值得注意的版本是多进程项目的开始。从一开始,柚子就只支持单进程架构,因为游戏在Switch上只使用一个进程。 然而,为了帮助提高 yuzu 对 Switch 软件的准确性,yuzu 一直专注于让关键的操作系统功能正常工作,其中最重要的是多进程支持,因为这对应于 Switch 软件的实际工作方式。 byte[] 和 bunnei 一直在努力为多进程支持提供某些先决条件。其中之一是支持服务器会话,这是自制软件所必需的。 这在 Switch 上用于启动自制软件,并且对于直接从其 NRO 文件启动时不起作用的自制软件是必需的。nx-hbloader 此外,byte[] 需要修复多个服务,因为以前的存根实现假设它们永远不会被拆除。 通过这些更改以及相关的图形修复,现在终于按预期工作了! 要使用它们,您可以从 Atmosphere 安装中提取。 放入柚子的SD卡目录,然后启动,自制菜单将启动。nx-hbloadernx-hbmenuhbl.nsphbmenu.nrohbmenu.nrohbl.nsp 他们现在推出(自制菜单和索尼克1 2013) 让我们谈谈amiibos。 Amiibo数据既以加密方式存储,也以纯数据的形式存储。 要访问加密部分,需要密钥转储,但并非所有游戏都使用加密部分,并且可以使用可用的明文。 对于这些情况,如果没有可用的密钥转储,German77 现在会将 amiibos 标记为只读。如果游戏需要,这不会取代转储您的 amiibo 密钥,但许多游戏只需基本级别的只读检测即可。 谢谢吉多利和德国77的照片! 输入改进 每次游戏初始化控制器的振动时,Yuzu 都会执行振动测试,但问题(始终存在问题)是某些控制器比其他控制器需要更长的时间来响应。 以前,实现了固定的 15ms 延迟,因为一些控制器只需要那么多时间来响应。 如果游戏执行连续的振动测试,游戏将延迟到控制器响应,这会导致帧速率降低,例如,从 60 FPS 降低到 32 FPS。 等待劣质控制器时失去的所有性能都是一场悲剧。 因此,需要一个更好的中间立场。值得庆幸的是,German77 提出了一个更智能的解决方案。 与其每次都重复测试,不如在第一次缓存它,然后返回相同的结果。对于我们这些使用通用控制器的人来说,这是一个不错的、免费的、性能的提升。 新人ZwipZwapZapony(喜欢这个名字)修复了左右控制器颜色识别方式中的复制粘贴错误。谢谢! 音频更改 你有没有注意到在主板BIOS/UEFI设置中,该选项似乎什么都不做,而只是反映了列表中第一个可用的选项? 好吧,我们多年来一直这样作弊。默认情况下,音频后端选项仅每次都处于选中状态。耻辱。 Maide 发现某些音频设备在使用时会产生巨大的延迟,因此他决定进行延迟测试并根据结果选择任一。AutoAutocubebcubebcubebSDL 然后,ToastUnlimited解决了此更改引起的回归问题,避免了崩溃。 新的Switch固件版本通常附带相当份额的新服务和附加功能,因此为了避免未来游戏中的潜在问题,Maide实现了一些新参数,任天堂使用固件15.0.0将其添加到其音频核心中。 用户界面改进 一些用户更喜欢更接近黄金比例的显示器,即辉煌的 16:10 纵横比。 虽然 Switch 游戏不适合在标准的 16:9 宽高比之外玩,但一些用户可以拉伸图像以填满整个显示器,即使这意味着一些轻微的失真。 随着Steam Deck的发布,这越来越受欢迎,它使用16:10的显示屏,分辨率为1280x800。 社区还可以选择为每个游戏提供不同的宽高比模组,允许正确使用那些漂亮的额外像素。 German77花时间将此新选项添加到纵横比列表中,您可以在其中找到该列表。Emulation > Configure… > Graphics > Aspect Ratio我个人不喜欢伸展,黑条万岁 Docteh,Morph和lioncash(他们从平时转移了一些时间,确保所有提交给柚子的PR都是理智的)在修复拼写错误方面有相当多的份额。发生在我们最好的人身上。 为了在我们重新设计兼容性报告时帮助减少用户混淆,Docteh 添加了一个新选项,用于默认从游戏列表中隐藏兼容性评级列。 任何有兴趣将其还原的人都可以在其中找到它。 请记住,在我们努力实施新的报告系统时,报告将不准确。Emulation > Configure… > General > UI > Show Compatibility List我们正在努力解决所有这些未测试的报告 并不是每个人都喜欢在游戏列表中以英语列出他们的游戏,许多人宁愿用他们的母语列出,或者至少是 Switch 支持的官方语言的另一种选择。 Vonchenplus致力于解决这个问题,现在Yuzu优先考虑以用户选择的语言显示游戏。并列JS 即使在线工作迫使您不断使用英语,用您的母语阅读也始终是最好的 硬件部分 这个部分本月会很短,因为大多数事情都在进行中! AMD, WIP 正如我们之前所说,我们得到了AMD的确认,他们正在调查现在影响启动崩溃的原因,以及其他先前报告的修复程序。Xenoblade Chronicles 3 未来的驾驶员将很有趣。 英伟达,更近一步 我们在影响Maxwell和Pascal卡的稳定性问题上取得了一些缓慢的进展。 现在承诺任何事情还为时过早,因此我们会及时通知您。 同时,如果您必须运行最新的驱动程序,请使用OpenGL。 希望下一个中端卡的成本不会与整个PC相同。 英特尔 Arc,我们走吧! 由于 byte[] ,游戏现在可以在 Vulkan 上运行,我们只需要自豪的蓝卡队所有者在我们的 GitHub 上报告问题。 给英特尔的信息:在欧洲、中国和美国以外有销售。请已经开始发货,以便您的作家可以开始测试... 这也适用于你,GabeN。 未来项目 随着第一部分导致的所有回归,Blinkhawk 已经开始为内部测试人员提供第 2 部分将包含的一些更改的第一个测试版本。 与任何首次尝试一样,当然也有回归,但一些长期存在的问题已经在这些版本中修复,因此请在以后的文章中期待更多新闻。Project Y.F.C. 不要忘记我们的文件系统重写,Morph实现了对传入保存数据路径结构的支持。工作仍在继续,一些障碍被击中,减缓了进度,但 Morph 继续前进。Project GaiaGaia 特别感谢神秘作家B的大力帮助,而你的作家在处理课程时半死不活。 他是复仇。他是黑夜 这就是所有人!谢谢你的时间,下个月见!
Yuzu进展报告2022年9月【edge浏览器机翻】 你好,你们好!这个月我们有很多话要谈。从游戏修复,输入更改和生活质量改进,到每个人都可以使用的新游戏选项! 伦敦项目:开源、在线本地无线仿真 正如在之前的进度报告中所承诺的那样,并在其专用文章中进行了解释,LDN支持在这里,可供所有用户使用!享受在你最喜欢的游戏中捅一些菜鸟。但在我们解释如何之前,让我们先介绍一些理论。任天堂开关上可用的多人游戏方法 任天堂开关为多人游戏提供了4种方法: 好,旧的,沙发本地多人游戏。虽然这通常只指同一物理房间中的人,但社区一直在享受远程访问流媒体的好处,使用Parsec等服务,以尽可能低的延迟在线播放。 局域网 (LAN) 多人游戏。这是当多个交换机连接到同一本地网络时。此选项已经在yuzu中被模仿并提供了很长一段时间。它仅限于极少数游戏,并且对滞后没有很好的容忍度。 LDN多人游戏,通常被称为本地无线,本节的明星。这是当一个交换机通过内置交换机 WiFi 硬件托管会话,而其他交换机作为来宾连接到该会话时。这里的诀窍是,没有什么能阻止模拟器使用服务器基础设施来托管房间,以便来自世界任何地方(包括本地)的用户都可以加入并相互粉碎。与LAN相比,游戏更支持这种方法。 任天堂在线.这是在线玩游戏的付费任天堂服务,其中还包括其他奖金,例如官方模拟器来玩旧游戏。我们没有计划在近期或远期为任天堂在线提供支持。 Project London包括对 LDN 的完全支持,包括房间托管和加入,并改进了我们的 LAN 支持以使用新的 LDN 代码。 现在,让我们进入有趣的部分:如何使用它! 用户可以通过选择菜单栏中的选项,然后选择 来启动 ,或者单击右下角标记为Public Room BrowserMultiplayerBrowse Public Game LobbyNot Connected. Click here to find a room!新的多人游戏子菜单 从那里,双击聊天室将允许用户加入该聊天室。请记住,这只是一个建议,对可以在一个房间里玩哪些游戏没有硬性限制。在加入公共游说团体时,请记住这一点,并礼貌地对待您的同伴!任何由用户托管的房间都可以通过踢玩家或锁定他们的房间来强制执行。Preferred Game锁意味着它是一个受密码保护的房间 说到用户托管的房间,菜单中的选项允许用户托管自己的房间,具有自定义播放器限制和可选的密码安全性。某些端口需要在主机的路由器/调制解调器配置中转发,因此请按照此处的指南进行操作。Create RoomMultiplayer随意托管任何你想要的游戏! 一旦玩家加入一个房间,他们就可以与其他成员聊天,查看他们正在运行的游戏,而且非常重要的是,其他玩家正在使用的游戏版本。大多数游戏往往只有在所有玩家都运行相同的游戏更新版本时才有效,因此请记住从Switch中转储最新版本! 在柚子中开始游戏之前,不强制要求加入房间,但建议这样做。目前,只有LAN支持与真正的交换机连接。LDN 只是柚子到柚子,但我们正在努力在将来的某个时候为 LDN 提供本机交换机支持。 到目前为止,很少有游戏存在LDN问题。仅 ,并已报告为不兼容。任何其他本地无线兼容游戏都应该可以正常工作,但是如果您发现任何问题,请不要害羞地报告它们。Super Mario Maker 2Mario Golf: Super RushDRAGON BALL FighterZ 一点信息,在LDN上播放时具有硬编码的6帧延迟。据说这是为了“帮助缓冲”在线和WiFi游戏的预期延迟。虽然理想的解决方案是使用Parsec在本地多人游戏中玩游戏(本地游戏没有强制延迟),但并不是每个人都有良好的上传速度来托管,或者习惯于远程访问他们的计算机。Super Smash Bros. Ultimate 另一种方法是:以120 FPS的速度运行游戏,将延迟减少到只有3帧。为此,文件室中的所有用户都必须执行两项操作: 安装此处提供的 120 FPS 模组。右键单击柚子的游戏列表中的游戏并选择 ,然后将压缩文件的文件夹放在柚子打开的位置。Open Mod Data Location 将游戏速度设置为 200%。这可以通过自定义配置在每个游戏的基础上进行设置。像以前一样右键单击yuzu列表中的游戏,然后选择>选项卡>蓝色启用值(这意味着它是自定义值,忽略默认值),>将其更改为200%。PropertiesGeneralLimit Speed Percent通过更快地运行东西来减少输入滞后,生活技巧 维持120 FPS需要一些GPU功率,因此,我们的最低硬件建议可能不会削减它(RX 550在1v1战斗中低于100 FPS),但现代低/中端硬件应该没问题。测试还表明,如果显示器支持,AMD Windows驱动程序只能达到高于60的帧速率。我们向AMD报告了这个问题,希望将来这不会强迫用户获得高刷新率显示器。 就是这样!加入房间,无论是在柚子还是在游戏中,并战斗!或者交易那些神奇宝贝,你的电话。由于ldn_mitm项目为我们提供了许可证豁免,以及Tobi和gerd77所做的工作,以及测试人员(包括您的作者)所做的工作,他们从未以进步的名义对游戏进行过如此多的乐趣。 在主线发行后,Linux用户报告说LDN房间拒绝在某些Linux发行版上工作。问题在于 SSL 包的分发方式。Toast不受限制,参考了Docteh之前的拉取请求,修复了这个问题,所以现在所有支持的操作系统都可以享受LDN。 一些用户报告在播放时崩溃。在实现更正时,请确保在 中选择了有效的网络设备。崩溃似乎发生在设置为网络接口时。Pokémon Sword/ShieldEmulation > Configure… > System > Network > Network InterfaceNone 图形更改 NVIDIA OpenGL用户可能在游戏中看到了一些奇怪的图形故障,例如,由于柚子对性能增强扩展的处理疏忽。冯辰普拉斯猛冲过来修复,这些游戏现在渲染了它们应该的样子。Dragon Quest BuildersSNACK WORLD: THE DUNGEON CRAWLPixel Game Maker Series Werewolf Princess Kaguyavertex_buffer_unified_memoryJuxtaposeJ 勇者斗恶龙建造者JuxtaposeJ 小吃世界:地牢爬行JuxtaposeJ 像素游戏制作者系列狼人公主卡古亚 用户可能已经注意到 一个有趣的方形月亮 。这是由于纹理缓存未正确同步游戏使用的ASTC纹理到所有图层,因此vonchenplus添加了一种解决方法,以避免用错误颜色填充额外的无效图层,这会将月亮变回我们都喜欢的圆形。Live a LiveJuxtaposeJ 不完全是红月亮,涂鸦!(现场直播) 一些系统,如Steam,不喜欢柚子生成新进程以检查Vulkan支持工作的行为。ToastUnlimit更新了Vulkan检查器,并提供了一个配置选项,可以停止检查,允许这些系统与旧的柚子版本相同。 经过三个月的回归求解和通常令人讨厌的延迟,第1部分终于合并到主线!您可以在此处找到有关它的更多信息,以及第2部分在不久的将来的预期内容。Project Y.F.C. 目前,一个倒退仍然存在。它会影响 的单人游戏模式中的某些谜题。虽然第 2 部分正在开发中,但受此问题影响的用户应坚持使用主线版本 1190。Splatoon 2 我们上个月提到过尝试推送更具侵略性的值,以使GPU用户受益,这些用户可以启用可调整大小的BAR/智能访问内存(或ReBAR / SAM)。虽然该选项确实与Mainline 1189短暂合并,但用户很快报告了巨大的性能提升和损失,与正在使用的GPU / CPU无关。此更改似乎非常特定于平台,并且平均值倾向于性能损失,因此byte将其还原。Staging Buffer 自从Morph涉足图形工作以来已经有一段时间了。 由于 vsync 事件调用过多而无法启动。将事件限制为每个显示器仅一次,可以最终启动并播放。.hack//G.U. Last Recode.hack.hack//G.U.上次重新编码 音频更改 上个月的清理工作在本月继续进行,来自Maide的新音频拉取请求。这修复了某些用户在过场动画期间遇到的音频不同步问题。以前,Maide 的音频实现有时会出现游戏音频生成样本的速度太快的问题,以至于主机音频后端(SDL 或 Cubeb)无法及时播放。现在,如果游戏开始产生太多样本,它将暂时暂停,直到音频后端赶上。Xenoblade Chronicles 3 Maide还对音频系统及其与暂停和关机的关系进行了相对较大的清理。在拉取请求8842之前,音频系统有自己的计时器系统来处理独立于yuzu的计时器系统运行的后端。现在,执行此操作时的同步问题已得到解决,Maide删除了自定义计时器系统,以便现在通过 正确处理暂停和关闭来运行所有内容。因此,不再需要音频系统识别暂停和关机的脚手架,可以将其删除。CoreTimingCoreTiming异度之刃编年史 3 然而,这些音频变化确实伴随着轻微的倒退。在多核模式下,计时器回调在它们自己的线程上运行,这允许它们独立于 CPU 内核执行。但是,由于 yuzu 尝试在单核模式下确定性,因此在此模式下,每个定时回调和每个模拟处理器指令都从单个主机线程运行。在单核模式下,这可以防止计时器回调被有效地暂停,从而导致音频服务尝试不断暂停游戏以赶上进度。Maide通过简单地不暂停(如果启用了单核模式)来解决此问题。 这一次,Maide并不是唯一一个从事音频工作的贡献者!vonchenplus注意到,新服务是用于优化Opus音频播放的服务,它没有实现启动所需的任何多流功能。他添加了一个游戏需要的新功能,游戏启动了。HwOpusDragon Quest XGetWorkBufferSizeForMultiStreamEx勇者斗恶龙X 内核仿真 柚子正在缓慢但肯定地提高其运行自制应用程序的能力。因此,当团队发现哈基尼安之船自制产品(的 PC 端口)在柚子中无法正常工作时,我们很感兴趣,并追踪到一个缺失的服务实现。german77增加了对pl:s服务的支持,该服务用于加载字体,游戏现在启动和渲染,帧插值高达60 fps即可正常工作。The Legend of Zelda: Ocarina of Time 【这里是视频】 纯粹的怀旧,右键单击并启用音频(时间的奥卡琳娜,哈基尼安的船) 在我们的“其他架构”新闻领域,柳树宇修改了柚子的CMake设置,使其与ARM64架构部分兼容。这允许为 ARM64 构建 LDN 服务器应用程序。Pi服务器,有人吗?yuzu-room 请继续关注有关WRAM64上的柚子的未来新闻... 输入更改 yuzu的输入仿真长期存在的问题之一是控制器重新连接后运动控制不起作用。多亏了 german77,此问题现已修复。发生这种情况是因为yuzu仅在控制器首次连接时检查运动控制,而不是在随后的重新连接时检查。确保柚子在每次重新连接时检查运动控制解决了此问题。 多年来,yuzu的输入仿真一直缺少对仿真流行控制器的支持。在他对此进行逆向工程的努力中,german77发现,对其最有意义的功能都被锁定在任天堂在线开关(NSO)之后。虽然这使他对它失去了兴趣,但他部分地实现了对模拟该控制器(包括运动控制)的支持,从而为其他人提供了改进。现在,您可以在中选择它并像任何其他控制器一样使用它,但不支持从中加载数据或向其写入数据。Pokéball PlusPokémon Let's Go, Pikachu/Eevee! 上个月的Amiibo仿真支持工作也看到了重大改进和错误修复。通过这些更改,Amiibo 密钥现在是读取/写入任何数据的强制性要求。这也修复了Amiibo在游戏等中的支持。Shovel KnightSuper Smash Bros. Ultimate 修复了GameCube控制器输入映射中的一个小错误,该错误导致GC触发器覆盖按钮。为了进一步补充此修复,german77还使模拟输入按钮可切换以扩展可用性。ZL/ZR 可访问性既非常重要,又可悲的是,也很容易被忽视。例如,一些简单的事情:如果用户需要更多时间来单独映射按钮,该怎么办?为了帮助解决此特定情况,按钮映射计时器持续时间已从 增加到 。2.5 seconds4 seconds 用户界面更改 本月,我们还从多个贡献者那里获得了各种 UI 改进。 旧的SD卡图标已被开发龙钴用新的彩色微型SD卡图标取代。小细节很重要 Tachi107 修复了柚子源代码中的一些小错误。 german77 修改了保存在 中的输入配置文件的顺序。它们现在按名称排序。Emulation > Configure... > Controls 虽然彩色主题在一段时间内一直是默认主题,但某些图标仍保留在“默认”主题目录中。但是由于Linux不支持从其他主题抓取图标,因此这被打破了。Docteh通过将所有图标移动到彩色主题来解决此问题。 由于配置选项卡变得拥挤,Docteh 使其可滚动。Debug虽然此更改也有助于Windows用户,但Linux用户将从中受益最多 Docteh还修复了TAS配置窗口中损坏的帮助页面超链接。人们似乎忘记了蓝色下划线的文本表示要单击的超链接 杂项 很长一段时间以来,来自Windows用户的任何柚子错误报告都必须由团队手动复制和调查。Linux 用户可以选择提供堆栈跟踪,但 Windows 用户无法提供类似的调试信息。 为了克服这个问题,Toast无限制地实现了支持,以在柚子本身中创建Windows故障转储。这允许Windows上的任何外行人轻松获得故障转储,而无需跳过各种开发人员预期的箍。但是,由于此功能对性能有很大的影响,因此在设置中的选项后面添加了此功能,供用户访问。你可以在 中找到它。DebugEmulation > Configure… > General > Debug > Create Minidump After Crash仅当您要调试游戏或将文件传递给开发人员时才使用它,性能损失是显着的! 由于转储使用新式 Windows SDK 功能,因此此更改可能会破坏与旧版 Windows 选项的兼容性。柚子只正式支持Windows版本10 1803及更高版本。当然还有 Linux。它比视窗更快。 硬件部分AMD 雷迪恩,当提高准确性时会产生崩溃 用户在运行官方 AMD 驱动程序(视窗驱动程序或操作系统驱动程序)的 AMD 雷迪恩 GPU 上启动时开始报告崩溃。我们正在调查amdvlk源代码以找到原因,并已通知AMD我们掌握的所有相关信息。Xenoblade Chronicles 3 原因似乎是宏观JIT准确性的提高。测试表明,即使使用较旧的驱动程序和柚子版本,禁用MacroJIT速度黑客也会导致官方AMD Vulkan驱动程序崩溃,因此它遗憾地发现,提高其准确性现在会产生相同的结果。 受影响的用户可以尝试运行主线 1188,或者只是使用 OpenGL 运行游戏。台面 RADV 驱动程序不受影响。 英伟达,崩溃的一个来源,还有更多 我们已经合并了上个月提到的多线程ASTC CPU解码器,因此我们强烈建议NVIDIA麦克斯韦和帕斯卡(GTX 745 /750,900和1000系列)用户禁用ASTC解码,如果您运行最新的驱动程序。 您可以在 中找到该选项,启用此设置使用 GPU 进行解码,同时禁用它时使用 CPU。作为奖励,现在此选项可以在集成GPU非常弱的系统上提高性能,例如具有MX系列Geforce硬件的旧笔记本电脑或任何英特尔iGPU,CPU可以更快地处理ASTC解码。测试表明,Geforce MX 500 和雷迪恩维加 7+ 层 GPU 使用 GPU 进行解码的速度稍快一些。在受影响的 NVIDIA 硬件上,解码 ASTC 纹理时性能下降的次数极小。例如,在游戏中打开地图时避免崩溃可以说要重要得多。Emulation > Configure... > Graphics > Accelerate ASTC Texture DecodingThe Legend of Zelda 由最近的驱动程序更新引起的崩溃仍然存在,但您的作者继续每天骚扰NVIDIA驱动程序开发人员(我现在只需要进入英特尔即可对所有三个供应商执行相同的操作)。因此,我们推荐适用于 Maxwell 和 Pascal 硬件的 472/473 系列驱动程序,以确保最佳性能和与 yuzu 的兼容性。使用最新的驱动程序没有错,但在解决这些崩溃之前,预计它们会出现不稳定和图形故障。图灵,安培和Ada硬件(1600,2000,3000和4000系列)表现出一些奇怪的行为,但与他们的哥哥相比,(在撰写本文时)最新的520/522系列驱动程序上要稳定得多。 人们想知道麦克斯韦和帕斯卡将继续得到NVIDIA司机的支持。 英特尔 ARC 支持 目前还没有关于Vulkan支持英特尔这些新的“AV1视频解码器卡”的消息,这些卡也可以用作GPU。低可用性使我们很难获得一个,但这是我们想要尽快解决的问题。 OpenGL现在是“功能性的”,但英特尔仍然是Windows上OpenGL支持方面最糟糕的供应商,因此体验非常糟糕。据报道,Linux Mesa驱动程序在OpenGL和伏尔坎中都能正常工作,并且具有良好的性能。 说到 AV1,目前我们一直在对文章中嵌入的视频使用 h.264 编码,因为它在硬件要求方面既得到广泛支持,又非常轻量级。您是否希望我们从现在开始切换到AV1?在没有专用硬件解码器的设备上,这可能是一个很大的电池消耗,但它将允许更低的比特率,同时保持类似的质量水平,这是数据存储用户过去抱怨的事情。在Reddit,我们的论坛或我们的不和谐服务器上告诉我们您更喜欢什么! 未来项目 这一次,我们在本节中没有太多要说的。或者我应该说,我们还不想开始为新项目制造炒作。 如前所述,Blinkhawk 已经开始着手制作 第 2 部分,GPU 帮派的其余部分(字节 []、迈德、冯辰普拉斯)也忙于进行一些绝密的更改(目前,您的作者有一个声誉)来提高渲染精度和性能。Project Y.F.C. 将第一部分合并到主线为许多迄今为止被搁置的项目打开了闸门。我们将在下一份进度报告中更详细地讨论这些问题。Y.F.C. 特别感谢神秘作家B对这份进度报告的帮助,以及CaptV0rt3x,他立即伸出援手。 这就是所有的人!一如既往,非常感谢您抽出宝贵时间。我们希望在下一篇文章中见到你!
Yuzu进展报告2022年8月【edge浏览器机翻】 欢迎回来,你们!八月是充满进步的一个月。大量的图形更改,内核和文件系统改进,以及更多的工作投入到网络仿真中。请看下一张幻灯片! 图形更改 本月包括了七月份大片发布的一些值得注意的修复程序。虽然在技术上确实在yuzu的发布日工作,但我们花了一些时间来解决稳定性问题。Xenoblade Chronicles 3Xenoblade Chronicles 3 上个月提到的第一个是yuzu的着色器重新编译器的修复。柚子不使用 GLSL 编译器来生成 SPIR-V,即伏尔坎着色器语言。相反,它直接生成SPIR-V,这要快得多,但出错的可能性更大。在这种情况下,着色器重新编译器未能在 SPIR-V 着色器中声明某些变量,并将对它们的引用保留为 null,从而导致着色器在编译时使驱动程序崩溃。Maide和byte[]很快发现并修复了这个问题,允许游戏在发布日在Vulkan中运行。使用的管道集非常庞大,许多管道缓存在扩展游戏后会超过15000个条目。对于所有图形后端,yuzu 会在游戏开始之前预编译着色器,并且不允许在编译完成之前启动着色器。在 GLSL 上使用 OpenGL 时,编译需要一整分钟才能完成,管道缓存的大小与 生成的管道缓存一样大。更糟糕的是,您以前无法在编译进程时取消该进程。如果你尝试过,柚子会冻结并继续等待编译完成,然后再允许你关闭游戏。byte[] 解决了这个轻微的 UX 烦恼,让着色器编译器在每个着色器编译后检查取消,允许编译随时立即停止。Xenoblade Chronicles 3Xenoblade Chronicles 3Xenoblade Chronicles 3的大量管道也会导致仿真问题。因为yuzu试图给你一个尽可能无口吃的体验,它试图在你开始玩之前将所有已知的管道加载到内存中。如果一个游戏只有几千个管道,这可能是一个合理的提议。但是,将 Xenoblade 的 15000 多个不同管道全部保留在内存中的同时会导致 GPU 驱动程序中的内存使用量飙升。旧的Cemu用户可能还记得在使用NVIDIA GPU时遇到类似的问题。 为此,byte[] 在 yuzu 中查找了可能导致 GPU 驱动程序保留比它需要的更多的内存的任何问题。byte[] 注意到 OpenGL 除了跟踪已编译的着色器源代码之外,还会跟踪着色器源代码的单个对象。正确允许释放这些着色器源代码对象会回收大量浪费的内存。用户现在可以期望在运行OpenGL并遭受情感伤害时会降低VRAM和RAM的使用率。柚子的OpenGL后端一直有一段时间的优势是稳定性。它并没有真正崩溃。然而,瓦勒坎是另一个故事。即使在前面提到的最初的Vulkan着色器修复之后,游戏仍然会在过场动画中随机崩溃。byte[] 能够可靠地重现问题,并发现 yuzu 在 GPU 处理中收到了一些无效的引用。无论这是否是游戏合法做的事情,或者只是一个仿真错误,他都认为yuzu可以通过传递图像视图VK_NULL_HANDLE来避免崩溃,而不是尝试为空图像创建图像视图,这肯定会崩溃。Xenoblade Chronicles 3Windows上的AMD用户对瓦肯的支持一无所知。我们的一位测试人员(你的编写者)获取了一个包含 Vulkan 验证错误的日志,并确定崩溃是由于尝试使用 Windows 驱动程序不支持的某些顶点格式造成的。但是,它们由 Linux 梅萨驱动程序支持。byte[] 还确定了一种相反的情况,其中Windows驱动程序支持一种格式,但不支持RADV,并实现了一种通用的解决方法,该解决方法将替换两种情况的兼容格式,同时修复多个崩溃。Xenoblade Chronicles 3RADV一些与《异度之刃》无关的GPU更改也在本月进行了更改。 多年后,自从我们的Vulkan后端开始以来,柚子终于通过新的贡献者djrobx在Vulkan中添加了对VSync的支持。正如添加它的拉取请求所描述的那样,如果仿真和显示非常接近精确同步,那么当新生成的帧不会决定性地落在下一个要显示的帧时,可能会出现抖动。此更改允许 yuzu 将帧与显示器刷新率完全同步,从而防止任何抖动。谢谢!不再撕裂,火神版 Merry是《发电机组》的作者(也是现实生活中的白魔法师),他优化了GPU在平铺和直到图像之间进行转换的过程。这不会对游戏的性能产生太大影响,因为它们通常避免在平铺和未平铺图像之间进行转换,但它显着提高了自制应用程序的性能,这些应用程序将每一帧转换为显示到控制台。 关于不寻常的技术,冯辰普拉斯实现了对称为矩形纹理的传统OpenGL格式的支持。【对比】 传统功能似乎在一些游戏工作室中很受欢迎 作为此更改的副作用,Morph 必须发出管道缓存清除。 您可能在想,但所有的纹理都不是矩形的吗?这是真的,但是使矩形纹理与众不同的是,它们在着色器中索引,坐标从0到其宽度/高度 - 纹素坐标,而不是0到1 - 归一化坐标。这个模式不是很有用,所以看到它仍然被游戏使用是一个惊喜。此更改修复了 and 中的许多渲染问题(两个游戏使用相同的引擎)。Fast RMXThe Touryst【对比】 不再在深渊(图瑞斯特)度假 对于 ,则在游戏中的图形设置中禁用可修复过度正确的渲染错误。测试表明,OpenGL似乎更适合这款游戏。Fast RMXDYNAMIC CAMERA EXPOSUREvonchenplus还专注于自制啤酒,它实现了对让 RetroArch 自制啤酒在柚子内部工作所需的一些支持。是的,更多的“模拟器中的模拟器”恶作剧。 第一步是服务,用于控制控制台上的时钟速度,该服务被存根以允许 RetroArch 启动。时钟速度的仿真对柚子来说意义不大,所以这不是损失。第二个是 by 的一种特殊行为,它使用不同的帧缓冲器裁剪,并且在没有正确仿真的情况下出现在屏幕的中间。clkrstswitch-mesa 在准备发布更改时,Tobi发现了一些问题,这些问题使其无法正常工作。byte[]发现它可以在单核中启动,但游戏在Vulkan中的渲染非常糟糕。为此,byte[] 添加了对游戏使用的 R16G16B16X16 格式的支持,修复了渲染问题。尽管如此,还需要做更多的工作才能使这个游戏在柚子上玩。Project LondonRocket League【对比】 在他的 Magnum Opus 上工作时,byte[] 还针对 和 的先前性能修复程序实施了解决方法。虽然性能修复应该是无回归的,因为它是缓冲区缓存中的一个错误,但许多游戏需要更改之前不太准确的行为。,并且所有游戏都有一些额外的闪烁,这些闪烁是在此拉取请求之后引入的,因此byte[]使该功能,悲观的刷新,可选,并且默认情况下禁用,因为大多数游戏不受影响。Super Mario GalaxySuper Mario SunshineMario + Rabbids Kingdom BattleSplatoon 2Super Smash Bros. Ultimate最后,在本月的GPU更改列表中,german77以及Skyline模拟器的章程为某些游戏使用的视口旋转扩展添加了仿真。这些由具有扩展名的NVIDIA GPU支持,但不是AMD或英特尔GPU,因此一些游戏看起来会颠倒或翻转。像、 、 和许多其他游戏现在可以在 AMD 和英特尔上玩!Street of Rage 4CelesteAxiom Verge 逆向攀岩(天琴)的新含义【对比】 CPU、内核和文件系统仿真 对于仍在运行不支持的 Windows 版本的用户,我们有一些好消息!由于vladkosi进行了调查,梅里能够在快速记忆中实现所需的更改,以再次支持早于Windows 10版本1803的Windows版本。 虽然这对Windows 7团伙来说是个好消息,但它并没有改变我们对操作系统版本支持的立场:只有Linux,Windows 10版本1803和更新的版本受到官方支持。时间将告诉我们,在将来对Vulkan和内存管理进行更改后,与旧Windows版本的兼容性会发生什么变化,但就目前而言,它们的使用寿命更长。 但好消息并不止于此。以下是一些旨在帮助模组社区的更改! 过去,不允许向模组添加内联注释,因为我们以一种使它们不兼容的方式解析文本。Morph 现在分隔十六进制值字符串,允许模组制作者添加注释。例如:pchtxt Before: here to here v v12345678 12345678 // comment ^ ^After: here to here 我们当前的文件系统仿真可以被认为是意大利面条式代码,因为在可用的信息较少时进行了旧的猜测,并且由不再为项目做出贡献的开发人员进行了拼凑。没有办法给它涂上糖衣,这是Morph一年多来一直在努力工作的主要原因,完全重写了当前的虚拟文件系统实现。Project Gaia 同时,可以做一些进一步的拼凑工作,以减少开发人员和模组制作者目前忍受的麻烦。例如,由一堆零填充,模组制作者更习惯于缩写形式,而不包括开头不相关的零。为了解决这个问题,byte[] 使用 fmt 解析构建 ID 字符串,以便在需要时动态添加所需的零。Build IDs vonchenplus继续专注于改进 RetroArch 在 yuzu 中的体验,他发现在解析目录时递归计算文件大小会对性能产生负面影响,在这种情况下,当使用模拟器(在模拟器内)启动游戏时,这被视为“加载时间”。简单地忽略此信息是改善用户体验的好方法。请注意,此更改无助于在柚子上运行本机 Switch 游戏,它只会为 RetroArch 提供更快的加载时间。 用户界面更改 长期以来,人们一直在要求柚子的音量更大,而Maide做到了。现在,如果用户转到 ,他们可以将音量设置为200%,真正将其设置为11!Emulation > Configure… > Audio不要吵醒你的邻居 要记住的是,某些游戏的音量已调整为它们正在使用的输出。例如,手持设备中的游戏可能比对接式游戏更响亮,因此不要给可怜的耳朵带来压力。 柚子的部分代码仍然基于Citra,甚至有些部分不再相关,或者多年来已经过时了。清理代码是任何项目中无聊但必要的部分,对于开源项目来说更是如此,yuzu也不例外。在早期非常有用的一个功能是加载ELF二进制文件。在早期,开发人员不是处理XCI和NSP转储,而是转储并提取游戏的整个文件结构,并直接加载ELF二进制文件,其方式类似于用户在Windows上打开.exe文件以加载程序的方式。 几年后,这个功能不仅因优雅而玷污,而且还停止了工作。由于它目前不是优先级,并且可能导致用户混淆,因此byte[]将其从“文件”下拉列表中删除。 亚洲语言 Windows 用户注意到游戏列表中的“大小”列和“速度百分比”设置显示的字符非常奇怪。外星人号码 当然,这是不可接受的,因此Docteh在Windows中实施了必要的更改以解决此问题。好多了 添加到仅限亚洲语言的 UI 错误列表中,如果用户以中文启动 yuzu,然后切换到英语,则底部的筛选器栏和顶部的游戏列表列将保持未翻译状态,拒绝切换。强迫Qt重新翻译这些对象解决了这个问题,让多克特很高兴。 Docteh 还实现了更多的 UI 修复,清理了“关于”对话框,并使直接连接 UI 中的默认端口号忽略转换。【对比】 柚子 关于对话框更改 用户抱怨控制器配置文件下拉列表的字符限制太短,抑制了他们的创造力。german77 加强了字符限制。 输入改进 带有控制器的UI导航是柚子的最新补充,因此还有改进的余地。例如,用户报告说,如果启用了“在游戏启动时提示用户”功能,则控制器输入将能够导航选项并启动游戏,但无法实际更改配置文件或取消启动过程。新人琼斯英国用一点Qt魔术解决了这两个问题。谢谢! 有些用户更喜欢依赖 DS4Windows,而不是柚子对游戏控制器的原生支持。虽然这有一个很好的理由,但这是让单个应用程序处理XInput仿真的简单方法,但它也可能导致 german77 发现的一些有趣问题。例如,当前版本的 DS4Windows 无法处理两个后续的振动命令,从而产生(取决于您询问的人)不舒服的持续振动。为了解决这个问题,german77添加了一个小的延迟,以便应用程序不会跳过停止信号。 在一个更丰富多彩的话题上,并打算修复一个错误,german77花了很多时间烹饪如何正确模拟控制器颜色,还有一个修复电池电量图标的配菜!Mario Party Superstars导航到并前往城镇!Emulation > Configure… > Controls > Advanced 为了结束这一部分,我们必须承认我们这边的哎呀。随着红外摄像机支持的初始实施,输出被保存到存储中。每个视频帧作为单独的图像文件...这导致大量文件被写入磁盘,使使用文件管理器进行导航变得痛苦,并占用了大量的可用存储空间。哎呀。german77迅速采取行动,并将输出移动到缓冲区。 如果任何用户受此影响并且无法删除文件,请打开命令提示符或终端,导航到“图片”文件夹,然后运行以一次清除所有文件。del IMG_00*.jpg 硬件部分英特尔 ARC 加入乐趣 我们收到的信息显示,A380 英特尔 GPU 的早期采用者在使用 Vulkan 运行游戏时遇到问题。由于此硬件尚未在全球范围内提供,因此我们的开发人员和测试人员不容易掌握它,因此请在我们的GitHub中发布问题,包括日志文件,或者在我们的论坛或Discord服务器上与我们联系。如果需要,我们会要求您提供更多信息,以找到原因。为早期采用者的困境而欢呼。 利用亮起的阿姆德 使用 AMD GPU 的用户报告说,特定的点总是会导致顶点爆炸。解决此问题的方法是使用OpenGL和2X分辨率乘数运行游戏,越过该区域,保存并切换到Vulkan。Xenoblade Chronicles 3 为什么使用奇怪的特定2X分辨率乘数?出于同样的原因,我们上个月的性能图表没有关于这个新的OpenGL驱动程序的结果,它会导致与驱动程序相关的崩溃。2X可解决此崩溃问题,并且AMD已正确收到此问题的警报。到目前为止,他们还没有消息,但是由于我们访问了他们的Vanguard beta测试程序,因此一旦修复程序在公共驱动程序中发布,我们就会告诉您。现在,在 OpenGL 下,游戏的速度并没有慢多少,但是在 Vulkan 下,着色器的卡顿效果总是会明显好转。Xenoblade Chronicles 2 我们建议将更多模拟器开发人员应用于 Vanguard,因为内置驱动程序 bug 报告工具的间接方法对于控制台模拟器的特定需求并不理想。 英伟达让我们自己去计算 我们确认,当前 516.XX 系列驱动程序影响 Maxwell 和 Pascal GPU 的崩溃至少有很大一部分是由计算着色器中的一些驱动程序更改引起的,这与我们基于计算着色器的 ASTC 纹理解码器产生共鸣。作为解决方案,为了避免将来出现此问题,因为这不是NVIDIA驱动程序更新第一次破坏它,我们正在考虑切换到由Morph开发的多线程CPU解码器。 KOEI游戏上阴影闪烁的原因仍在调查中。 未来项目 合并的延迟不仅会影响主线用户,还会阻碍开发进度。在另一个地狱冻结的例子中(没有人期望AMD修复OpenGL),所有的人的NVIDIA都开源了一些文档(当然,这是我们正在谈论的NVIDIA,他们是如此的封闭源代码,他们甚至没有得到新鲜空气)。这包括 Maxwell 3D 寄存器的专有名称、全新的寄存器,甚至是以前未知的值。由于这个新的官方信息,Maide一直在检查,替换和清理大量代码,但是此更改的合并将不得不等待。预计不会对此进行任何游戏修复,但是清理和易于理解是非常值得的。Project Y.F.C. 一个有趣的实验将使一些带宽匮乏的游戏(如,和等)中的所有用户受益,那就是增加Vulkan的流缓冲区大小的大小。测试显示,即使没有 ReBAR 支持,性能也会提高 10-50%,具体取决于系统,这会将缓冲区大小限制为 256MB。访问所有可用的VRAM为更高的增益提供了可能性!The Legend of Zelda: Breath of the WildXenoblade Chronicles 3SHIN MEGAMI TENSEI V【对比】 在作者的唠叨过多之后,byte[]实现了一个草稿,以便使用滑块轻松测试该功能,但最终目标是动态管理它,因此不要指望在官方版本中将此功能视为UI选项。 在为《Tobi》做最后的润色时,他一点也不被动:Project London 添加代理套接字数据包的功能,其中包括具有本地网络支持的自定义房间,包括 LAN 游戏,而不仅仅是 LDN。 存根并添加一些必需的数据类型。 对正在进行的聊天室功能的改进。哦!我们怎么会差点忘记呢?,LDN支持,现在终于出来了!有关详细信息,请参阅专用文章和多人游戏指南。我们将在下一份进度报告中回顾该版本。Project London 这就是所有的人!非常感谢您坚持与我们在一起,我希望下次再见! 特别感谢神秘作家B对本文的帮助!悬念咬我
牧场物语QQ频道(内有全游戏下载资源) 大家好,我们开创了一个牧场物语的QQ频道,里面包括牧场物语、符文工厂的基本上所有游戏资源(大部分为民间交流学习用的汉化资源) 资源列表 牧场物语;双子村+ 重聚矿石镇PC 符文工房5NS 符文工房5pc 符文工房4特别版NS 橄榄镇与希望的大地NS 蜡笔小新 重聚矿石镇NS 哆啦A梦NS 符文工房.海洋日版 橄榄镇与希望的大地PC SFC牧场物语 PS1牧场物语–中秋满月汉化版 符文工房4特别版PC 哆啦A梦PC 牧场物语GB.gb 牧场物语N64(美版).zip 牧场物语:美妙人生[美版].iso 牧场物语中秋满月psp[日版].iso 牧场物语GB2[汉化].gbc 牧场物语GB3[汉化].gbc 符文工房:边境[美版].zip 蜜糖村和大家的愿望[简][GC汉化组].zip 风之集市2014字体完美版.rar 济世之树【日版】.wbfs 牧场物语:幸福之诗【日版】.iso 精灵驿站汉化测试11月15日.nds 牧场物语:欢乐雀跃的动物进行曲(日)RBIJ99.wbfs PS2游戏《牧场物语Oh!美妙人生》日版.rar PS2《牧场物语3:燃起心中的热火》日版.rar [2014女孩完美汉化版1.3][牧场物语 矿石镇的伙伴们 女孩版][矿石镇有爱小组] 养育你的小岛.nds 精灵驿站汉化v1.nds 2048_-_牧场物语_闪耀的太阳与伙伴们_简体中文版_V.1.01_Build20080910_APEX_华康少女 符文工房123.rar 波波罗克洛伊斯牧场物语日版.rar 牧场物语双子村.nds 牧场物语三个村庄汉化版.rar 符文工房4汉化版.cci 牧场物语连接新天地完全汉化版1.3.3ds 牧场物语起源的大地.cci [2013完美汉化版1.7][牧场物语矿石镇的伙伴们][矿石镇的伙伴们][矿石镇有爱小组].zip 同时大家也可以在频道里友好交流,讨论攻略,搜集相关周边资源,欢迎大家加入。 点击链接加入QQ频道【牧场物语】:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fpd.qq.com%2Fs%2Fk5rdnh&urlrefer=863d5956d70b859d80cc0d9709528512
Yuzu进展报告2022年6月【edge浏览器机翻】 亲爱的yuz-ers,我们在6月份取得了惊人的进展!驱动程序错误正在被压缩,内核和CPU改进,UI和输入更改等等! 适用于AMD Radeon用户的PSA(以及NVIDIA标签) 让我们从上个月提到的一个驱动程序错误开始。Vulkan扩展终于到达了AMD硬件,驱动程序版本为22.5.2,但并不稳定。Radeon用户会告诉你,任何游戏在更新后都会在Vulkan中崩溃。为了缓解这种情况,toastUnlimited 为特定 Vulkan 驱动程序版本 AMD 报告 22.5.2(及其等效的 Linux AMDVLK 包)2.0.226 实现了扩展块。VK_KHR_push_descriptor 向前跳过一个月,新的22.6.1驱动程序已修复发布!但是,有一个但是,新驱动程序报告了相同的Vulkan版本2.0.226,这迫使我们的开发人员陷入两难境地。由于扩展块只能与GPU驱动程序报告的内容(在这种情况下是Vulkan驱动程序版本)一起使用,因此我们可以保留块并确保与较旧的损坏驱动程序兼容,或者删除块并强制用户更新到当前(在撰写本文时)22.6.1驱动程序。我们选择做后者,因为它使代码库更干净,并且有一些证据表明这可能会解决使用FreeSync显示器时发现的输入滞后问题。VK_KHR_push_descriptor 具体来说,AMD Radeon用户仍然支持AMD(Polaris及更新版本)的卡,必须更新到最新的视频驱动程序22.6.1或更高版本,才能获得适当的Vulkan支持。使用旧卡的用户(GCN 1到GCN 3)不必担心,硬件已经无法更新到较新的驱动程序(自定义驱动程序也无法更新Vulkan以添加新的扩展),柚子将使用较慢的代码路径,无需支持。VK_KHR_push_descriptor 好的,这涵盖了Radeon用户。让我们谈谈绿色的一面。随着516.XX NVIDIA驱动程序系列的发布,在Vulkan下运行的图灵和安培GPU(即3000,2000和1600系列卡)的性能似乎有所提升。很棒,但它是有代价的。 Maxwell和Pascal用户(1000,900,750和745系列卡)将在Vulkan中运行游戏时遇到设备丢失崩溃几分钟。设备丢失基本上意味着驱动程序由于某种原因拔掉了插头。在我们找到此问题的原因并实施修复或将其报告给NVIDIA之前,Maxwell和Pascal用户应坚持使用512.XX驱动程序。 在一篇文章的开头有一堆警告总是很无聊的,但这是我们为数不多的工具之一,可以接触到尽可能多的受影响用户。 图形更改 我们应该在这里报道Y.F.C.项目第一部分的发布,但由于进度问题,它被移到了下一份报告中。对于给您带来的不便,我们深表歉意,我们将确保在下一篇文章中对此进行介绍。好消息是,除了柚子炸鸡之外,还有其他有趣的GPU改进要报告。 Behunin为我们的gpu_thread进行了一个非常有趣的优化,“一个有界的多生产者多消费者并发队列”。这提供了1或2 FPS性能的小幅提升,但更重要的是,在与负载相关的卡顿峰值之后,恢复时间更长。 心爱的,曾经被认为是开放世界游戏的基准,直到更好的游戏问世,现在就可以启动了!Skyline模拟器开发人员章程找到了这个经典直到现在才拒绝启动的原因:GPU相关信号量的第一个值的假设行为是错误的,它应该执行发布而不是返回常量零。现在,多亏了这个伟大的发现,Dovahkiin终于可以在那辆车里醒来了。The Elder Scrolls V: Skyrim是的,我们终于醒了(上古卷轴V:天际) 您可以看到我们有一些渲染问题需要解决。 我们最近重要的渲染变化之一是NVFlinger重写,谁会想到编写更接近Switch的实现会带来更流畅的游戏体验? 但是,在发布后,用户报告提到了诸如.比赛时间将越来越慢,在锐龙系统上每分钟延长约一秒,而英特尔 Alder Lake CPU(第 12 代)则加剧了比赛时间。Super Smash Bros. Ultimate 与人们的想法相反,bunnei找到的解决方案是实现一个不太准确的行为。柚子是多线程的,而且非常严重(即使它没有显示在CPU%使用率图表中),并且NVFlinger的100%准确实现对于模拟器的要求来说不够敏感。 撇开奇怪的CPU架构不谈,虽然问题已经解决,但建议英特尔Alder Lake用户运行最新的BIOS和芯片组驱动程序版本。检查您的主板/笔记本电脑支持网站以获取这些更新。 虽然仍然在NVFlinger好东西的话题上,但我们提出了一个高度要求的功能!资深用户会记得,在单线程的日子里,柚子将允许控制游戏速度。随着多核(当时称为Prometheus项目)的到来,此功能仅在单核模式下可用,这让许多人感到懊恼。时光荏苒! 柚子现在可以控制帧时间计算,允许一种新方法来取消帧速率,而不管CPU仿真模式如何!您可以在 中找到该选项。毋庸置疑,如果你想让一个游戏运行得更快,游戏应该允许它,你必须有硬件性能才能达到新的目标速度。Emulation > Configure… > General > Limit Speed Percent与以前的版本相比,没有视觉变化,但功能完全 调试器 现在,我们将在这里深入探讨一个开发人员天堂。 几个月前,柚子开发者byte[]发现自己试图调试柚子中的一些游戏问题,这些问题涉及某个威尔士猫等。不幸的是,他很快就遇到了更多的麻烦,因为要查看游戏的内部状态并观察或修改它们的行为而不需要广泛地破解柚子是非常困难的。 痛苦的根源在于没有办法将调试器与模拟游戏一起使用。 最初,柚子从Citra继承了一个,但它缺乏许多重要的功能。甚至在Prometheus项目(多核仿真)期间,由于其固有的缺点,也不得不弃用。GDB-compatible debugger interface 它仅适用于单核模式 它很慢 - 有时可能需要30多分钟才能启动游戏,特别是如果您有任何日志记录脚本 它有一些重要的代码质量问题 在Prometheus重写期间被删除后,yuzu在很长一段时间内没有任何调试器接口。 等等,GDB又是什么? GNU调试器(GDB)是一个可移植的调试器,运行在许多类Unix系统上,适用于许多编程语言,包括Ada,C,C++,Objective-C,Free Pascal,Fortran,Go和部分其他语言。 – 维基百科 借助 GDB,您可以: 逐个指令地逐步执行代码 动态修改内存和寄存器 甚至可以完全动态地替换运行代码的各部分 因此,您可以看到对于开发人员和模组创建者来说,拥有a是多么有用,因为您现在可以调试游戏,自制和游戏模组,而不必每次都摆弄控制台。GDB-compatible debugger interface一个32位的例子,在这个例子中是超级马里奥银河 挑战 在旧的调试器接口被弃用后,社区的一些成员将其分叉,并继续修补和维护它。一些值得注意的是Hedges和astralsky。正是由于这些分叉,byte[]才能够在柚子中添加对Wii Hagi模拟器的初始支持。 然而,他很快就面临着一个更令人讨厌的问题。最近对柚子CPU仿真的更改导致超级马里奥银河陷入僵局。此问题仅在多核模式下发生,紧随第一个视频过场动画结束之后。他没有想法,需要一个功能调试器来继续调查问题。 由于旧的调试器接口不支持多核模式,因此byte[]必须从头开始。在他解决问题的动力的推动下,byte[]开始为柚子开发一个新的GDB兼容调试器接口,他有非常具体的目标: 它应该工作 它应该很快就会消失,这样他就可以更多地关注根本原因。 俗话说,“第一步永远是最难的”。对于byte[],确实是这样;他最大的挑战是:“不知道从哪里开始”。 byte[]编写了网络代码并正常工作,但最初并不了解如何将其与线程代码绑定。在与其他开发人员进行了一些健康的头脑风暴会议之后,他最终为他所面临的挑战找到了解决方案。 变化 由于他是从头开始的,byte[]借此机会对界面进行了一些急需的改进。 旧的调试器接口基于“步进”模拟的CPU内核。 这里意味着一次执行模拟程序的一条指令。Stepping 这带来了许多问题,因为几乎所有游戏都有多个线程,如果您正在单步执行并且一个线程要求等待,那么另一个线程可以开始在同一CPU内核中的位置运行,并且所有状态都已更改。这会破坏连续性,甚至可能使调试器崩溃。 新的调试器接口通过在线程上执行调试单步执行而不是单步执行模拟的 CPU 内核来克服这一问题。在柚子的上下文中,当线程被步进时,调试器会要求线程进行步进,然后 Dynarmic 接口将检测到这种情况并告诉 Dynarmic 进行步进,当再次调度线程时,它将标记该线程已步进并再次通知调试器。超级马里奥奥德赛,胡言乱语的形式 有什么好处? 除此之外,我们还有一些更值得注意的生活质量(QoL)补充。调试器接口现在是线程稳定的,现在处理了步进和暂停中的边缘情况,并且它具有大量有用的调试功能,例如: 支持 32 位和 64 位代码 能够随时修改任何存储器和寄存器 读出客户机线程名称 支持无限数量的指令断点 支持多达 4 个内存观察点 用户界面更改 在谈论用户界面和体验时,您始终可以依靠Docteh。 在重复Morph在二月份修复的内容时,Docteh发现在崩溃后,柚子主窗口可能会以某种无边框的全屏重新打开......事情。罪魁祸首是yuzu的qt-config.ini文件中的UILayout\geometry值。一巴掌打脸,问题应该永远消失。哎哟。 为了帮助新用户适应柚子,Docteh将状态栏文本(过去仅更改颜色以反映其状态)重命名为。现在,当前的模拟状态更加清晰,用户在使用深色或浅色主题时不会混淆它。永远不要低估让事情变得更容易理解。汽车制造商应该有一天会尝试一下。DOCKDOCKED/HANDHELD细节决定成败 翻译错误总是设法溜走。第一次打开柚子时,它会显示一个带有加号图标的大文件夹,要求用户添加其游戏转储的位置。如果用户从 更改界面语言,则无法重新翻译此消息的文本。解决这个问题需要对窗口处理重新翻译的方式进行一些更改。Emulation > Configure… > General > UI > Interface Language学习另一种语言的好方法! Docteh还为将来迁移到Qt6偷偷做了一些初步工作。该类现已正式弃用,因此取而代之。QDesktopWidgetQScreen 此外,一些影响Web Applet的类也被弃用,所以一些调整是为了确保未来的兼容性。希望Qt6将意味着默认情况下Web小程序的回归? 一旦我们准备好迁移,这应该可以提供更好的动态DPI缩放,例如,允许4K显示器用户最终了解控制设置窗口中发生的情况。 输入改进 输入是german77的特色,一种“原石中的钻石”,一次一个PR地被打磨,直到永远。 继续使用,german77停止了PerformerSystemButtonPressingIfInFocus服务,解决了在按ZL或ZR时发生的SVC(主管呼叫)崩溃。Ring Fit Adventure 随着固件版本13.2.0的官方Switch更新,任天堂实施了一个新的.虽然german77致力于实施这些更改,但其中一款游戏尤其拒绝工作。当此游戏发送控制器断开连接信号时,它会使用一个值,该值无效,因为 Switch 上只接受无符号值。也许这是某个地方的仿真问题,或者这个游戏只是喜欢这样做,而Switch只是接受无效值。无论如何,我们的解决方案是复制这种特殊行为。最终结果是现在进入游戏!GetVibrationDeviceInfode Blob-1de Blobde Blob 2 内核和 CPU 更改 可能是柚子代码中最沉默的部分,但也是最关键的部分。内核仿真是使所有部分和谐地协同工作的引擎块,因此您可以预期,即使更改其中的一小部分也会在任何地方产生连锁反应。一个人必须小心地踩,呵呵,小心地穿线。抱歉,不抱歉。 无论如何,byte[]这个月在这个微妙的领域特别忙,螺丝刀在手里,什么都不怕。一些变化包括了解最新的逆向工程发现,但还有更多。 为了帮助暂停和恢复功能,他实现了KProcess暂停,正如拉取请求所解释的那样,“用于此目的的内核机制”。当您必须离开PC做其他事情时,干净的暂停和恢复始终是一种祝福。 在努力简化单核和多核仿真的来宾暂停时,byte[] 发现,如果禁用了异步 GPU 仿真和多核 CPU 仿真(我们强烈建议不要这样做,但对于 CPU 线程匮乏的用户或 FX 用户来说,这是一个有效的选项),则在初始化 CPU 和 GPU 线程时会发生争用情况。几个单线程仍然是多个线程。锤子在手,byte[]实现了一些障碍来修复这个特定的崩溃。 暂停是本周的单词,这一次,它可能会使特定的游戏崩溃。旧的 StallCPU 行为将等待所有线程执行停止。它很慢,但很安全。 使用新方法将进入 GPU 线程争用条件。告诉内核等待所有线程在暂停时停止可避免崩溃。Fire Emblem: Three Houses 如果由于某种原因,柚子跳转到无效地址,仿真将挂起,日志将收到无限数量的垃圾邮件。修复此问题需要在 Dynarmic 和 yuzu 上同时进行,从而导致停止对未映射地址的 ReadCode 回调。Unmapped Reads exlaunch 是一个用于将 C 或 C++ 代码注入 Switch 应用程序和模块的框架。exlaunch可以在未修补的单元上工作,允许开发人员使用它“去城里”。柚子不支持它,但comex实现了启动和运行它所需的功能。谢谢! 新人DCNick3加入战斗!对于他们的第一次争吵,他们实现了ExitProcess SVC,它允许自制应用程序在关闭时优雅地退出。 第三方防病毒软件的问题 用户最近报告了从主线版本 1075 及更高版本开始的崩溃。原因似乎是第三方防病毒软件,更具体地说是ESET / NOD32。发出 HIPS 误报,对柚子进行沙盒处理并阻止其访问系统页面文件。基本上,如果 fastmem 无法保护 4GB 的页面文件正常工作(如果启用了扩展内存选项,则为 6GB),模拟器将崩溃。 目前有三个选项可以解决这个问题: 用户可以从柚子的设置中禁用fastmem,该设置位于 ,从那里启用底部标记为的选项,然后从CPU选项卡中禁用底部附近的两个选项。这将导致性能损失,在某些游戏中可能会达到30%。Emulation > Configure… > General > DebugEnable CPU DebuggingEnable Host MMU Emulation 将 HIPS 例外添加到两个 yuzu 文件夹和 .使用此方法的用户报告显示的结果好坏参半。%appdata%\yuzu%localappdata%\yuzu 完全卸载 ESET 并改用 Windows Defender。以下是有关如何访问所需选项的图像示例 未来变化 toastUnlimited一直致力于使柚子兼容,以便在MinGW-w64下与LLVM Clang一起编译。考虑此方法的原因有很多: 我们用于Windows构建的默认编译器MSVC目前在其最新的2022版本上不稳定,迫使我们恢复到2019版本,并使柚子在此过程中丢失了一些编译器优化,损失了一些性能。 GCC 12是柚子使用的默认Linux编译器,具有优化错误和一些警告问题,使其目前不可行。 Clang 允许进行积极的优化,这些优化应该提供良好的性能提升。一个例子是波莉。 与GCC一起,LLVM使生成针对SSE4.2指令集优化的代码变得更加容易。这是正确的Core 2 Duo用户,你是下一个排队的砧板。 默认情况下,我们没有切换到这个新系统的主要原因是,或者,好吧,目前缺乏Gaias。它的一些更改是强制性的,以使Clang构建在Windows上启动并运行。虽然这个拉取请求已经完成,但它的完整实现将被搁置,直到盖亚出来,现在离我们不远了。Project Gaia 拿一个水壶,煮一些沃塔,给自己泡一杯茶,因为有血腥的开始。Project London 这就是所有的人!谢谢你一直呆到最后。下个月见!
各种ns模拟器资源和配置要求 yuzu配置要求 CPU: 任何支持 FMA 指令集的x86_64 CPU。建议使用 6 个或更多线程。 最低要求:英特尔酷睿 i5-4430 / AMD 锐龙 3 1200 推荐:英特尔酷睿i5-10400 / AMD锐龙5 3600 独立显卡: OpenGL 4.6 或 Vulkan 1.1 兼容硬件和驱动程序是强制性的。建议使用半浮点支持和 4GB 的 VRAM。 最低適用於 Linux: NVIDIA GeForce GT 1030 2GB / AMD Radeon R7 240 2GB Windows 的最低要求: NVIDIA GeForce GT 1030 2GB / AMD Radeon RX 550 2GB 推荐: 英伟达 GeForce GTX 1650 4GB / AMD Radeon RX Vega 56 8GB 核芯显卡: 核芯显卡将产生非常低的性能。独立显卡将在所有方案上产生更好的结果。这仅用于列出 iGPU 支持。 Linux 的最低要求:Intel HD 5300 / AMD Radeon R5 显卡 Windows 的最低要求:Intel HD Graphics 520 / AMD Radeon Vega 3 推荐:英特尔 UHD 显卡 750 / AMD Radeon Vega 7 内存: 由于核芯显卡使用系统RAM作为其视频内存(VRAM),因此此配置中的内存要求更高。 独立显卡时的最低要求:8GB 核芯显卡时最低要求:12GB 推荐:16GB 注意事项: 建议Windows用户运行Windows 10 1803或更高版本以获得最佳性能。 我们推荐的规格并不能保证在大多数游戏中都能获得完美的性能,而是在考虑性能的同时努力提供具有成本效益的建议。 大多数游戏都可以在Fermi系列(400系列)或更高版本的旧版Nvidia GPU上玩,但强烈建议至少Pascal(1000系列)。 缺少 FMA 指令集的 CPU 将产生非常差的结果。英特尔酷睿第3代系列或更早版本,AMD羿龙II或更早版本以及所有奔腾/赛扬/凌动CPU都不会产生最佳效果。 由于散热、电源和技术限制,移动 CPU 将无法达到与台式机相同的性能。 Linux 上的旧版 GCN 1.0 和 GCN 2.0 Radeon GPU 需要手动强制使用 amdgpu 内核模块。 GPU 必须支持 OpenGL 4.6 和 OpenGL 兼容性配置文件,或 Vulkan 1.1(或更高版本)。 要了解您的 GPU 是否满足这些要求,请访问 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fopengl.gpuinfo.org+&urlrefer=fdb31e0141116151ff50a5f72d373d61或 http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fvulkan.gpuinfo.org%2F+&urlrefer=ff4a552760523bfdc924c9f2a4761931并检查您的 GPU 详细信息。 示例图像:ryujinx配置要求 硬件要求 需要一个时钟频率高的CPU 至少 8GB 内存 支持 OpenGL 4.5 或更高版本的视频卡/GPU 系统要求 Windows 唯一的要求是运行Windows 10 RS4(Redstone 4,版本1803)或更高版本。 Linux 将命令复制到您选择的终端仿真器中并执行它 基于Archlinux的发行版: sudo pacman -S sdl2 openal 基于 Ubuntu 的发行版: sudo apt-get install libsdl2-2.0 libsdl2-dev libalut-dev Fedora: sudo dnf install SDL2-devel openal-soft 苹果操作系统 brew install gtk+3 sdl2 (注意:如果您没有 brew,请打开终端,然后执行以下命令进行安装 之后,您应该能够使用 brew 命令来安装所需的依赖项)/bin/bash -c "$(curl -fsSL http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fraw.githubusercontent.com%2FHomebrew%2Finstall%2Fmaster%2Finstall.sh&urlrefer=1b59774741bb6f5b706f732bc2cfa408)" Skyline配置要求【安卓】 Skyline要求运行在64位的处理器\安卓系统上并且需要安卓8系统以上 吧主我不用手机版模拟器,你们有问题的话别问我.
Yuzu进展报告2022年5月【edge浏览器机翻】 问候 yuz-ers。这一次,我们将介绍对柚子的小的和渐进式的改进。请放心,我们在工作中也有一些重大的重写和改进,我们将在接近尾声时触及这些。卷起胶带! 终止对 EOL Windows 版本的支持 让我们先来谈谈房间里的大象,好吗? 在进行 dynarmic 和内核仿真(包括提高 4 线程 CPU 系统的兼容性)时,我们对 dynarmic 和 fastmem 进行了更改,破坏了对 Windows 10 修订版 1803 及更早版本(包括 Windows 7 和 Windows 8/8.1)的支持。 虽然 fastmem 只设计用于较新的操作系统,但对旧版 Windows 版本的 dynarmic 中断支持的更改纯属偶然。话虽如此,这是时代的又一个迹象,在Yuzu的Windows 10之前的体验将继续变得更加不合格。由于我们专注于提高准确性,稳定性和性能,因此将时间和资源转移到维护旧的和不支持的操作系统上没有多大意义。从主线版本991及更高版本开始,只有Windows 10修订版1809及更高版本Windows 11和Linux将成为官方支持的操作系统。 EOL系统上缺少GPU驱动程序支持(这会影响未来的Vulkan支持),最大路径长度的不一致(对于文件系统仿真改进至关重要),以及内核级别上较差的内存处理(这是正确模拟Switch及其子系统所必需的),从而加强了这一决定。 不强迫开发人员将时间转移到支持过时的平台(他们不再使用)上,这意味着他们可以专注于改进核心仿真组件。 最后,像Dolphin这样的项目已经走上了同样的道路,并且出于同样的原因。 一个13岁的Windows已经足够老了,可以在一些地方开车。 对于那些仍然不想升级的人来说,Mainline 990及更早版本将正常工作。 默认为 Vulkan 如前所述,我们必须规避OEM锁定驱动程序(在英特尔硬件上很常见,它有自己的官方程序)和损坏的第三方软件限制(过时的屏幕录像机是渲染损坏的常见原因)等问题,以便使用Vulkan作为默认API提供流畅的体验。 尝试启动游戏或打开柚子配置时,Vulkan相关崩溃的两个主要原因是: 当柚子和驱动程序添加对新Vulkan扩展的支持时,HUD和屏幕录制软件上损坏的Vulkan层可能会导致问题。使软件保持最新状态是防止此问题发生的唯一方法。 过时的GPU驱动程序,缺乏运行Vulkan所需的功能。这通常是由于依赖 Windows Update 提供驱动程序而不是手动安装最新版本引起的,或者 Intel 笔记本电脑供应商提供从不更新的锁定的自定义(意味着 nerfed) 驱动程序。如果可能,请始终手动安装最新的 GPU 驱动程序,不要依赖 Windows 更新。 值得庆幸的是,我们有一个新系统,可以解决那些我们无法控制的问题。柚子现在将在启动时执行Vulkan检查。 如果检查通过,yay!,您可以使用Vulkan或OpenGL并选择要使用的API,或者在Vulkan的情况下,选择使用哪种设备运行yuzu,就像在配置中的图形部分一样。检查通行证,Vulkan工作! 如果此检查失败,则下次启动柚子时将显示警告。如果发生这种情况,您将只能使用OpenGL作为图形API。您仍然可以选择最适合您需求的着色器后端(GLSL,GLASM,SPIR-V)。哦哦.. 对于那些碰巧在这种情况下着陆的人,将显示图形设置窗口底部标有“检查工作中的Vulkan”的按钮,允许重新测试Vulkan支持。一旦你设法解决问题,点击底部的按钮! 多亏了toastUnlimited,OpenGL作为默认图形API已经消失了。与旧的一起,与新的一起。瓦坎国王万岁。 展望未来,Vulkan将成为我们开发人员的首要任务,但他们仍将继续支持OpenGL。OpenGL用户建议使用GLSL着色器后端,因为从现在开始,GLASM和SPIR-V将获得有限的支持。 图形更改,驱动程序问题以及旧的64的怀旧幸福 在过去的一个月里,byte[] 继续了 .这一次,他注意到Nintendo Switch的GPU的DMAcopy(直接内存访问)中存在一个错误。Super Mario 3D All-Stars DMACopy是许多游戏用于将纹理数据发送到GPU的一种机制,它处理从“间距”(逐行像素)到“平铺”(网格化)图像的格式转换。此过程的工作原理是将音高图像数据写入 DMA 引擎可访问的 GPU 内存。接下来,通过 DMA 引擎驱动程序请求 DMAcopy,将图像数据转换为 GPU 可访问的单独缓冲区。然后,此缓冲区将用作最终绘制的纹理。 修复bytes_per_pixel后,现在具有适当的镜头眩光。Super Mario Galaxy并置 JS RTX 打开?(超级马里奥银河) byte[] 还改进了 OpenGL 解释人脸翻转深度的方式,取代了之前报告的修复。超级马里奥3D全明星和任天堂64仿真使用的面部翻转是GPU上不常见的配置。以前的实现在OpenGL中的渲染效果很差,完全是黑屏。 虽然这在使用Vulkan时不是问题(性能除外),但现在并且可以在两个图形API中播放。Fermi GPU用户欢欣鼓舞。Super Mario 64Super Mario Galaxy这是一个马里奥,现在在OpenGL中运行得很快!(超级马里奥64) 柚子图形仿真的一个重要部分是需要翻译一小组GPU指令,称为。柚子使用实时 (JIT) 编译器以高性能方式执行这些宏。在大多数情况下,它比解释提供了约10%的性能提升。macros byte[] 发现,由于仿真不准确,有时宏可能会尝试访问一个参数,该参数太远而超出了它应该访问的范围。在某些情况下,这可能会使模拟器崩溃,而不会跟踪原因。减少烦人崩溃的原因。 此外,byte[] 还添加了转储游戏用于调试目的的所有宏的选项。 但是,为什么宏足够重要,值得拥有自己的转储机制呢? 事实证明,(NSO)订阅中包含的模拟器(完全不在任天堂的服务条款之外)会多次重新分配相同的宏,每次都使用不同的代码。在这种情况下,柚子错误地将新代码追加到宏的末尾,而不是替换现有代码。正确清除上传地址分配上的代码可以使NSO Nintendo 64模拟器可播放。是时候重新享受这些经典了!Nintendo 64Nintendo Switch Online我们需要更多具有《塞尔达传说:马约拉面具》氛围的游戏 NSO Nintendo 64模拟器的未来图形修复将成为.AMD和Intel用户可以自由地运行Vulkan而不必担心,但建议NVIDIA用户使用OpenGL。Project Y.F.C. Polaris AMD Radeon用户(RX 400和RX 500系列)报告说,驱动程序22.3.2及更高版本在多个游戏中导致崩溃,最值得注意的是和。The Legend of Zelda: Breath of the WildAnimal Crossing: New Horizons 驱动程序补丁说明提到了实现Vulkan扩展。很快的结论是,AMD在新驱动程序上发布了一个破碎的扩展,这不是第一次,但事实并非如此。这个问题只影响Polaris GPU,并且该扩展也可用于较新的架构,如Vega或RDNA2(我们不谈论Bruno RDNA1)。VK_KHR_workgroup_memory_explicit_layout 经过几次调试后,我们发现yuzu的VK_KHR_workgroup_memory_explicit_layout实现假设所有兼容的GPU都支持16位整数操作。虽然在AMD实现扩展之前所有兼容的GPU都是如此,但Polaris架构因其缺乏最近流行的16位精度支持而臭名昭着(显示它的年龄,你可以说,Polaris现在已经6岁了),并且正如预期的那样,强制GPU做它不支持的事情将导致崩溃, 快点。 toastUnlimited禁用了Polaris GPU上的扩展,同时等待我们的专用GPU开发人员有时间实施适当的修复。我们计划允许扩展在未来以老式的32位精度工作。 虽然仍然在AMD Windows Vulkan驱动程序的主题上,但我们必须讨论另一个扩展问题。自驱动程序版本22.5.2以来,添加了对 的支持,这是一个旧的扩展,在过去的5年中一直在所有其他驱动程序中工作,无论是英特尔,NVIDIA还是Mesa。VK_KHR_push_descriptor 虽然我们还不知道问题的根本原因,但只有AMD的Windows驱动程序在调用VK_KHR_push_descriptor时崩溃。由于此扩展对整个渲染过程至关重要,因此任何AMD GPU都会在任何游戏中崩溃。 似乎这一次,AMD可能只是发布了一个中断的扩展实现。此扩展以前与柚子的Vulkan实现一起使用,没有问题。如果是这样的话,那么轮到AMD来解决这个问题了。与此同时,toastUnlimited阻止了受影响的AMD Vulkan驱动程序版本的扩展。 在 GPU 仿真前端的其他位置,asLody 在禁用两个面时实现了模板修复。这应该可以改善某些本机使用 OpenGL 的游戏的渲染。 HLE 改进 转到HLE仿真的主题,这是bunnei非常珍贵的部分。开发团队一直在努力提高柚子内核仿真的准确性和性能。 这一次,游戏和模拟操作系统如何“锁定资源”发生了重大变化。这提高了几乎每个游戏的仿真性能,并且在不同程度上,在任何CPU上。让我们潜入。 在软件工程中,自旋锁是一种锁,它导致尝试获取它的线程简单地在循环中等待(“spin”),同时反复检查锁是否可用。自旋锁示例,简单但可以完成工作 存在另一个具有类似函数的同步基元,即互斥锁。 “互斥体”一词代表在线程之间提供的对象。互斥锁通过使用锁定和解锁等操作来确保只有一个线程可以访问关键部分或数据。关键部分是许多线程想要访问的共享资源。虽然如果多个线程想要读取同一个关键部分,则没有问题,但在前一个线程完成自己的写入之前,没有新线程可以修改该部分。在这种情况下,第一个线程锁定该部分,并将保持这种状态,直到释放锁定。MUTual EXclusion互斥锁示例 从理论上讲,当线程尝试锁定互斥锁但未成功时(例如,因为互斥锁已被锁定),它将被暂停。然后,操作系统将借此机会安排一个可用且准备就绪的线程在其位置上运行。暂停的线程将继续休眠,直到它能够获取互斥锁。一旦持有互斥锁的当前线程释放它,就可能发生这种情况。 因此,线程“旋转”以获取锁将浪费(也许是宝贵的)系统资源。虽然Switch自己的操作系统使用自旋锁,但在低端硬件上进行模拟时,这种资源消耗可能会有问题。使用主机操作系统(Windows 或 Linux)互斥体允许 yuzu 在其他可用线程上继续仿真任务。 有用的是,大多数现代操作系统使用混合互斥体和混合自旋锁。自旋锁方法在具有备用线程的系统上可以正常工作。但是,对于仿真,我们需要许多线程(用于UI,音频,GPU仿真,日志记录等),因此这种方法不是很理想,尤其是在内核/线程数较低的CPU上。 因此,通过从自旋锁到互斥锁,我们能够改善柚子在低内核数系统上运行的方式。我们的测试结果表明,柚子现在在4线程系统上更可用,解决了4核/ 4线程CPU(最显着的是)的稳定性问题,并大大提高了(以前完全不可行的)2核/ 4线程CPU的性能。Pokémon Sword/Shield 低端帮派的好消息! 用户界面更改 为了改进用户界面,Docteh正在成为这里的常客,他对我们一段时间以来遇到的一些翻译漏洞非常有帮助。 例如,如果 Windows 系统区域设置是在某些语言中设置的,则“自定义 RTC”设置会出现几个问题,使其显示不正确(例如缺少 AM/PM 指示器),或者完全不可用。修复显示格式允许自定义RTC现在以任何语言正确显示。 更改语言后,中的“网络”选项卡可能保持未翻译状态。这是一个忘记在翻译中包含选项卡的简单情况,因此Docteh修复了oopsie,并且单独的“网络”选项卡现在按预期显示。Emulation > Configure… > System并置 JS 网易娱乐.现在我想要一个战斗网络遗产收藏,c'mon CAPCOM! 一段时间以来,柚子的“关于”对话框的布局,特别是在Linux上,一直存在一些问题。虽然我们过去曾尝试修复它,但这些尝试会对Windows版本产生不利影响,反之亦然。通过qtcreator,Docteh修复了“关于”对话框UI文件,并删除了由原始.png图像引起的旧警告。感谢 Docteh 花时间一劳永逸地正确解决问题! 控制器更改 german77再次成为这一部分无可争议的国王。他继续无休止地追求提供最佳的用户输入体验。 german77 注意到,即使禁用,运动仍会继续报告数据,从而导致日志中出现垃圾邮件错误。在处理此内容时,他还注意到一个缺少的参数 。它的正确实现使柚子具有精确的运动刷新率,相当于Switch。Pokémon Let’s Go, Eevee/Pikachu!StopSixAxisSensordelta_time 在一体化拉取请求中,german77 进行了多项输入更改,包括: 为多个 HID 函数添加正确的错误处理 改进以前的实现,使其更紧密地与本机硬件匹配。 实现 、 、 、 所需函数。Nintendo Switch SportsEnableSixAxisSensorUnalteredPassthroughIsSixAxisSensorUnalteredPassthroughEnabledLoadSixAxisSensorCalibrationParameterGetSixAxisSensorIcInformationResetIsSixAxisSensorDeviceNewlyAssigned 虽然我们在这里取得了一些很大的进展,但在我们重新设计音频并进行一些急需的GPU修复之前,将无法在柚子上播放。虽然音频和完美的渲染似乎对可玩性并不重要,但如果这些不准确,游戏通常非常不稳定。请放心,我们正在研究这些,很快就会有更多的内容可以分享!Nintendo Switch Sports 据报道,不断变化的游戏类型在触摸释放仿真方面存在问题。事实证明,此游戏在发布时会检查报告的触摸位置,并且某些输入驱动程序在发布后会丢失其位置数据。此外,发现多点触控在触摸屏上无法正常工作。Arcaea 在基本上执行了触摸仿真的迷你重写之后,german77修复了这两个问题。大须!但更好?(阿卡亚) 使用几乎无穷无尽的不同控制器时,其中一个障碍是它们具有不同的实现质量。由于柚子过去常常在发送振动信号后等待控制器响应,因此缓慢的控制器可能会使整个仿真器失速,从而导致严重的卡顿。为了解决这个问题,german77将振动移动到一个单独的线程中的队列中,允许柚子随着仿真一起移动,让您的控制器尽最大努力。这只是另一个示例,说明通常如何通过将阻塞操作移动到异步后台线程来提高整体可用性来改进仿真。事实上,柚子使用数十个线程进行仿真,这就是为什么消除自旋锁确实有助于事情像黄油一样流畅运行的原因! 未来项目 虽然由于一些NVFlinger回归而略微停滞不前,但这些已经得到解决,并将在下一个进度报告中介绍!在blinkhawk的领导下,正在取得巨大进展,并有望很快发布。提醒一下,这是对GPU仿真各个部分的彻底改革,修复了许多不准确之处,并提高了性能和兼容性。Project Y.F.C.Project Y.F.C.Project Y.F.C. 梅德正在做一些事情。(提示:如果您查看以前的进度报告,您会注意到他们的拉取请求有一个共同的主题) ToastUnlimited正在努力为Windows获取MinGW Clang版本,这可能比我们现在使用的MSVC版本更快。这项工作与 的发布有关,因此需要一点时间。Project Gaia 奖金轨道 作为额外的奖励,我们的一位团队成员最近获得了Ryzen 5800X3D,这让我们有机会将其与固定在4.5GHz的常规5800X进行比较,因此只有额外的缓存才应该相关。 这是结果!仍然是Zen1用户的最佳升级路径 虽然5800X被手动强制到4.5GHz频率,但5800X3D自然以4.45GHz的时钟速度达到顶峰,结果值得尊敬,但没有什么了不起的。神奇宝贝亮钻当然喜欢额外的缓存,而Metroid Dread则受到其额外延迟的惩罚。 这就是所有的人!一如既往,感谢您的支持,我们希望您喜欢我们最近进展的总结。下个月见!在那之前,请继续模仿,让我们知道我们可以做些什么来使柚子成为最好的模拟体验!
Yuzu进展报告2022年4月【edge浏览器机翻】 你好,Yuz-ers,四月份真是太棒了!我们将讨论 CPU 和内核性能改进、多个 GPU 仿真更改、UI 调整等! 再次拯救桃子公主 byte[] 继续他的工作,以更好地支持官方的GameCube / Wii和Nintendo 64模拟器(分别代号和代号),byte[]引入了几个新的PR,以进一步提高其中包含的标题的兼容性。HagiHovercraftSuper Mario 3D All-Stars byte[] 首先在 中实现了对 GLSL 的支持,因为不是每个人都能运行 Vulkan。这是通过在 OpenGL 中添加对间接寻址的支持来实现的。Super Mario Sunshine 此更改目前不包括对 GLASM 的支持,因为我们的开发人员不太喜欢处理 NVIDIA 程序集着色器代码。想象一下,被要求解决汽车发动机的问题,而这项工作的唯一给定工具是一块石头和一根棍子。 然而,这只是成功的一半。适当的 OpenGL 支持并需要解决我们在老化的 API 中遇到的一个旧限制:破碎的 Z 尺度反转。Super Mario SunshineSuper Mario Galaxy 大多数Switch游戏使用OpenGL,流行的免费图形API,或NVN,专有的NVIDIA API专属于控制台。可以说,NVN在运营方式上比Vulkan更接近OpenGL。 Switch上的Tegra X1 GPU足够灵活,允许游戏开发人员自行决定更改坐标系。虽然大多数游戏的行为将更接近OpenGL的预期,但Z轴朝向远离相机,而模拟游戏(使用Vulkan渲染并且Switch上只有少数游戏)将坐标反转,Z轴朝向相机,这是Vulkan游戏期望的原生渲染方式。HagiHovercraft字节[]的 Z 轴图 如果你想玩柚子的Vulkan后端,这不是问题,因为行为与游戏的预期相匹配。但是,如果您尝试使用OpenGL进行游戏,柚子将无法正确解释由于Z比例反转而翻转了面,因此仅渲染了对象的背面。Super Mario GalaxySuper Mario Sunshine 解决方案非常简单,当Z轴反转时翻转前脸。并置 JS 欢迎来到影子王国度假村(超级马里奥阳光) 接下来,您可能已经注意到底部有一个黑条。这是因为Wii和GC游戏本身使用的宽高比与我们习惯的通常的16:9不同。相反,游戏以 5:3 的宽高比渲染。 通知系统将屏幕显式裁剪为其原始分辨率 1920x1012,但不会,因此柚子以前没有尝试裁剪游戏,导致渲染底部出现明显的黑条。Super Mario SunshineSuper Mario GalaxySuper Mario Sunshine裁剪过程图 虽然可以说,黑条中的游戏比例看起来更正确,但这不是任天堂想要玩游戏的方式。为了准确起见,byte[]解释了游戏的隐式裁剪请求,该请求拉伸图像以匹配Switch的本机1920x1080分辨率,无论是对于Vulkan还是OpenGL。Super Mario Sunshine并置 JS 不要调整你的设置(超级马里奥阳光) 在上一份报告中,我们提到了S8D24< >ABGR8纹理转换如何允许星位正确运行。好吧,现在轮到OpenGL加入乐趣了。Super Mario GalaxyS8D24 至 ABGR8 纹理转换图 我们上个月提到过如何在柚子上运行的特殊要求。大多数游戏都会编译其代码(AOT),也就是说,在交付给您之前。操作系统的工作是执行预编译的二进制代码,然后你就开始玩游戏。Super Mario 64ahead-of-time Super Mario 64另一方面,运行(JIT),以便更轻松地开发模拟器,并允许在不同的游戏中重用相同的二进制文件。模拟器加载超级马里奥64的本机任天堂64 ROM,然后其JIT编译器获取ROM并将原始MIPS(任天堂64 CPU的架构)指令转换为AArch64(Switch的CPU架构)指令。只有这样,操作系统才会执行游戏代码。just-in-timeHovercraftHovercraftHovercraft提前与实时编译图 这类似于柚子在 Dynarmic 的帮助下将 AArch64 指令转换为 AMD64 指令的方式。 JIT服务,这是在零售游戏上使用JIT编译所必需的,是柚子没有实现的功能,仅仅是因为没有其他游戏需要它。此外,以直接方式实现它存在一些障碍,因为它需要调用游戏提供的自定义代码,这是以前任何服务实现都不需要的。因此,除了一些初步的存根之外,byte[]实现了HLE JIT服务,以允许模拟器运行和引导。HovercraftSuper Mario 64 在单独的 PR 中,byte[] 添加了 JIT 服务接口如何运行的文档。如果需要,这应该有助于其他开源项目。 当然,这还不足以让游戏变得可玩,因为还有渲染问题需要解决。Super Mario 64 这从来都不是那么简单...但让我们试着简单地解释一下。Nintendo Switch游戏将自己的个人GPU驱动程序与每个游戏捆绑在一起。这样做是为了提高兼容性,如果驱动程序版本出现问题,则无需更新世界上的每个控制台。 由于未知原因,模拟器或捆绑的 GPU 驱动程序报告的顶点缓冲区太大,尤其是与游戏实际使用的内容相比。无论是包含的模拟器中的问题还是只是驱动程序错误,我们都无法确定,但我们确实需要解决此问题。Hovercraft错误的顶点缓冲区大小图 因此,byte[] 不是使用疯狂的报告缓冲区大小,而是说不!并改用后备内存大小。这是一个他!(超级马里奥64) Vulkan的性能目前还不是一流,但你终于可以使用这两个API享受所有3款游戏。Super Mario 3D All-Stars 最后,Morph实施了一个修复程序,以保持Web小程序在前台打开,因为游戏需要它,否则它们会在游戏过程中崩溃几分钟。Super Mario 3D All-Stars 常规图形修复 继上个月的NVFlinger重写之后,bunnei继续跟踪问题和错误报告。他修复了报告的问题,并进一步清理了代码以提高代码质量。请在此处参阅 NVFlinger 重写的代码更改。 Xenoblade Chronicles 2并且会遇到有趣的问题,这些问题是由作为 的一部分引入的新内容引起的。我们在一月份就谈到了这些变化。Hyrule Warriors: Age of CalamityGPU Garbage CollectorProject Y.F.C. 正如您在下面的顶栏上看到的,在OpenGL(顶栏)中使用过多的VRAM。底部栏显示实施修复后的结果。Xenoblade Chronicles 2不是测试整个VRAM的最佳方式(Xenoblade Chronicles 2) Age of Calamity将以随机间隔显示有趣的图形:并置 JS 這就是為什麼你不會把焦糖彈炸得太用力(Hyrule Warriors: Age of Calamity) Blinkhawk修复了回归,两款游戏都恢复了业务。 通常,在仿真中,当您修复一个问题时,会弹出另一个问题。实现的裁剪修复字节[]具有破坏Vulkan中自制应用程序的渲染的可爱意外副作用。值得庆幸的是,Morph在解决这种回归的代码中添加了魔术线。Super Mario 3D All-Stars 天际线框架:第 3 部分 在使Skyline模组框架正常工作方面取得了重要进展。如果您错过了我们之前关于该主题的进度报告,这里有两个链接。 tech-ticks一直忙于最后的润色。最新更改包括: 更好的支持,从而更容易地分发mod和自我更新功能。LayeredExeFs 支持套接字选项,该选项允许 Skyline TCP 记录器运行。SO_KEEPALIVE 实现 DNS 地址解析,这是使用 HTTPS 请求的插件所必需的。 我们必须提到,虽然Skyline内核支持基本完成,但yuzu代码库中的错误阻止了模组框架的正常运行。例如,由于潜在的仿真问题,ARCropolis在完成之前将无法工作,并且前面提到的一些更改需要我们的部分进行一些微调才能正常运行。Project Gaia 还有更多的工作要做,但我们离我们更近了。我们可以看到终点线! 用户界面改进 Merry,的核心开发者,对附加组件游戏属性窗口做了一些更改,改善了列宽。Dynarmic低分辨率用户会喜欢这个 热键配置窗口也得到了一些喜爱,更改了最小列宽。它对 GNOME 用户来说也很棒 这两个更改对于臃肿或大小未优化的桌面环境(如 GNOME Shell)都非常有益。 Tachi107 修复了我们日志中一些令人尴尬的拼写错误,并更新了“关于柚子”窗口以正确提及我们的新许可证。之所以存在,是因为我们希望为更新的修订敞开大门。GPLv3.0++柚子“关于”框的屏幕截图 Taichi并没有止步于此,而是对Flatpak构建进行了一些清理并进行了改进,包括使用正确的应用程序ID,修复一些拼写错误,并添加一个启动参数以使Yuzu默认在Linux上使用专用GPU而不是集成GPU。 Docteh在改进Yuzu的UI方面也有很大的帮助。 通过一些手动思考,他们设法绕过了一些Qt限制,以便在我们的黑暗主题中显示更具可读性的超链接。人们似乎已经忘记了超链接的用途,只需单击它们即可! 多亏了GillianMC在我们的Discord服务器中的报告,Docteh发现Qt API中的一些怪癖导致列出的游戏的兼容性状态无法翻译。原因在于QObject,您可以在拉取请求的描述中找到具体的详细信息。现在,状态以相应的语言正确报告。西班牙语示例 同样,方向键方向也没有正确翻译。同样的嫌疑人,再次.有人,请发出逮捕令,要求拘留卡门·桑地亚戈。法语示例 内核和 CPU 仿真更改 让我们从三月份发生的两个变化开始。 我们的常驻 bunnei 兔子继续重写 yuzu 的内核内存管理,使其准确到最新的系统更新。这一次,他处理并改进了内核代码内存的映射和取消映射方式。 在 Switch 的上下文中,代码内存支持允许游戏和应用动态加载和卸载其代码的较小部分。由于这些更改,在加载/卸载NRO时不再导致内存访问问题,从而使游戏在长时间游戏会话中保持稳定。Super Smash Bros. Ultimate bunnei 还将来宾(Switch) 内核对象的平板堆从主机堆内存迁移到模拟来宾内存。通过这一变化,柚子的内存布局现在与控制台更加匹配。 板块表示连续的内存片段。堆是用于动态和随机分配的任何内存的通用术语。 板堆是用于存储来宾内核对象的空间。通过将这些从主机 (PC) 堆内存 (RAM) 移动到模拟来宾(交换机)内存,我们可以确保内核对象永远不会超出系统限制并导致主机 (PC) 上的内存泄漏。 线程本地存储 (TLS) 是给定多线程进程中每个线程为线程特定数据分配存储的机制,也进行了重写,使其准确符合最新的 HorizonOS 行为。 通过这些更改,我们现在已经完全修复了影响一些游戏的内核内存对象泄漏,但由于以前的实现允许无限制的分配,因此在很大程度上没有被注意到。 回到四月份的变化列表,bunnei还重新实现了柚子如何处理HLE服务接口的线程分配。 服务是在后台运行的系统进程,用于等待传入请求。Switch的HorizonOS具有执行各种任务的各种服务,例如音频,蓝牙等。 以前,我们过去为每个 HLE 服务接口分配一个主机线程,因为 - 某些服务例程可能需要等待很长时间才能完成,例如网络或文件系统访问,以及 我们不支持从主机线程重新调度来宾线程。 被阻止的线程必须等到阻止它的操作(如 I/O 或只是休眠一段时间)完成。 这种方法的问题在于,由于调度服务线程的是主机(Windows或Linux),因此柚子可能会产生奇怪的行为,特别是在具有硬件限制的系统上,因为每个服务生成一个线程以及我们模拟的服务实现数量庞大。 通过重写,柚子现在有一个“默认服务线程”,用于99%的非阻塞服务方法。对于时间敏感的服务以及需要阻塞的服务,我们仍然允许创建线程(例如音频,BSD,文件系统,nvdrv) 这将服务线程数从两位数减少到个位数,从而提高了稳定性和一致性 - 特别是在内核较少的系统上。在大多数游戏中,具有 4 线程 CPU(2 个内核 + HT/SMT 或 4 个内核)的用户应该会看到性能和稳定性的提高。 另一场争取正确关机行为的战斗已经打赢。柚子目前不模拟HorizonOS内核的多进程功能,因为它不需要模拟任何游戏。但是,游戏使用的多进程 API 仍需要以预期的方式进行管理。所有 HorizonOS 服务都有一个端口(用于客户端和服务器),用作游戏进程和服务进程之间的通信通道。为它们各自的通信接口打开一个会话,并且它们由各自的内核对象管理。当游戏关闭客户端端口时,服务将关闭服务器端口,并且一切都将关闭。 我们之前实现的问题在于 yuzu 没有正确跟踪每个服务的所有 和 对象。正因为如此,这些服务没有正确关闭,这反过来又导致了进一步的问题。KServerPortKServerSession 这最初工作正常,但是当我们将来宾内核对象迁移到模拟来宾内存时,正如我们前面提到的,它被回归了。bunnei发现了这个问题,并迅速重新实现了我们如何跟踪这些内核对象。 通过有一个可以注册/注销开放端口和会话的地方,我们现在可以更好地跟踪这些内核对象。通过确保它们在我们拆除所有服务和内核时关闭,我们得到了更好的仿真关闭行为。 输入更改和常规错误修复 如果用户在使用鼠标平移时为其鼠标设置了非常高的 DPI 值,则光标可能能够逃离呈现窗口。IamSanjid实施了所需的修复,包括更好的居中时间来解决这个问题。谢谢! german77为我们准备了几个修复程序。 让我们从一个有趣的开始。柚子的屏幕截图捕获功能允许以缩放器当前设置的分辨率轻松保存时刻。用于屏幕截图捕获的热键可能会被垃圾邮件,如果发送了多个屏幕截图请求,则会导致Yuzu崩溃。如果将渲染分辨率设置为较高值,则可能会恶化。为了解决这个问题,柚子现在在处理捕获时忽略新请求,并在日志中打印警告。 在仿真方面总是有改进的余地,因为没有什么是真正完整的。这一次,german77 专注于在输入仿真中发现的不准确之处。 IsSixAxisSensorFusionEnabled是通过对所有Sixaxis功能进行逆向工程来实现的,并通过与Switch上完成的单元测试自制结果进行比较来验证。这应该有可能提高运动精度。 负责处理输入命令的 HID 服务,除其他外,用于通过复制其分配的共享内存并报告更改来操作。这会导致输入过程中的不匹配或延迟,并可能导致游戏读取完全不正确的数据。 显然这并不理想,因此german77摆脱了内存重复,并使用神奇的*指针直接访问共享内存。这可以修复影响无数游戏的错误,最大的例子是游戏很难检测到控制器。Pokémon: Let’s Go 现在,热键按下将使用队列触发。这样做的好处是不必等待 UI 响应,从而减少了延迟。 模拟摇杆得到了一些喜爱,它们的映射中有几个重要的变化: 默认的最大范围现在设置为 95%,以确保游戏可以使用整个范围。例如,此更改可避免在游戏中当摇杆处于特定角度时角色行走,例如 .最小范围从50%降低到25%,提供了更高的精度,特别是对于试图用匹配的轮子玩赛车游戏的人来说。自动中心校正现在更强大,避免漂移,而不必依赖更强的死区值。如果手动映射按钮,现在可以手动删除单个轴值。Pokémon Legends: Arceus 以前,只有玩家 1 可以通过按下按钮自动重新连接控制器。其他玩家只能在使用键盘时这样做。german77的拉取请求旨在解决这个问题,允许其余7个玩家中的任何一个重新连接他们的控制器 。层次结构中较高者不再具有特权。 在撰写本文时,此更改正在测试中,因为它可能会导致回归。请务必使用状态悬停卡在几天后回来查看! 未来项目 Project Y.F.C.距离发布其计划中的第一部分不远了。 Project Gaia继续缓慢但肯定地前进,现在导致一些以前损坏的游戏终于第一次启动。Minecraft和Mortal Kombat 11现在正在启动! 这就是所有的人!我们仍在追赶一些内核和CPU优化更改,因此下次可以期待更广泛的部分。谢谢你的公司,下个月见!
Yuzu进展报告2022年3月【edge浏览器机翻】 嗨,Yuz-ers,很高兴你回来了。本月,我们将讨论模拟器中的模拟器,添加的项目Y.F.C的部分内容,新旧标题的图形修复等等! 适用于 NVIDIA 用户的 PSA:第 4 部分 是的,还有更多。这一次,我们有祝福和诅咒。 而最新的5XX。XX 系列驱动程序修复了影响 Vulkan 并改进了性能的曲面细分问题,它们在擦除 MSAA 图像时还引入了崩溃,这意味着以与本机不同的分辨率运行、、和其他几个游戏会导致崩溃。Luigi’s Mansion 3Monster Hunter RiseRune Factory 5Sonic Colors Ultimate 值得庆幸的是,epicboy通过使用3D助手来解决这个问题,就像为AMD和英特尔驱动程序所做的那样。 现在,公平地说,擦亮MSAA图像违反了Vulkan规范,因此NVIDIA有权不再允许它。对于以前允许和有效的东西,行为的突然改变只是一个令人沮丧的事情。适当的文档在这里会很有帮助。 标记一起,AMD用户也使用PSA:最新的驱动程序,22.3.2及更高版本,增加了对扩展的支持,打破了钓鱼,并可能使其他游戏崩溃。如果发现此类回归,请恢复到 22.3.1。VK_KHR_workgroup_memory_explicit_layoutAnimal Crossing: New Horizons 火神模拟器 byte[],柚子的新手,但绝不是艺术新手,带来了一个非常有趣的,将Wii Hagi模拟器支持实现到柚子中。Pull Request 这个官方的任天堂模拟器(他们发誓,完全不在他们自己的ToS之外)是允许其中包含的标题工作的原因。这意味着可以获得和可玩,支持将在以后提供,因为此游戏需要完整的JIT服务实现。Super Mario 3D All-StarsSuper Mario GalaxySuper Mario SunshineSuper Mario 64 byte[]并没有就此止步,还实现了其他一些更改。 实现 SPIR-V 着色器对寄存器寻址 const 缓冲区访问的支持,其中还包括访问模式(指令的变体),允许 Mario 在 和 中保留其在此维度中的身体。LDC.ISSuper Mario SunshineSuper Mario Galaxy并置 超级马里奥阳光并置 超级马里奥银河 Super Mario Galaxy使用深度缓冲区和模具缓冲区的组合来“查看”用于拍摄星形位的星形指针后面的对象。没错,纹理决定了游戏的物理特性。 正确处理 S8D24 < > ABGR8 纹理转换可解决与较差星形位的错误冲突。稍后的修复解决了 NVIDIA驱动程序的问题。 在你完成家庭作业之前,没有星星位给你(超级马里奥银河) 着色器的编译错误(柚子的一个糟糕的假设,哎呀)在Sunshine中引起了有趣的黑洞。修复 oopsie 为 Delfino Plaza 提供了预期的“着色”,并且很可能也能默默地解决其他游戏中的问题。并置 超级马里奥阳光 最后,修复缓冲区缓存中的瓶颈可消除速度减慢,并有助于将Galaxy的性能提高约4.5倍。同样,这可能会对其他游戏产生积极影响,但不要指望它同样重要。 Merry将dynarmic更新到最新版本,以提供更好的支持,增加了对加速SHA256 CPU指令的支持,以及其他变化。这避免了在最后一级软锁定Galaxy。Super Mario Galaxy 这只蟾蜍肯定喜欢说话很多(超级马里奥银河) 哎呀! Kirby and the Forgotten Land事实证明,它是最近最好的平台游戏之一,对我们的开发人员来说也是一个相当大的挑战。 epicboy通过解决在整个游戏中非常明显的几何弹出窗口来滚动球。 那棵树就这样啪啪啪!(柯比和被遗忘的土地) 这是通过提高常量缓冲区上传的准确性来实现的。此更改还具有修复 的渲染问题的额外好处,使其可玩。Monster Hunter Rise如此漂亮的地点(怪物猎人崛起)并置 从怪物到怪物猎人(怪物猎人崛起) 我们很快意识到的另一个问题是,NVIDIA硬件会疯狂地使用VRAM,甚至在几分钟内就填满了高端硬件。电脑要求: RTX 3090?不在我们的手表上! 在映射内存范围之前取消映射预先存在的栅格化器内存可以解决此问题,并允许NVIDIA用户不需要RTX 3090级别的硬件来获得良好的体验。 但是,epicboy 会发出一个 PSA,指出此拉取请求可能会引入正在调查的回归,并且通过使用我们网站上提供的禁用动态分辨率模块,VRAM 消耗得到进一步改善。 epicboy还修复了在启用了异步GPU仿真的情况下运行游戏时会发生的svc中断崩溃,该选项应始终保持启用状态。 最后,流缓冲区中的逐个错误是导致顶点爆炸的原因。解决方案是简化流缓冲区的实现。由于新实现一次只能提供一个上传请求,因此在某些情况下,这可能会造成较小的性能损失,但在此过程中肯定会修复其他几个游戏。并置 看看柯比的力量?(柯比和被遗忘的土地) AMD Radeon 用户在运行此游戏时可能会遇到比平时更多的卡顿,具体取决于他们拥有的特定 GPU。这是因为可用的 Windows AMD 驱动程序不支持该扩展,这有助于将着色器计数减少 3 倍于原始数量。正如上个月报道的那样,对该扩展的Mesa RADV支持在RDNA2硬件中被破坏,因此它与Intel Windows支持一起被列入黑名单。Linux 上的 NVIDIA 硬件和较旧的 AMD GPU 提供了适当的支持,并享受显著减少的着色器数量,以及在构建缓存时减少的卡顿。CPU线程数在这里至关重要,至少在AMD添加对该扩展的官方支持之前是这样。VK_EXT_vertex_input_dynamic_state 图形更改和优化 bunnei本月的亮点是重写了NVFlinger实现,这是.Project Y.F.C. NVFlinger是负责向显示器呈现的服务,因此此区域的任何改进都将带来更稳定的帧时间,即使帧速率计数保持在稳定的60 FPS,也可视为更少的卡顿。 我们最初的实现基本上是2018年完成的猜测工作,并且在几个方面有所欠缺。例如,柚子会阻塞线程,直到最后一帧准备好呈现。这显然会导致与系统性能无关的意外卡顿。 新的实现与基于Android开源项目的Nintendo Switch相当。这意味着柚子将其许可证从 GPLv2+ 更改为 GPLv3+,以适应 AOSP 使用的 Apache 2.0 许可证。 阿布祖 游戏喜欢并大大改进,但其他游戏(如)需要修复程序,这些修复程序仍在 测试中。ABZUDRAGON BALL FighterZXenoblade Chronicles 2Project Y.F.C. 龙珠斗士Z 享受像黄油一样流畅的游戏! asLody一直致力于优化着色器指令,目的是提高性能并帮助开始工作。可悲的是,第一次实现造成了一些问题。LOP3-LUTHades degasus,你可能从某个Dolphin模拟器那里知道,它设法实现了一个补丁,后来变成了自己的拉取请求,解决了问题并实现了相同级别的优化。 这还不足以运行。 将在不久的将来解决这个问题,但这是一个小型的全球性能提升,主要有利于低端GPU。它还在执行维护时提供更易于阅读的代码。HadesProject Y.F.C. 我们在之前的进度报告中记录了Linux Flatpak版本上的视频解码问题。添加了一个检查以避免崩溃,但在此过程中,Windows内部版本卡在CPU解码上!具有低线程CPU的用户可以在视频播放期间立即分辨出差异。 只需在Windows上禁用此检查,Windows构建就可以再次享受通过GPU解码获得的额外性能。如果视频播放感觉更流畅,您现在知道原因了!谢谢史诗男孩! toastUnlimited开始改进柚子的Vulkan错误处理。 这是一个非常常见的问题,主要是由于Windows Update安装的非常过时的GPU驱动程序,或者笔记本电脑制造商提供的自定义较慢的驱动程序,这些驱动程序用于依赖电池寿命指标或跟上廉价的冷却解决方案。这最常影响英特尔 GPU,但基于 Vega 的 Radeon GPU 偶尔也会受到影响。 正如以前的报告中提到的,这个问题的另一个流行原因是过时的Vulkan注射器完全破坏了支持。像OBS Studio,OBS Streamlabs,Bandicam,Action!,Overwolf,GShade,iCUE,MSI Afterburner或任何带有覆盖层注入Vulkan的软件,如果它已经过时,或者开发人员跟不上最近的Vulkan版本,可能会完全破坏渲染。 toast的修复解决了2种不同的场景。更改 yuzu 处理 GPU 实例创建和渲染实例创建的行为有助于避免由过时的驱动程序或损坏的 Vulkan 注入器导致的直接到桌面的崩溃。 还有更多的工作要做,但这让我们更接近于在未来提供Vulkan作为默认图形API。 epicboy发现,在OpenGL后端使用Extreme GPU精度时,避免双重锁定的互斥体可以解决崩溃问题,对于那些旨在实现最准确渲染的人来说,这是一个安全的选择。此选项只能从 访问。Emulation > Configure... > Graphics > Advanced 他还包括一个优化,专注于消除着色器代码中的 if(false) {...} 分支。这具有减少着色器构建时间的额外好处。嘿,更少的着色器卡顿就是更少的着色器卡顿! 并非所有更改都使每个人都受益 为了减少柚子中的RAM使用,Merry测试了减小dynarmic中代码缓存的大小。在内部测试期间,该更改被证明是完全可以的,可以略微减少内存使用量,而不会产生副作用。 结果上线后,用户开始抱怨,所有沟通渠道都报告了突然的口吃影响。Super Smash Bros. Ultimate Dynarmic 必须模拟 CPU 缺少的任何指令,这会占用更多的缓存空间。较旧的硬件,例如基于Skylake的CPU(第10代及更早版本)或早期的第一代和第二代Ryzen CPU,不仅具有较小的缓存,而且还缺乏对更现代CPU提供的某些指令的支持。 缓存用完后,将发生重新编译。这导致在比赛开始几秒钟的Smash战斗中经历令人印象深刻的滞后峰值。 还原更改是解决问题所需的全部内容。快乐粉碎! 一般错误修复 最近的Nintendo Switch固件更新改变了内联屏幕键盘的行为。Morph更新了柚子的模拟等效物以匹配新版本,允许该系列中的游戏在角色创建完成后无需传输保存文件即可玩。Monster Hunter开始任何新游戏最困难的部分,角色命名...(怪物猎人崛起) Morph还参与了man77上个月开始研究的Mii创作的小程序。Morph的更改增加了对需要较旧固件版本的游戏的支持。MiiEdit 我们反对政府关门时崩溃的圣战仍在继续。Merry 修复了在日志线程中隐藏的退出死锁。这就像九头蛇,你砍掉一个头,两个新的头出现。 toastUnlimited一直在努力改进柚子-cmd。 添加 or 参数将允许用户为配置文件 指定自定义位置。这对于游戏特定的设置非常有用。-c--config 添加了扩展内存布局支持。 SDL2 有一个限制,因为当您进入全屏模式时,它不会自动调整“渲染画布”的大小。柚子以前使用原生游戏的分辨率,因此在未停靠模式下为1280x720,在停靠模式下为1920x1080。通过此更改,将使用桌面的分辨率 ,从而允许适当的独家全屏支持,并让缩放过滤器按预期显示。 v1993 对套接字(LAN 和 LDN)服务应用了一些更改,允许不精确的地址长度值。这可以防止在 v1.12.1 上崩溃,因为游戏将零作为地址长度的值传递。Minecraft toastUnlimited给了我们一个简单但非常重要的生活质量变化,默认情况下禁用了Web小程序。这是必要的,因为许多游戏都有问题。负责阻止控制器输入,并且没有多少用户对该服务主要用于的教程感兴趣,因此这是一个值得小损失的牺牲。对于任何感兴趣的人,可以从 重新启用 Web 小程序。Web AppletEmulation > Configure… > General > Debug > Disable Web Applet 继续谈论生活质量变化的话题,柚子现在将保存全屏状态以备将来的靴子使用。在全屏模式下关闭或停止游戏,当您开始下一个游戏时,模拟器将自动最大化! german77不能让一个月过去而不贡献一个拉取请求!他正在努力使兼容性。在 AcquireNpadStyleSetUpdateEventHandle 上正确添加 Signal 事件可使游戏可玩。Flip Wars翻转战争 未来项目 Merry正在测试添加偏执狂CPU精度,这是一个不适合胆小的人的选择!它将禁用大多数优化(但不是fastmem),其主要目的是帮助CPU优化调试,但我们都知道,如果有CPU性能可用,它将用于额外的舒适感。 Project Gaia正在经历一些轻微的延迟,这是由于任天堂在最近的固件更新中所做的新添加而引起的。 关于 ,我们正在衡量性能提升,以及首次渲染游戏:Project Y.F.C.这是一个地狱般的游戏!(哈迪斯) 这就是所有的人!感谢您和我们在一起,下个月见! 我们将在下一份报告中包含相关的内核更改。
Yuzu进展报告2022年2月【edge浏览器机翻】 很高兴你们来到这里,尤兹人!本月,我们很自豪地展示了大量的内核更改,这些更改最终修复了长期存在的错误,大规模的性能改进,UI和输入更改等等! 但首先,我们向您介绍:一个备受追捧的功能。不是为了柚子,而是为了我们的文章。 虽然我们尝试仅讨论主线版本中当前可用的更改,但由于时间限制或延迟,我们有时会列出在进度报告发布后几天内将在抢先体验中提供的拉取请求。 为了获得准确的状态报告,liushuyu 实现了悬停卡,然后我们编写者可以将其添加到拉取请求的链接中。如果将鼠标放在虚线超链接上,您将能够看到 PR 的当前状态、标题、编号和合并日期。 不同的可能状态包括: 红色:拉取请求已关闭,它不会成为任何构建的一部分 紫色:合并到master,它已经在主线上,或者最多将在24小时内(如果我们的buildbot在这个过程中没有死亡! 绿色:拉取请求打开,除非有标签,否则尚未添加到主线,请检查拉取请求链接以确认mainline-merge还有几个,但这3个是最重要的 从现在开始,您可以随时返回文章,以查看功能是否已合并到主线,因为这些卡将相应地动态更新。请记住,这不是一个立即的过程。合并的拉取请求将在下一个自动生成中添加到主线,因此可能需要长达 24 小时才能在此站点上看到状态更改。 说完这些,让我们开始吧! 图形修复以及如何提高性能 由于Linux上的RADV驱动程序存在问题,在AMD的RDNA2显卡上运行时,使用Vulkan API会使柚子崩溃。最值得注意的是,这个问题影响了Steam Deck,正如尝试在其设备上测试柚子的用户所报告的那样。 确定崩溃的发生是因为,Vulkan扩展用于最大限度地减少着色器编译过程中所需的管道对象数量。这些结构是巨大的,有时,游戏可能只想更改其中保存的一小部分内容,例如顶点输入状态。使用此扩展允许 API 通过简单的函数调用动态更改结构中的这些成员,从而无需创建一个全新的对象,从而减少操作使用的资源量。VK_EXT_vertex_input_dynamic_state 虽然这个错误正在上游解决,但epicboy推动了一个PR,将运行RADV驱动程序的RDNA2设备上的扩展名列入黑名单,因此柚子不会彻底崩溃。 但是还有一个司机给我们带来了问题。 Mesa在Linux上的ANV驱动程序不支持纹理格式,这导致柚子在运行使用它的游戏时崩溃,例如.为了绕过这个问题,voidanix实现了一个通过旋转RGB565格式来模拟纹理的解决方案。VK_FORMAT_B5G6R5_UNORM_PACK16Bowser's FuryBGR565 类似地,Morph实现了一个缺失的顶点格式,由标题(Power Pro Kun Pocket R)使用。パワプロクンポケットR asLody还实现了一个缺失的帧缓冲器格式,这次由.Yo-kai Watch 4原名在技术上是妖怪ウォッチ4 ぼくらは同じ空を見上げている (妖怪 Wotchi Bokura wa Onaji Sora wo Miageteiru) 此开发人员的另一个修复是为 和 添加缺少的信号量操作。MaxwellDMALegend of Zelda: Breath of the WildPokémon Legends: Arceus 内核更改,以及如何驯服 Smash 继续正在进行的内核工作,bunnei改进了内核内存管理器,使其与最新的系统更新更加兼容。 随着这些变化而来的一个巧妙的设置是柚子能够支持不同的内存布局,例如开发人员单元中使用的"6 GB扩展内存布局"(模组社区要求的功能)。 一些模组可以利用比Switch所能提供的更多的RAM,主要是高分辨率纹理替换。为了解决这个问题,bunnei添加了一个开关,以启用真正的开发人员工具包可用的扩展6GB内存布局。这些额外的2GB将允许重型mod正常工作而不会出现问题。您可以在 中找到该设置。Emulation > Configure… > General > Extended memory layout (6GB DRAM)Mod away! 不要指望它会在仿真性能方面有所作为,游戏不会关心仿真控制台是否超过4GB,他们只关心有足够的可用内存用于他们的操作。 bunnei还通过将锁迁移到使用模拟的来宾锁以及改进物理内存的映射和取消映射来提高页表管理的准确性。 与往常一样,这项工作背后的最大动力是提高我们实现的准确性,同时修复过去几年可能隐藏在那里的任何错误。 我们的 ARM JIT 重新编译器 Dynarmic 本月也获得了许多新的优化和错误修复。 Blinkhawk 更正了 Dynarmic 代码发射器中内存存储/加载操作序列化的屏蔽逻辑,并随后更新了子模块,将这些更改引入柚子的代码库。这修复了影响 的冻结。x64Pokémon Legends: Arceus 在调查稳定性问题时,bunnei 和 Merry 发现该问题是由函数中的错误引起的,该函数用于计算缓存块中可用于 JITed 代码的剩余空间。Super Smash Bros. UltimateSpaceRemaining Dynarmic 将这些代码块拆分为两个区域,命名为 和 。此方案旨在通过将"热"代码保留在随时可供执行的位置,同时将"冷"代码推送到该区域中来最大程度地减少 L1 CPU 缓存未命中。由于剩余空间的计算方式存在错误,该区域将溢出到该区域中,用"热"代码覆盖"冷"代码。然后,CPU将尝试运行先前存在的"冷"代码,并在尝试时可怕地崩溃。nearfarnearfarnearfar 最终(没有双关语的意思),这被翻译成在 几场比赛后崩溃,因为这是耗尽空间并溢出缓存所花费的时间。通过更正用于计算此值的比较,开发人员最终能够缓解围绕此标题存在时间最长的问题之一。SSBU我们做了这么多的CPU斗争来测试这些变化...(超级粉碎兄弟终极版) Merry还忙于实现对新的CPU优化的支持,这使得通过使用(比较和交换)指令的架构来仿真ARM独占访问指令。cmpxchgx64 ARM 指令集包含可以排除对内存地址的访问的指令,因此只有某些指令(在本例中为一对:一对用于读取值,另一条用于写入值)可以在多核环境中安全运行,而不受来自其他线程的指令的干扰,这些线程可能也希望访问内存中的相同值。 它通过在读取内存中的值后将地址标记为"独占访问"来实现这一点,以便"独占"存储指令仅在标记此标志时写入此地址。另一方面,"正常"商店指令被设计为在写入后始终清除此标志。因此,独占指令可以使用此信息来知道内存地址中的值何时被非独占指令更改,并再次重新启动整个作业,直到操作成功。 ARM 能够通过一种名为 .但是,考虑到在多线程环境中进行测试和调试的复杂性,在体系结构上准确模拟这些指令可能非常困难。因此,他们以前的实现相当保守和低效,以确保并发性。Exclusive Monitorx64 但是,可以通过使用 来近似原始行为,它将内存地址中的值与引用进行比较,如果它们匹配,则会在其中写入一个新值。因此,可以使用内存地址中的值作为引用,然后当且仅当存储的值与引用匹配时,才将另一个值写入同一地址。依靠此指令的语义,可以将独占内存读取和写入内联到JIT代码中并加快其执行速度。cmpxchg 广泛使用这些独占说明的游戏(如 )的性能应该会略有提高。Pokémon Legends: Arceus一些英伟达数字一些 AMD 号码 常规错误修复和 UI 更改 german77在UI上做了一些工作来增加趣味性。 他改进了 SDL 电池电量检测,重新调整了控制设置中的一些 UI 元素,并为我们提供了新的、更漂亮的电池符号!并置 可爱又简单! german77还根据流行的请求添加了新的热键。加入战斗的是停靠/取消停靠(用于控制器),窗口适配过滤器,GPU精度(在正常和高之间切换)以及静音/取消静音音频。一旦你掌握了热键柔术,没有人能够阻止你 另一个备受追捧的修复程序是 改进Amiibo支持 。我们的旧代码不是很准确,导致几个游戏失败。虽然还有改进的空间,但这个新的实现要准确得多,现在应该允许在大多数游戏中稳定使用Amiibo转储。 我们还想宣布,正在开发对物理Amiibos的NFC扫描的本机支持!随着进展,我们将有更多信息可以分享。 Morph修复了最近出现的一个奇怪的问题。在某些情况下,在重新开放柚子之后,窗口将是最大化的无边界...事情。事实证明,由于某种原因,配置文件在关闭柚子后没有重置无框标志。强制在每次启动时删除标志可以解决此问题。 Maide为模组制作者和任何对其游戏内部感兴趣的人添加了一个非常有用的功能。以前,柚子转储了基础,其中仅包含来自基础游戏的数据,缺少更新或DLC中的任何新添加内容。相反,通过转储修补的exeFS,就像EliEron过去建议的那样,用户将有权访问更新文件!exeFS toastUnlimited 发现在访问 LAN 大厅中的库存时崩溃。只需要存根IsUsbFullKeyControllerEnabled函数即可。溅射你的朋友而不受惩罚!Splatoon 2随着所有的墨水蒸发到大气中,雨一定很棒 对于复古游戏迷来说,toastUnlimited和german77都修复了Nintendo Switch Online服务中包含的SNES和NES模拟器(是的,您也可以转储并离线播放)。Stubbingmnpp:app解决了崩溃问题,更新了音频仿真的进程修订版,官方模拟器可以在柚子上正常工作。我们的团队成员是地球的忠实粉丝 输入改进 正如每个月都会发生的那样,german77在这一部分占主导地位。 作为测试当前隆隆声设置强度的一种方式,您现在可以在"配置振动"窗口打开时按任意按钮来强制控制器振动。Joy-Con 走向 BRRRR 游戏手柄有漂移,不仅以Joy-Cons众所周知的夸张时尚,而且每个游戏手柄都有一定程度的漂移。为了隐藏这一点,控制台会自动将其摇杆居中。 在柚子上,SDL 的一个限制是它只会读取 Nintendo 官方控制器上的出厂校准,跳过任何可能可用的用户校准配置文件。我们通过在启动时自动居中来解决这个问题,但是摇杆仍然可以移动到它们喜欢的任何地方,因此 german77 添加了一个选项,可以手动将每个轴居中作为附加选项。只需在我们的控制器设置中右键单击摇杆的任何方向即可。只需点击一下鼠标即可 添加了支持以允许映射 Enter 键 ,该键以前刚刚重新启动映射过程。 toastUnlimited 添加了对 运动输入的支持,我们的终端版本的可执行文件。终端战士现在也可以享受一些只是舞蹈。yuzu-cmd 改进仿真以不使用仿真 xerpi 实现了 32 位版本的 、 和主管调用。谢谢!OutputDebugStringCreateCodeMemoryControlCodeMemory xerpi的帮助有一个更大的目标,而不仅仅是帮助一些鲜为人知的Switch模拟器。他们正在开发vita2hos,这是一个翻译层,可以在Nintendo Switch上本地运行应用程序和游戏!前面的道路很长,因为大多数Switch调试工具都是64位的,而Vita是一个32位控制台,所以为了让项目继续进行,需要进行一些重写和更改。PlayStation Vita 柚子缺乏一些功能来提供完整的32位执行模式支持,因此开放PR以帮助改进该领域,因为xerpi正在使用Switch模拟器来协助和简化开发。我们迫不及待地想看看这个项目是如何发展的! 火神是未来 随着工作和其他更改的计划,我们正在慢慢地瞄准默认启用Vulkan,并保持OpenGL的长期支持。本节不会列出柚子中的更改,但用户可以调整设置以提高他们在柚子和其他模拟器中的Vulkan性能。Project Y.F.C Vulkan性能的主要问题之一是当前GPU为节省功耗而进行的激进频率管理。由于Nintendo Switch游戏产生的实际3D负载对于现代低端GPU来说也非常低,因此时钟速度往往保持在频谱的节能方面。 显著提高性能的一种简单方法是强制 GPU 以更高的持续时钟速度运行。GPU可以达到的最高值通常在这里无关紧要,因为大多数GPU将比Switch的Tegra X1更快,但持续的时钟速度将使帧速率保持高并卡顿降至最低。 NVIDIA 用户在 中具有简单的单一设置。您可以在单击中找到此切换开关,然后从可用选项中选择柚子,然后向下滚动到并将其设置为 。NVIDIA Control PanelPrefer maximum performance3D Settings > Manage 3D settings > Program Settings tabAddPower management modePrefer maximum performance可靠的用户界面 在AMD方面,这需要一些手动工作,并且可能只与基于RDNA的GPU兼容。只有相对较新的Radeon驱动程序才添加了在随附的上调整最小和最大GPU频率的选项。这可能会使您的 Radeon 产品失去保修。Radeon WattMan 需要做的是,以与NVIDIA类似的方式,将柚子添加为选项卡上的配置文件,单击并将"调整控制"设置为。启用 GPU 调优,您将能够调整 .GamingTune Game PerformanceCustomMin. Frequency (%)虽然这可以在Radeon软件上全局设置,但我们建议使用每个应用程序的配置文件除了GPU之外,提高内存时钟速度将始终有助于仿真,尤其是在高分辨率下 以不起眼(而且比平庸的)RX 6500 XT为例,我们可以看到将其帧速率免费提高到73%,只需将最小时钟速度从500MHz提高到2875MHz(如下图所示,增加了475%),轻松超越了RX 570。Pokémon Legends: Arceus太多的省电也可能是一件坏事 这里的性能提升可能是巨大的,但人们可以开始看到超过某个点的回报递减。 未来项目 Project Y.F.C.随着更多以前破碎的游戏开始变得可玩,继续成熟。Blinkhawk告诉我们,他目前正在将重点转移到性能上。我们迫不及待地想告诉您更多!火焰纹章战士 Morph 有一条关于进度的消息:Project Gaia哎呀! german77一直在玩实现Mii编辑器小程序 。当前的支持是相当准系统的,但任何感兴趣的人都可以自由构建拉取请求并尝试一下。甜蜜的家阿拉巴马州? 这就是所有的人!我们感谢您抽出宝贵时间,我们希望下个月与您相见。荣耀归人类。
Ryujinx进展报告2022年2月【edge浏览器机翻】 二月已经过去了,再次过早地离开了我们所有人。谁认为28天足以使它成为一个值得的月份? 但是,请放心,我们的开发团队在几天的时间里所缺乏的,而不是在雪崩般的改进,修复,添加和正在进行的项目工作中得到回报! 帕特雷恩目标: Amiibo Emulation 于2021年3月合并到主版本中。 虽然兼容性接近完美,但Amiibo仍然有一些改进,可以在这里跟踪相关的Github问题:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fgithub.com%2FRyujinx%2FRyujinx%2Fissues%2F2122&urlrefer=5d02d7c91a94fcc2e18d8d63f77f82ef 自定义用户配置文件 于 2021 年 4 月合并到主版本中。 Vulkan GPU 后端 - 仍在进行 中 已发布公开测试版本,可在此处获取。 ARB 着色器 - 目标在 2021 年 4 月达到。 工作正在与Vulkan一起进行,请再等一会儿,直到我们能够将此更新交付到我们满意的状态。 ARB 着色器将通过使用 OpenGL API 提高 NVIDIA GPU 上的着色器编译速度,进一步减少首次运行时的卡顿。 $ 2000 /月 - 纹理包/更换功能 - 几乎就在那里! 这将有助于替换游戏内图形纹理,从而实现自定义纹理增强,备用控制器按钮图形等。 一旦目标持续,ETA:~3-4周 $ 2500 /月 - 一名全职开发人员 - 几乎就在那里! 每月的这笔捐款将使该项目的创始人gdkchan能够全职开发Ryujinx。 $ 5000 /月 - 额外的全职开发人员 - 尚未满足 每月的捐款金额将允许额外的Ryujinx团队开发人员全职从事该项目。 没有进一步的胡言乱语,引用一句陈词滥调的话,让我们跳进去。 火神进步: 因此,我们又回到了另一轮,这个月是一个不错的月份,如果我自己可以这么说的话。上个月,SPIR-V后端添加了一堆新的着色器指令,这些指令开始使其处于良好状态,以进行更一般的测试。但是,虽然着色语言是令人痛苦的慢速GLSL的绝佳替代品,但它可以变得更快,其中一种方法是多线程(并行)着色器编译。这比OpenGL更复杂,就像Vulkan的所有事情一样,但是riperiperi已经接受了挑战,并且已经取得了一些真正令人印象深刻的结果。 对于同时使用多个着色器的游戏,并行编译将产生最大的影响,特别是与使用GLSL的OpenGL相比。由于其他一些错误(感谢AMD),此功能尚未准备好直接添加到主Vulkan分支中,并且需要一般的代码清理,但我们希望用户测试可以相对较快地开始! 好吧,这是另一个: GPU: 对Switch GPU仿真的改进始终是最华丽,最直观的变化,这一轮更新也不例外。 游戏构建器车库最近出现了一个回归,并显示了各种图形问题,包括轻微的纹理错误:对于一些相当重大的场景变化问题:幸运的是,我们自己的gdkchan只需要2行代码就可以解决这些问题,并使这对于任何初出茅庐的游戏开发人员来说都是一个更加忠实的体验......无论如何,任何通过仿真玩游戏的新兴游戏开发人员。转向一些大热门;神奇宝贝是我钱包里一直存在的刺,直到最近,我的眼睛里都是一根刺。虽然游戏在发布时完全可以玩,但没过多久,用户就开始注意到在众多洞穴中的一个游戏中出现了一些奇特的渲染:这是一个有趣的问题,因为它是OpenGL独有的,所以这最终导致了一个完整的兔子洞,Vulkan后端曾经吹嘘过排他性。gdkchan很快就来拯救OpenGL并修复了一系列问题。其中一些确实由来已久! 修复了《神奇宝贝传奇:阿尔塞乌斯》中的洞穴渲染。修复了通过神奇宝贝剑/盾中的几何图形显示的轮廓。以前后 修复了《纸马里奥:折纸之王》中的黑水。以前后 修复了怪物猎人崛起中船上的蓝色徽章。以前后 修复了《NEO:世界与你同归于尽》中过于明亮的水母。以前后 虚幻引擎游戏本月也得到了一些急需的喜爱,riperiperi为2D引擎副本(blit)实现了新的快速路径,大大减少了某些UE游戏中与纹理流相关的口吃,例如《A Hat in Time》和Yoshi's Craft World,同时修复了《Fatal Frame: Maiden of Black Water》中的水! 【动态图片】以前【 动态图片】后 修复了《致命框架:黑水少女》中的水以前后 自从Ac_K六月份实现了Mii编辑器小程序以来,Miitopia一直是许多人想要利用自己的自定义Mii的游戏。不幸的是,虽然游戏的大部分内容在功能上都是健全的,但自游戏推出以来,一直存在阻碍进度的崩溃。用于可视化崩溃的黑屏图片。 自9月以来,gdkchan的修复一直处于炼狱的审查阶段,但最终有可能通过这扇门!谁知道3DS端口如此烦人。正如你们许多人所知道的那样,稍微改变一下,着色器是在GPU上运行的小程序,用于在屏幕上实现"效果"。烟雾,闪光,你得到图片。在一些情况下,Ryujinx 可能无法编译着色器,gdkchan 本月解决了一个这样的情况,即在管道的后面部分使用深度比较对纹理进行采样,或者纹理池类型与采样类型不匹配。虽然到目前为止,我们还不知道有任何游戏受到这种特定着色器事故的影响,但现在我们安心了,我们永远不会知道任何游戏! 我们的首席开发人员不仅针对那些价格过高的AAA 3D游戏,这些游戏使您的交换机和PC都达到最大风扇速度;如果你是"河城女孩零"的狂热玩家,那么你这个月很幸运,因为在过场动画打开后,你可以解决崩溃问题......然后迅速关闭。幸运的是,这是由于gdk进行了一些硬件测试,并发现虽然上面的修复程序有效,但这并不是硬件的实际行为方式。崩溃的原因是由于游戏没有写入 X/Y 区域寄存器,因此第一个修复程序只是将它们清零。事实证明,交换机不会这样做,而是采用了相当令人失望的解决方法,即简单地忽略这些区域寄存器!因此,来自gdkchan的第二个更准确的修复被提出并接受。享受成为一条河流,一座城市,一个女孩或一个零。 音频: 自从"艾玛迪斯"Thog在很久以前在2020年夏天的狂热梦想中重写了完整的音频服务以来,Ryujinx一直相对没有重大的音频错误。但随着2022年的到来,新的游戏,新的固件服务和新的问题折磨着开发人员。 第一个问题孩子是备受期待的Nintendo Switch Sports Online Playtest(多么拗口)。你们中的一些人可能想知道"在模拟器上模拟在线游戏测试有什么意义?",我们对此做出了回应......确保它在第1天有效!不能轻易失去我们的记录。Thog通过迅速允许游戏输出音频,然后进行拼写错误修复来提供王牌。 Skyward Sword HD有时听起来相当糟糕,尤其是在具有高频效果的音频上。riperiperi交换了从最近到三次插值的奥德伦上采样器的调整,并且应该可以改善这种情况并充当临时权宜之计,直到开关实际使用的采样算法被逆向工程。 中央处理器: 吃点零食,调高情绪照明,为此系好安全带,因为今年二月,CPU改进在街上很热。gdkchan和本月的MVP merryhime,"dynarmic"(用C++编写的ARM的流行动态重新编译器)背后的大脑,为我们提供了大量添加,修复和优化,我将尽力简化。 让我们先来看看ARMeilleure(Ryujinx的动态重编译器)现在支持的一些新指令: 沙德8 SHSUB8 和 UHSUB8 CMN (RsReg) 拇指支持(所有 T16 指令) ALU 指令(T32 移位寄存器) 还有更多的人仍处于审查阶段,虽然这听起来可能不太令人兴奋,但CPU重新编译器可以理解的指令越多,您最喜欢的即将推出的游戏在第1天启动时崩溃的可能性就越小! 特别值得一提的是,拇指支持对于帮助运行和开发新的PS Vita-> Switch兼容层至关重要,xerpi恰如其分地命名为vita2hos(如果您还没有听说过,请查看它! 与任何彻底的改变一样,你总是有可能打破其他东西。幸运的是,Merry解决了一个阻止游戏启动的错误,同时还修复了拇指指令中的潜在问题,并实现了指令的单步执行,这将极大地帮助核心开发团队和任何切换自制开发人员。 为了在风格上封住她的一个月,修复了最后几个BLX和BXWritePC指令,您可以期望在下一份报告中听到更多漏洞利用! 为了不被完全超越,gdkchan拿起了CPU火炬,并增加了对常量可能具有的使用次数的限制,以防止"死亡微笑2"进入游戏。游戏现在启动,似乎运行得很好! gdk的第二个有趣的补充是CPU JIT失效的实现(以及快速的PPTC版本提升),它扩展了JitCache可以失效的现有区域,以实际删除与给定范围重叠的函数。此更改特别令人感兴趣,因为它开始为在 NRO 中动态加载代码的应用程序或动态自修改以运行的代码奠定基础。 最后一部分是像Skyline和Acropolis这样的模组框架所必需的,因为它们利用这种自我修改的代码在运行时钩子游戏。 杂项: 当我们谈论《Super Smash Bros: Ultimate》这个话题时,你们中的许多人都会意识到,这款游戏可能会在一些地方结结巴巴。造成这种情况的原因有三个:第一个也是第一个靴子上最常见的是着色器编译卡顿,第二个是每场比赛开始时的NRO卡顿,最后一个组件是菜单和字符选择屏幕卡顿。这个最后一个问题在本月由riperiperi通过为文件系统服务添加一个专用线程(ServerBase)来解决。 【图片】以前【图片】后 问题的根源在于,一些文件系统服务阻止了没有专用线程的其他服务,因此为 FileSystem 提供自己的服务可以防止它在等待文件系统服务清除时造成其他服务瓶颈并导致卡顿。此更改还改进了其他遭受文件系统相关卡顿的游戏,例如一些Xenoblade:DE过场动画,Fire Emblem:Three House过场动画以及将游戏存储在网络驱动器或其他外部解决方案上的用户。 控制器漂移是近年来成为人们关注的现象,我们在全球范围内解决这个问题的为数不多的方法之一就是通过增加模拟死区。然而,一些用户很快注意到,我们用来计算如何应用死区的数学是相当有缺陷的。请参阅下面我们旧实现的可视化:感谢Vegita2的惊人死区可视化工具! 这意味着,如果您设置一个30%的死区,它将同样应用于X和Y,这意味着由于X和Y被视为棒矢量的独立组成部分,因此外边缘的精细运动也将被视为"死"。在超过50%的极端死区值下,这可能导致模拟摇杆感觉几乎像一个8轴方向键,只有基本方向正常工作。 skrekhere快速跳到这个问题上,实现了一种新的死区算法,该算法现在可以平滑外边缘的死区,即使在80%这样的大死区值下,也可以再次进行精细控制。查看下面的新可视化效果:后端基础设施是大多数从未参与过大型项目的人从未想过的事情,但工作也从未就此停止。对于本月的一些较小的调整,turbedi将其淘汰出局:未使用的EnumExtensions被删除,C#编译中对静态数据的优化,将BitUtils与.NET BitOperation方法交换,最后折叠AsSpan()操作以使用更现代的方法,代码路径更少,更快。小的更改加起来,我们总是鼓励任何新手专家C#开发人员环顾代码库,因为优化总是可能的! Thog通过对PID的数据类型调整,继续对基础设施更改进行恐怖统治,并且由于merryhime修复了我们依赖项中的一些GTK错误,因此对GtkSharp(Ryujinx的GUI框架)进行了更新,这应该可以加快Windows构建时间并修复菜单图标在悬停时会闪烁的错误。 【图片】嗯......脆。。。 GUI 中的游戏图标过去只是使用其基本图标进行预览,但有些游戏实际上在其更新文件中包含一个"已更新"图标,如果要更新游戏,该图标将显示在 Switch 上。Ac_K决定他们不能再忍受这种不一致,现在Ryujinx将从更新文件中提取游戏图标(如果存在)。以前后 我们的文件系统向导Thealexbarney(或者你可能知道他的不和谐名字"Moosehunter")本月合并了三个变化。第一个是修复文件系统"权限被拒绝"错误的程序,该错误似乎随机困扰着用户。此更改会对没有有效所有者 ID 的任何保存运行一些额外的数据修复,并且应该可以解决其中的大部分问题。接下来是删除"ServiceNv地图"创建垃圾邮件中的大量日志混乱,这些垃圾邮件将发生在每个游戏中。这在解决一般问题时没有向一般用户提供任何信息,也没有提供其他信息,因此它现在已转移到调试日志类别,我们希望它退休后非常高兴。数字梅森....它们是什么意思! 最后但并非最不重要的一点是,LibHac被提升到0.16.0,它增加了对使用压缩部分读取NCA的支持,增加了对无效额外保存数据的弹性(可能有助于从其他程序/操作系统等的外部"混乱"中恢复),最后修复了文件系统访问控制检查。这些变化中的第一个可能是最令人兴奋的,因为它允许铱星和Gunvolt Chronicles进入游戏,似乎两者都是完全可玩的!毫不奇怪,我们的Linux用户在开发过程中也非常活跃,并定期提交PR,其中包含对3个字母首字母缩略词和带有大量下划线的单词的各种修复。延续这一趋势,edisionnano在MESA驱动程序上推动了Ryujinx的后端多线程修复,其中我们提供了一个字符串原始,MESA期望它是小写的。这个简单的问题在设置环境变量时造成了严重破坏,因此现在强制传递小写参数。 他们还解决了一个小的构建错误,其中SoundIO音频的平台特定二进制文件将被批发到构建它的所有操作系统。这意味着Windows和Linux将为彼此构建无法使用的二进制文件,最终只是臃肿。 该项目的新贡献者mlgatto添加了一个新的跟踪级日志,gdkchan立即利用了这个日志,将所有内核系统调用日志移入并继续保持简单性,wss445566为我们修复了一个长期存在的拼写错误,进一步证明几乎任何人都可以帮助我们,即使它看起来很小! Ac_K将通过存根一些新的服务调用来结束此报告:mnpp:app,这似乎是中国控制台的遥测模块,导致NES / SNES NSO崩溃,以及上述Switch Sports启动所需的一些HID服务。需要明确的是,我仍然讨厌Miis。 结束语: 我们知道现在对每个人来说都是艰难的时期,所以我们要向所有为Ryujinx的发展做出贡献的人表示无比的感谢,无论是通过patreon,测试还是只是成为社区的一部分。我们从未想象过我们会为这个项目获得如此多的支持,为此你们都表示感谢。直到下次,保持每个人的安全!
1 下一页