switch官网上下的模拟器有中文么 Switch模拟器Ryujinx进度报告2023-2月
Switch模拟器Ryujinx进度报告2023-2月
再见二月,二月标志着任天堂粉丝生活中的几个令人兴奋的事件:直接、神奇宝贝礼物和经过认证的经典的隐形下降;从而证明,如果您需要延迟游戏,只需发布旧游戏的重制版即可填补空白。幸运的是,银河战士没有对仿真提供太多阻力,但我们稍后会讨论。
GPU
我们将通过一些经过认证的诅™咒游戏来启动本节。对于任何试图在 Ryujinx 上玩马里奥 兔子游戏的人来说,你都会知道直到最近他们都是奇怪的经历。第一个游戏存在严重的性能问题,而较新的游戏《希望之星》并没有渲染太多内容;除非你说了温柔的话,并在一周前牺牲了几只山羊。虽然第一个条目的性能问题得到了一些喜爱,但第二个条目的图形问题更难解决。
第一个障碍是确定为什么游戏有时会渲染,有时不渲染。Sparks of Hope 使用缓冲区清除从 GPU 中删除纹理数据,通过清除 GPU 缓冲区上的 CPU 端数据,游戏在渲染时不再读取垃圾剩余内存,从而消除了这种特殊怪癖的随机性。
马里奥和疯兔
不过还是不太对劲。游戏试图将R8Unorm纹理别名为RGBA8Unorm,这是不兼容的。幸运的是,转移我们的一些复制依赖规则足以解决这个问题。
马里奥和疯兔
“被诅咒”名单上的另一个标题!另一个怎么样?
塞尔达传说:旷野之息目前都很热门,这当然主要是因为它的继任者非常接近发布时间。这引发了很多人几乎每天都在问“它在发布时会运行良好吗?”对此,我们的答案始终是两件事之一。要么是水晶球表情符号(个人最喜欢的表情符号),要么是昏昏欲睡的“我们将不得不拭目以待”。但我们正在尽最大努力让机会尽可能高。
许多用户报告了最近的BoTW更新,传说中的“自行车核弹”的神秘案例。这种现象是通过激活主循环零符文相当一致的触发的,但在游戏过程中的随机时刻也可以看到。
塞尔达旷野之息
多年来,这个问题被研究过几次,其中最具建设性的会议导致了以下不和谐的信息:“是的,这是吐司”。
然而,只需要几个独立游戏以完全相同的方式出现并打破,但这次有一个转折。
最难修复的错误是随机错误。它们不是确定性的,即使你确实发生了,通过你之前执行的数百或数千个操作来隔离原因几乎是不可能的。如果您可以确定某些东西会在特定点中断,那么这一切都会改变,这正是“void tRrLM();”和“最长的五分钟”中发生的事情。这些游戏强调了我们需要处理缓存和池之间的纹理大小不匹配的情况,因为旧方法显然是不够的。解决方案是什么?我们当然希望您不会厌倦复制依赖项!
最后,荒野之息。终于,能够重演成为环保摩托车帮派的梦想!
塞尔达旷野之息
使用AMD显卡的神奇宝贝猩红和紫罗兰的玩家会很高兴听到他们的两个问题已被一次更改杀死。由于不支持的 blit 操作,使用本机以外的任何分辨率比例启动 S/V 都会在这些卡上崩溃,但在此游戏发布之前,我们不太了解这影响的游戏规模。事实证明,包括《火焰纹章:结合》和《TLoZ:链接觉醒》在内的许多游戏也以完全相同的方式被打破了很长时间。
因此,为AMD卡创建了一个单独的路径,该路径利用了VK_EXT_shader_stencil_export Vulkan扩展,值得注意的是,在撰写本文时,Nvidia不支持该扩展。幸运的是,Nvidia和Intel GPU不需要使用这种安全路径,因此在实践中,这种变化只会影响AMD。
宝可梦:朱、紫
作为奖励,这一变化似乎也解决了AMD GPU在Scarlet / Violet中看到的异常低性能的问题。一位用户甚至评论说,通过从RX 6800XT转移到GTX 1660来“升级”他们的体验,这在纸面上可能不应该发生。使用 Ryzen 5 5600X 和 RX 580 进行测试后,性能从这些变化从 33 FPS 跃升至 45 FPS。与Nvidia等价物一致。
不幸的是,我们必须远离AMD目前可以遵循的领域。一些游戏,但最突出的是马里奥派对超级明星(MPS),利用了一些只有Nvidia支持的操作和扩展。这些修复中的第一个早在MPS的发布日期就被提及,AMD在Vulkan上缺乏VK_EXT_fragement_shader_interlock,在OpenGL上也ARB_fragment_shader_interlock。直到今天,这意味着AMD GPU无法在Spotlight Search等迷你游戏中呈现某些效果,而Nvidia的同类产品可以。
里奥派对超级明星
其他MPS迷你游戏和 路易吉洋馆 3的某些屏幕使用所谓的“可编程混合”,这是通过Switch的Tegra X1上的微码实现的。然而,桌面上的图形API,如OpenGL和Vulkan,不会公开这种直接功能,而是选择提供诸如“VK_EXT_blend_operation_advanced”之类的扩展。您可以在家中查看有多少 GPU 供应商支持此扩展,以及您的 GPU 是否在其中列出。对于Ryujinx来说,这意味着目前只有Nvidia有希望,但对于未来的使用,以及Android设备上的任何Switch模拟器,Snapdragon Adreno GPU驱动程序也提供了选项。
里奥派对超级明星
里奥派对超级明星
里奥派对超级明星
里奥派对超级明星
里奥派对超级明星
而在路易吉的豪宅里...
路易吉洋馆3
关键是这些高级混合模式可以通过使用片段着色器互锁来模拟......如果AMD支持的话。这些卡的用户会很高兴地知道,所有的希望并没有完全消失。AMD可以在未来的某个时候实现对一个或两个扩展的支持,或者可以实施LLE方法的高级混合。如果你使用的是 Linux,那就去纠缠那些开发 RADV 驱动程序的聪明人吧!
当前的实现使用 Vulkan 和 OpenGL 扩展来匹配 Switch 与微码操作所做的任何操作,但这可以手动完成。我们暂时避免这样做,因为与使用 API 扩展相比,复杂性和时间成本是巨大的。然而,对于AMD和英特尔等供应商来说,它可能不支持或仅支持一小部分混合扩展。
本月新版本的银河战士Prime重制版;一个真正令人震惊的揭示,让每个 90 年代出生的人都同时发出尖叫声。如果我们忽略这个版本可能意味着Prime 4被进一步推迟的事实,那么在这个时代看到如此努力的重制版真是太酷了。就模拟它而言,游戏在第 1 天从头到尾都在技术上可以玩,但有一些警告,我们现在将进入。
首先要修复的是,当着色器使用输入或输出索引时,使用 Vulkan 时,该崩溃与 SPIR-V 着色器生成器隔离(因为 OpenGL 不受影响)。
下一个问题是图形问题,影响了两个后端。
虽然加入《黑暗萨缪斯》本来是一个不错的选择,但这是由于我们处理部分映射纹理的方式受到限制造成的。在此之前,支持部分映射,但在取消映射纹理的开头时不支持。关于Prime Remastered在做什么的任何双关语?我们给你五个猜测。
银河战士Prime重制版
不幸的是,这里的修复程序创建了另一个问题,我们仍在解决中。为了处理纹理的未映射开始,需要在某些时刻创建各种“巨型纹理”。对于最近在Ryujinx上玩过游戏的任何人,由于通过门和加载新区域时可能发生的大障碍,您也许可以推断出这些何时发生。请放心,我们已经意识到这一点,解决方案目前正在酝酿中,敬请期待!
本月对 GPU 仿真的一些小变化包括:
修复纹理的部分更新 - 解决了主要出现在UE4游戏(如Tony Hawk的Pro Skater)中的随机黑色或乱码纹理。
当 viewportCount 为 0 时,不再调用 vkCmdSetViewport - 解决了某些 Vulkan 验证错误。
Vulkan 1.2 现在在实例级别强制执行,Vulkan 1.1 现在在设备级别强制执行 - 确保 Ryujinx 不会尝试初始化不兼容的 Vulkan 设备。
清理 Vulkan MemoryAllocator - 删除在运行时重复调用的 vkGetPhysicalDeviceMemoryProperties,并清理 MemoryAllocator。
尊重 Vulkan 规范VK_KHR_portability_subset顶点步幅对齐 - 对齐现在支持 2 的任何幂,而不是硬编码为 4。
我们在另一个重制版和另一个塞尔达游戏中结束了 GPU 部分。《天空之剑HD》本月在游戏后期的一个地下城中解决了Vulkan特有的错误,引起了一点爱。OpenGL允许在所有拓扑类型上进行基元重启,而默认情况下,Vulkan希望它仅用于条带和风扇。 幸运的是,通过利用VK_EXT_primitive_topology_list_restart我们可以扩展此支持的拓扑列表并匹配 OpenGL 行为。
塞尔达旷野之息
后处理支持
实现对滤镜和抗锯齿技术等东西的支持有点像要求孩子改进蒙娜丽莎。无论你为他们提供什么工具,他们都会拿走最大的刷子并造成混乱。他们会觉得这看起来很棒,其他人都会摇头哭泣。对我们来说不幸的是,多年来它一直是一个受欢迎的请求,它确实有一些真正的用处。下面我们将概述当前可用的内容,它的作用以及使用事物/不理会它们的理想方案是什么。这可能是一些非常像素窥视的东西,所以我们建议您尝试一切,看看你喜欢什么,不喜欢什么!
抗锯齿 锯齿
是由屏幕上的所有内容分解为方形像素引起的。最终,即使是弯曲或圆形的边缘也需要在某处呈正方形。在足够高的分辨率下,您几乎看不到这一点;在较低的分辨率下,所谓的“楼梯套管”非常明显。抗锯齿 (AA) 尝试通过各种技术(如模糊和边缘检测)平滑这些边缘,以使锯齿状表面看起来光滑。
抗锯齿
Ryujinx 现在提供两种抗锯齿技术:
快速近似抗锯齿 (FXAA)
亚像素形态抗锯齿 (SMAA)
FXAA是英伟达工程师开发的最早的AA形式之一。它的目标是快速且功能强大,但在边缘检测方面并不是特别惊人。因此,它甚至倾向于过度模糊非边缘,并且实际上只是由于其简单性而提供的。
SMAA 在概念上类似于 FXAA,但在其着色器中使用了更好的边缘检测。这意味着它可以更清楚地定义图像中应用模糊的位置,理想情况下,将屏幕的更多区域清晰聚焦。SMAA 本身分为 4 个小节:低、中、高和超。这些子选项定义 SMAA 着色器中的某些参数,例如边缘阈值及其进行的 AA 传递次数。
在现代GPU上,FXAA和SMAA的成本,即使在Ultra上,也是可以忽略不计的。所以实际上,我们确实推荐SMAA Ultra,如果你想在那些特别锯齿状的游戏上达到一定程度的AA。另一方面,我们不建议为像素艺术游戏或艺术风格围绕锋利边缘设计的游戏启用此功能。
FXAA
SMAA
缩放过滤器
每当一段内容与显示器或电视的分辨率不完全匹配时,就需要进行某种形式的缩放,以使该内容填满屏幕。如果没有应用缩放,那么您只会在没有数据的屏幕边缘周围看到黑条。如果您要在 4K 屏幕上显示 1080p 图像,您的 GPU 或显示器通常会自动执行此操作,如 Nvidia 控制面板中方便的信息图所示。
由于大多数Switch游戏甚至不是1080p,更不用说4K了,因此我们需要将它们缩放到程序窗口的大小,甚至在全屏播放时缩放到显示器的大小。
有许多方法可以缩放图像。您可能听说过的一些常见包括:双线性,双立方,最近邻和Lanczos。所有人都有自己的优点和缺点,这就是为什么这在很大程度上归结为个人喜好的原因。Ryujinx 目前支持以下三个缩放过滤器:
双线性滤波(当前默认值)通常是Switch本身用于将图像缩放到输出监视器的滤波,因此应最精确到实际硬件输出。然而,有些人认为它有点模糊,尤其是在较低的分辨率下。
近邻取样是一种非常基本的技术,它只是将每个输出像素替换为“最近”的实际输入像素。因此,它会创建一个非常块状和锯齿化的最终图像。然而,当缩放像素艺术或复古游戏(如Celeste和GameBoy NSO模拟器)时,这可能是一个最好的效果,因为不会尝试平滑任何边缘。
AMD FidelityFX™ 超分辨率 1.0 是由 AMD 设计的滤镜,用于拍摄较低分辨率的图像并将其放大到更高的分辨率。请注意,此处只能使用 FSR 1.x,因为 FSR 2.x 以与 DLSS 类似的方式使用运动矢量等时态数据。选择 FSR 后,设置中还将出现一个滑块,用于控制应用的锐化程度。100 = 最大值,0 = 最小锐化。
要进行与 AA 相同的比较,将在不应用 AA 滤镜的情况下使用相同的场景。
双线性
临近取样
FSR
缩放过滤器可用于生成更适合您的个人偏好或您正在玩的游戏风格的图像。尽管它主要是主观的,但我们制作了一个小表格来突出显示每个用例的预期用例以及尝试和避免的内容。
缩放筛选器 | 推荐方案 |
双线性 | 如果不确定,一般默认使用。 非常适合缩小规模。 |
临近取样 | 像素艺术或复古游戏。 游戏分辨率和显示分辨率匹配。 未应用 AA。 |
AMD FidelityFX™ 超分辨率 | 适用于将低分辨率图像升级到更高分辨率的显示器。 使用此滤镜缩小可能会导致过度锐化的“油炸”外观。 低功率计算机上可能的性能开销。 |
MacOS 上游
这个月相当短。更复杂的图形修复的第一阶段在本月上游,如果不支持几何着色器,则gl_Layer移动到顶点着色器。这允许某些UE4游戏开始在自编译的macOS版本上渲染。
真女神转生V
使用的方法与macOS1中的方法略有不同,因为我们也需要担心几何着色器仿真。如前所述,理想情况下,MoltenVK将在一切准备就绪之前原生支持这些,在这种情况下不会出现任何问题。
macOS版本中现在也包含更新程序脚本,因为尝试在运行时替换您自己的程序,就像目前在Windows和Linux上所做的那样,可能会使Apple系统上的代码签名无效。这主要是一个权宜之计,直到找到更好的解决方案,目前无论如何都不起作用,因为 macOS 版本不是我们主要构建管道的一部分。
杂项/服务
结合最后一部分,许多Mac用户报告了一些相当讨厌的屏幕撕裂,这些撕裂在Windows或Linux上没有报道。在搜索为什么这只会影响看似Apple的设备时,我们发现在Avalonia窗口中,我们忘记在渲染时调用设备VSync,导致驱动程序无法拯救您的系统撕裂。如果程序不强制执行,英伟达、AMD 和英特尔默认情况下都会强制使用 VSync,因此这在很长一段时间内都没有引起注意!这也略微改善了macOS上的微卡顿,因为现在有一些刷新率同步的外观。
就服务更改而言,帐户服务中的LoadOpenContext于二月份实施,并允许一些多游戏集合,例如Prinny Presents NIS Classics Volume 1:Phantom Brave:Hermuda Triangle Remastered / Soul Nomad & the World Eaters(如此之长...)在游戏中前进。还可以解决尝试返回游戏选择页面时多游戏集合中的崩溃问题。
某些游戏(如《王国保卫战》)在请求未知的 NPadID 类型时崩溃。添加额外的检查以确定收到的ID是否有效可以解决这些特定的崩溃问题,并允许玩《王国保卫战》。
最后,但并非最不重要的一点是,这是代码贡献者 Lostromb 在为我们的音频上采样器提供 SIMD 优化后的图像。
下表显示了使用的时间方法与从旧(基线)方法和新 (SIMD) 方法进行音频上采样所花费的时间。
方法 | 输入样本计数 | 意味 着 | 错误 | 标准开发 |
上采样基线 | 40 | 3.755 毫秒 | 0.0749 毫秒 | 0.0919 毫秒 |
上采样模拟 | 40 | 1.499 毫秒 | 0.0291 毫秒 | 0.0323 毫秒 |
上采样基线 | 80 | 3.024 毫秒 | 0.0578 毫秒 | 0.0710 毫秒 |
上采样模拟 | 80 | 1.103 毫秒 | 0.0172 毫秒 | 0.0287 毫秒 |
上采样基线 | 160 | 3.198 毫秒 | 0.0619 毫秒 | 0.1100 毫秒 |
上采样模拟 | 160 | 1.461 毫秒 | 0.0286 毫秒 | 0.0268 毫秒 |
结语
嗯,这是一个很长的过程。较短的月份。这到底是怎么回事?
我们要再次感谢所有每个月在 Patreon 上支持我们的人,在 GitHub 上为我们贡献代码的人,以及那些在我们的 Discord 中帮助其他用户进行故障排除和错误报告的人!没有你,我们无法做到这一点。
正如开头提到的,我们勉强高于纹理更换 patreon 激励,如果这个数字一直保持到下一个进度报告发布,工作将开始!
直到下一次我们见面...
推荐
宠物
- 1成年豆柴犬能长到多少斤,多大才能看出来是不是柴犬193
- 2金毛真的可以做家务吗?金毛当枕头给小主休息217
- 3电热水器十大常见故障及解决方法 电热水器故障原因电热水器的维修技巧432
- 4养猫的五大益处你不看不知道 养猫后,我发现了这15个神奇现象356
- 5纠结养公猫还是养母猫:养公猫,还是养母猫211
- 6世界上中指最长的灵长类动物,世界上最小的灵长类动物242
- 7野猪现在还是野生保护动物吗?野猪不再是,三有保护动物473
- 8如何让猫咪养成良好的便溺习惯?怎样的喂养习惯才能让猫咪健康少生病116
- 9金毛犬段景住是怎么上梁山的?趣说历史梁山好汉自传之303
- 10千万不要买的鸡肋家具图文:奉劝各位铲屎官选家具要谨慎175