switch模拟器最低配置(Switch模拟器Ryujinx进度报告2022-4月)
switch模拟器最低配置(Switch模拟器Ryujinx进度报告2022-4月)2000 美元/月 - 纹理包/替换功能 - 快到了!通过使用 OpenGL API 提高 NVIDIA GPU 上的着色器编译速度,ARB 着色器将进一步减少首次运行时的卡顿。Vulkan GPU 后端 - 仍在进行中。已交付公共测试版本,有关更多详细信息,请参阅本月末的报告。ARB 着色器 - 2021 年 4 月达到的目标。与 Vulkan 一起工作正在进行中,请稍等片刻,直到我们能够将此更新交付到我们满意的状态。
Switch模拟器Ryujinx进度报告2022-4月
四月……源自拉丁语“ aperire” 或“ 打开 ”的一个月。 这与 Switch 仿真有何关系? 你可能会想到一些比喻,但老实说,我只是觉得这听起来有点有趣。 本月,我们将介绍一些重大变化,以及关于 Vulkan 后端最近进展的相当丰富的部分,这在上个月缺席。
不过,在此之前,请查看我们的 patreon 目标并朝着这些目标前进:
Patreon目标:
Vulkan GPU 后端 - 仍在进行中。
已交付公共测试版本,有关更多详细信息,请参阅本月末的报告。ARB 着色器 - 2021 年 4 月达到的目标。
与 Vulkan 一起工作正在进行中,请稍等片刻,直到我们能够将此更新交付到我们满意的状态。
通过使用 OpenGL API 提高 NVIDIA GPU 上的着色器编译速度,ARB 着色器将进一步减少首次运行时的卡顿。
2000 美元/月 - 纹理包/替换功能 - 快到了!
这将有助于替换游戏中的图形纹理,从而实现自定义纹理增强、备用控制器按钮图形等。
一旦目标得以维持,预计到达时间:~3-4 周
2500 美元/月 - 一名全职开发人员 - 尚未见面。
这笔每月捐款将允许该项目的创始人 gdkchan 全职开发 Ryujinx。 我们所有的贡献者目前只在业余时间从事该项目!
5000 美元/月 - 额外的全职开发人员 - 尚未见面。
这笔每月捐款将允许额外的 Ryujinx 团队开发人员全职从事该项目。
好的, 我们开始吧!
显卡:
我们开始本月的报告,讲述一个悲伤、遗憾的故事。 符文工房5 于 4 月在西部发布,Ryujinx 的每个人都想向所有尚未从游戏中恢复过来的人表达我们的想法和祈祷……沉默片刻。
符文工房5
除了糟糕的视频动画和隐晦的讽刺之外,游戏在发布时确实存在一些图形错误,这些错误源于 GLSL 着色器生成阶段的错误。 多重采样和缓冲纹理不采用 LOD 参数,因此 从 GLSL 生成器 中为这些特定阶段移除它可以解决用户报告的一些缺失效果。
符文工房5
如果您选择在 1.0.0 的基础版本上玩 三维弹球 FX3,这款游戏可以完美运行,但如果应用了任何类型的更新,它就会突然出现黑屏。 这个问题的原因被缩小到一些麻烦的多重采样 2D 纹理。 如果要复制的纹理与缓存中的纹理不完全匹配(例如,如果格式或大小发生了变化),那么这种匹配就会失败并导致美丽的黑暗虚空。 允许复制纹理视图与 此处的缓存不完全匹配修复了该错误,并且所有四个 三维弹球 FX3 粉丝都可以享受更新版本!
三维弹球FX3
原始重启是顶点渲染(线条和其它东西)中的一个重要功能,在 初音未来 中有些损坏,但奇怪的是在针对 Vulkan 进行测试时完全没问题。 事实证明,在 OpenGL 中,该功能同时应用于索引和非索引绘图,而在 Vulkan 中,规范明确确保只有索引绘图使用此功能。 幸运的是,GPU 本身保留了一个控制此行为的寄存器,并且通过 将此寄存器读取为 false 对于非索引绘制 ,可以 以与 Vulkan 类似的方式解决问题。
初音未来
本月的视觉改进较少,gdkchan 为未来推出一些有趣的游戏奠定了基础。 超级马里奥3D全明星 系列中的 超级马里奥 64 和 鲜活的世界 都会在启动时使用巨大的顶点缓冲区,随后会因内存耗尽错误而崩溃。 早在 2021年12 月,此更改就通过了几种不同的方法来解决该问题,但现在 通过从缓冲区类型计算顶点缓冲区大小来减少顶点缓冲区大小 。 这使他们处于 Ryujinx 不再抱怨的舒适范围内。 这些游戏需要进一步更改才能启动,但它们现在不远了!
在写这段话和当你(是的你!)正在阅读这个报告的时候 超级马里奥64 现在可以启动了! 这些变化将在下个月介绍,但现在这是一个坦率的镜头!
超级马里奥64
《柯比与被遗忘的土地》在 现在完全可以玩…… (我们在一些旧的 LDN 版本上进行了测试!)但这并非没有一般的小图形问题。 文字和其它一些纹理明显错误。 有些重叠不正确,有些被切断,菜单可能会闪烁等。尽管如此,总的修复只是一行代码。 在清除之前检查是否启用了图形是 这里的关键,和以前一样,无论图形是启用还是禁用都会进行清除,从而导致一些过度的副作用。 这些即表现为各种文本和纹理剪切,不正确的透明度和一般错误!
星之卡比:探索发现
如果您有一个年轻的亲朋,是乐高的忠实粉丝,或者是对彩色塑料小块的痴迷,那么这个月也有适合您的游戏! 乐高星球大战:天行者传奇 以片段钳制的形式将另一个 OpenGL 独有的 bug 带到了聚光灯下。 通常所有片段值都被限制在 [0 1] 的范围内,通常这完全没问题,但众所周知,它从来没有那么简单,是吗? 乐高星球大战:天行者传奇 使用称为“SNorm”的特定数据类型,它实际上具有 [-1 1] 的完整范围,因此当这些被限制为 [0 1] 时会出现问题。
乐高星球大战:天行者传奇
幸运的是,在隔离了这样一个基本问题后,该修复程序也在第一天编写并获得批准,这些 “SNorm”片段不受正常的钳位限制。 角色和环境反射现在可以正确渲染,不再让每个人看起来都像原力幽灵。
超级马里奥64
自从几个月前riperiperi 实施“纹理同步”以来,异度之刃 的粉丝们终于不得不第一次接触草地并提交一些有意义的错误报告。 一些讨厌的,更烦人的,随机闪烁和照明错误可以追溯到这种变化,并导致了我个人见过的最大的旧 Ryujinx 构建的黑市交易。 虽然游戏生命周期的这一章相当有趣,但riperiperi 试图解决新问题。 事实证明,原始实现中存在一些缺陷,主要是围绕一些同步方法提前退出而没有重置动作标志。 这些可能导致该动作永远不会被注册,因此会破坏任何导致此问题的纹理,直到它在屏幕上的剩余时间,或在运行时中,直到游戏被重置。
异度神剑
通过 解决这些边缘情况并对某些区域进行一般重新排序 ,由原始更改引起的主要回归应该再次成为过去!
异度神剑2
本月还发生了一些较小的 GPU 更改, VMAD 着色器指令 由 gdkchan 实现,主要用于使用 Nouveau OpenGL 作为来宾 API 的自制应用程序,merryhime 在 优化 Lop3Expressions 和 图形的一般去 抽象层(GAL) 。
好吧,让我们谈谈一些改变游戏规则的东西。
着色器缓存 2.0:
着色器是现代系统仿真中永远存在且不可改变的事实。 它们存在,它们使事情看起来很漂亮,但正如你们所有人可能都知道的那样,它们在不是为它们设计的系统上不能很好地发挥作用。 虽然 Ryujinx 可以将这些着色器转换为您的 PC 可以理解的内容,但此过程需要时间,通常比帧的渲染时间长,这会导致卡顿。 Project Salieri 是我们第一个实现“ 着色器缓存”的项目, 成功地缓解了用户在第二次遇到相同着色器时会面临的大部分问题。 不过那是在 2020 年。 2022 年的游戏更普遍地使用原始缓存无法处理的着色器类型和专业化,在这些情况下,它完全取决于您的 GPU 驱动程序来记住它已经看到的内容。 这并不理想,因为驱动程序缓存容易失效,并且在每次驱动程序更新时有效地从头开始。 所以,着色器缓存 2.0.... 正式登场!
此更新由 Ryujinx 的创建者 gdkchan 提供 ,旨在解决原始实现的多个问题,包括但不限于:更小的缓存大小、使用无绑定纹理的着色器现在可以缓存、着色器专业化和其它一些生活质量变化,例如如果着色器已缓存在会话中,则能够在加载着色器时关闭程序,并加快关闭时间。
修复 妖怪手表 1 闪烁的着色器专业化:
以下(非全面)著名游戏列表现在可以缓存它们的大部分着色器:
- 真女神转生V
- 马里奥派对超级巨星
- 巫师 3:狂猎
- 精灵宝可梦 钻石和闪亮的珍珠
- 乐高星球大战:天行者传奇
- 过去和未来还有更多……
BDSP 特别是一个独特的案例,游戏似乎使用超过 2000 个着色器 来启动 。 这些以前无法缓存,并且由于 OpenGL 着色器编译器相当缓慢的特性,用户注意到这些游戏自发布以来需要大量时间来启动。 使用新缓存,从第 2 次启动开始,这种痛苦将大大减少; 我们注意到使用完整着色器和 PPTC 缓存的启动时间从超过 80 秒减少到 15 秒以下!
新的缓存格式还有其他优点。 最大的优点之一是它非常适合图形 API 之间的灵活性。 这意味着当 Vulkan 被集成时,缓存格式在本质上几乎是相同的,这将在本报告的末尾进行更多讨论!
中央处理器:
虽然 4 月无疑是 GPU 的月份,但我们的 CPU 后端仍然获得了一些重要的改进,其中主要修复了 Amiibo 的使用。
Merryhime 实现了 T32 加载/存储单指令集 ,这是通往“二之国:白女巫之怒”之路的又一步,也许还有一些不为人知的东西,引导。 需要进行更多更改才能进入游戏,但讽刺的是,每出现一个新错误,我们就更近了一步!
Amiibo 仿真处于相当稳定的状态,但在一些游戏中,用户在打开菜单时会遇到严重的减速,并且这些情况会一直持续到游戏硬重置。
这是对先前 PR 的回归,该 PR 优化了尾部合并通道并在雷达下进行了近一年。 gdkchan 加紧 在尾部合并方法 中添加额外的检查,以解决这些减速问题。 一些受影响的游戏包括:集合啦!动物森友会、星之卡比:探索发现 以及与 Amiibos 一起使用时可能出现的其他游戏。
星之卡比:探索发现
声音的:
出人意料地流行的体育游戏:“美国职业棒球大联盟22”于 4 月推出,不幸的是它目前不在游戏中。 然而,与上面的 二之国:白色圣灰的女王 类似,实现这一目标的步骤已经开始,首先是 实现与多流相关的 Opus 解码功能 在音频服务中 Opus 是一种“免版税、高度通用的音频编解码器……在互联网上的交互式语音和音乐传输方面无与伦比”,因此可能有相当多的过去和未来的游戏可以利用这一附加功能.
我们的音频渲染器 Amadeus 本月也收到了两次更新。 首先是 由 Thog 为渲染器的最新版本 REV11 铺设样板 。 此版本随固件 14.0.0 一起提供,并更改了传统音频效果的通道配置,例如:延迟、混响和混响 3D。 计划进行后续工作以完全重新实现这些效果,但目前此更改将它们重定向到遗留系统作为临时解决方案。
第二个更改与刚才提到的 Thog 开始重新实现这些功能的工作直接相关,首先是 对延迟效果处理的改进和修复。 预计这些音频调整不会对游戏进行任何更改,但希望未来的游戏使用现代版本的渲染器可以避免与音频相关的问题。
服务/杂项:
首次贡献者 German77 解决了“跳跳战争”中的一个问题,即游戏坚持认为控制器不断断开连接,而用户则感到困惑,因为其它游戏没有表现出这种行为,据他们所知,他们的控制器是完全正常设置。
跳跳战争
事实证明, AcquireNpadStyleSetUpdateEventHandle 信号 无论控制器连接状态如何,某些游戏都希望在游戏过程 通过返回此事件,此标题中的随机控制器断开连接已解决,游戏现在可以正常运行。
跳跳战争
输入改进继续进行,第二个首次贡献者(但全职抱怨者) Haronee 修复了本机运动控制实现中长期存在的错误。 用户注意到他们持有的轴经常是倒置的,如果他们持有左边,他们实际上会收到右边,反之亦然。
马里奥赛车8:豪华版(反转)
事实证明,这个问题真的很简单。 Z 轴本应为负,却被错误地归为正。 此标志翻转 修复了使用本机设置(不是 cemuhook)的体感控制会相反的问题。
马里奥赛车8:豪华版(体感正常)
也收到了 版本 LibHac 本月 此更新修复了 NSO 标题(如 NES 和 SNES online)在启动时崩溃的回归,增加了对读取包含初始数据/密钥区域的 XCI 文件的支持,并最终为固件 14.0.0 及更高版本添加了关键源。 值得注意的是,如果您不手动更新密钥,固件 14.0.0 更高版本需要此功能才能运行!也就是说14.0.0以前的固件及密钥也都将不再完美支持, 请注意,如果您在主版本和较旧的 LDN 版本之间共享固件,LDN 将开始非常生气并在控制台中写入大量红色文本,除非您重新转储 14.0 密钥或回滚到较旧的固件。也就是说Ryujinx旧版本模拟器要对应旧版本固件,新版模拟器要更新新版本固件,难道还有人用旧版本吗?
为了结束这个主要部分,我们将进入快速更改回合:
已删除询问您是否希望在不存在保存数据时创建保存数据 以简化体验。
已解决 ReactiveObject 中 当值变为 NULL 时,
Ryujinx 现在可以 在使用 X11 显示程序的 linux 系统上识别 DPI。 这可以被 Xft.dpi 设置覆盖。
Vulkan进展:
Vulkan,看来大家都很感兴趣的部分,我们有很多进展可以与您分享,这些进展很快就会变成 AMD 的“打地鼠”体验。 一个错误被压扁,另外三个游戏开始闪烁! 在此之前,让我们谈谈进展 顺利 。
英伟达很棒
本月达到了一个重要的里程碑, 几乎 每个游戏在使用 SPIR-V 的 Vulkan 和使用 GLSL 的 OpenGL 上的功能都相同。 因此,让我们深入研究一些曾经无聊而现在不无聊的游戏。
塞尔达传说:天空之剑HD
精灵宝可梦:钻石/珍珠
堡垒
堡垒
几乎我们投入的每一个主要游戏现在都与 OpenGL 后端处于同等地位,但这伴随着“在 NVIDIA GPUs”上的警告。 需要做更多的工作来修复一些相当荒谬的错误。
AMD对水管工可能有一些看法。。。
像往常一样,如果有人认识为 AMD 工作的人:你能抓住每一个机会提醒他们,2017 年的英特尔 iGPU 在某种程度上比一些旗舰 Radeond GPU 引起的头痛更少吗? 看着你北极星!AMD的驱动实在是太多问题了。
着色器缓存 2.0 继续:
回到一些好消息,在本报告的早些时候,对着色器缓存系统的重写进行了详细讨论,但有意省略了有关这将如何影响 Vulkan 的细节,因为这里的更改非常广泛,并且是更多游戏正常运行的部分原因.
缓存重写合并后不久,gdkchan 将新系统添加到 Vulkan,这意味着多线程 SPIR-V 编译和着色器缓存在所有供应商中都可以完全正常运行! 甚至对我们的测试人员来说也是令人兴奋的东西。
间接地,新缓存还修复了一些 Vulkan 独有的图形问题,特别是在使用多重采样来渲染图像时。 三个最常见的问题如下:
超级马里奥明星大乱斗
宝可梦传说:阿尔宙斯
宝可梦传说:阿尔宙斯
这是一个包装! 你们中的一些老鹰眼可能已经注意到我们在提到新发布的 任天堂运动 时是多么天衣无缝,为此我们值得庆祝。 不幸的是,它确实打破了我们可追溯到 2020 年某个时候的第一天可玩第一方游戏的相当可观的记录,但正在取得进展! 游戏在我们的主版本上启动,但在进入菜单后不久会立即崩溃。 gdkchan 忙于其它五个项目,在发布时找到了一些修复的时间,我们希望能够尽快完成!
像往常一样,如果您对模拟器感兴趣并了解一些 C#,我们总是很高兴看到新的代码贡献者可以解决从拼写错误到重写整个系统的任何问题! 如果这听起来超出了您的能力范围,那么只需向我们提供反馈、在 GitHub 上打开问题或仅报告兼容性也可以极大地帮助我们!
再见!