Switch模拟器Ryujinx进度报告2023-9月

Switch模拟器Ryujinx进度报告2023-9月

对于我们发布游戏的朋友来说,九月是一个异常安静的月份,唯一值得注意的游戏是相当平淡的 Baten Kaitos霸天开拓史 重制版,以及可疑的真人快打 1。至少后者设法为其原本令人难以忘怀的视觉效果带来了一些欢喜。

除了这些之外,我们还有来自整个项目的内容,包括 LDN、Mac 改进和大量服务工作。

我们的第一站是德尔菲诺港,那里的闪耀滞后是游戏的名称。《超级马里奥阳光》(3D 全明星系列的一部分)的标题画面给我们的几个缓冲区转换着色器带来了很大的压力,特别是那些转换步伐的着色器;步幅实际上是顶点规范或其他数据集中相同“类型”的元素之间的间隙。如果您列出了购物清单,例如:西红柿,1,面包,1,苹果,6,则您的物品之间的“步幅”是1,或者在计算机中,无论每件商品的数量占用多少内存!

无论哪种方式,为了不让每个人都对理论感到厌烦,我们需要通过计算着色器将 SMS 使用的一些缓冲区格式转换为对真实 GPU 更合理的格式。英伟达不需要这些转换,没有它们也能正常工作,但是AMD(以及迫使英伟达使用转换时)非常挣扎。

视频加载中...

这就是每次缓冲区需要转换时在计算中写入 230MB 的样子!

为了减少这种疯狂的影响,我们可以改为设备映射转换后的顶点缓冲区(因为它们只能从 GPU 访问),并且还允许转换着色器本身缩放工作组大小。这非常适合大多数具有更多内核的专用 GPU。即使在一起,问题也没有完全消除,但差异仍然很明显。

视频加载中...

在性能不佳的话题上,真人快打 1 在 9 月初是一个意想不到的刺,因为即使是我们拥有最高端系统的用户也在努力达到 60FPS 的原生帧上限。

进一步的检查和分析显示,MK1正在创建100多个缓冲区纹理,这些纹理会同时重叠。MK1 在缓冲区缓存实现中暴露了一个极端情况,其中可以创建许多缓冲区纹理作为其他重叠缓冲区范围的视图。如果所有这些都是行话,那么基本结果是缓冲区缓存正在检查的场景基本上是不可能的,因此只是浪费时间和您的时间。

一旦纠正了这一点,可以看到46%的改进。游戏似乎也有最大帧率上限,所以这里的值可能更高!

不满足于只影响一款游戏,第二个问题在每次查找返回时都会调整纹理查找数组的大小,这在一些FIFO有限的UE4游戏中产生了一些不错的收益,并且巧合地提高了真人快打11的帧时间稳定性。

不过,真正的赢家是R-TYPE FINAL 2 异形战机:最终2,它从8FPS一直到60FPS的发动机盖提高了惊人的750%。如果横向卷轴太空射击游戏正是您渴望玩的游戏,那么现在是时候了。

九月也标志着Baten Kaitos I&II霸天开拓史 I.・II 重制版的到来,如果你对琐事感兴趣,其中第一个拥有最长的100%速度运行世界纪录,在现实世界的十四天打卡。

显然,它带来了一个全新的服务类别:“ngc”。这几天有点神秘,因为没有人能真正知道它做了什么。BKI&II似乎注册了这项服务,但实际上从未拨打过任何电话。然而,经过进一步检查,似乎在固件16.0.0中,任天堂已将其亵渎和一般输入过滤检查移至自己的服务中。

NGC,“没有好的内容”,似乎已经接管了过去由通用固件单词黑名单提供的角色,该黑名单自3DS / Wii U时代以来一直在使用,并且对我们来说接近5,000行。

这项新服务有四个部分:

  1. GetContentVersion - 只需从固件文件“版本.dat中获取要使用的坏词字典的版本。
  2. 检查 - 这些方法实际上对任何文本执行启发式操作,以确定要标记的单词或字符串。有一个通用的术语字典要始终标记,然后是一个特定于每个区域的字典,可以检查在某些区域中存在问题的特定字符串。
  3. 掩码 - 此方法将字符串中的任何坏词替换为星号 (*) 直到前 512 个字符;超出此范围,将不会处理字符串。除此之外,还有一个相当粗糙的电子邮件地址检查,以及根据Unicode标准“规范化”文本并将字符串转换为“规范”格式的新功能。
  4. 重新加载 - 它在锡上说什么。卸载并重新装载系统归档文件。未知用途,可能只是一个故障保险。

总的来说,基本的单词检查相当多。由于显而易见的原因,我们无法在各种词典中显示生成的术语和子字符串的列表,但其中一些是......富有 想象力!

我们已经实施的两项服务:“lbl”(在固件 10.0.0 之前)控制背光和屏幕服务,以及管理一般 LAN 服务的“WLAN”,都已移至我们的新视野项目。我们在首次添加它时强调了这一点,但核心前提是我们最初处理许多服务实现的方式存在许多关键缺陷。但是,由于我们在过去 5 年中实施了很多服务,因此随着服务随着时间的推移而迁移,这些服务正在逐步迁移。有关这一具体变化的更多信息,请参阅今年的第一份进度报告。

唉,如果不回答这个问题,我们显然不能继续。它能运行孤岛危机吗?!

在九月之前,答案是响亮的否定!幸运的是,这不是一些GPU疯狂,也不是一次性使用的自定义CPU指令,只是一些网络检查......老实说,考虑到游戏的遗产,这非常令人失望。通过删除剩余的不受支持的BSD套接字选项,每个人的邪教经典PC杀手实际上可以回到正题。

我们已经有一段时间不必接触音频服务了,但 9 月祝福我们发布了 伊苏X 北境历险,它放大了在音频渲染器中实现压缩器效果的一些问题。有一个完整的小不准确列表被清理,这让游戏找到了它的声音。

超级炸弹人R 2是本月的最终游戏,它使用“朋友”类的全新服务在我们的假软件Switch中戳了漏洞。由于几乎所有这些类型的服务在没有与任天堂连接的情况下都是无用的,因此它们很容易被存根并允许游戏完全可玩!虽然有点模糊。

如果你们中的任何人正在开发游戏,请让人们禁用抗锯齿过滤器!

早在 2021 年,当每个人都被困在里面并乞求一些多人游戏时,我们发布了一个更普遍称为 LDN 的功能的预览版本。实际上,这只是处理交换机本地无线功能的服务的名称,并且需要像其他任何服务一样进行逆向工程和实施。

最初的预览非常受欢迎,对于大多数想要多人游戏的人来说“足够好”,但并没有真正处于干净或准确的状态,让我们无法将其合并到主代码库中。我们从来没有真正打算过几年过去,但事情发生了,优先事项发生了变化。

现在在 2023 年底,人们再次关注让所有这些组织起来。最初的 ldn:u、INetworkClient 接口和 DisabledLdnClient 实现已经完成,这是一个巨大的难题,即使它们还没有提供任何实际使用本地无线功能的框架。请继续关注后续工作,这些工作将在更有用的目标上实现这些“本地”连接的实际桥接......例如互联网。

对于我们的macOS用户,特别是那些使用M1 / M2芯片组的用户,有许多游戏很容易卡在启动,加载屏幕或游戏中的几乎其他任何地方。该问题被隔离到一些跳过的VCPU中断,这些中断现在有自己的专用VTimer,以便在错过完整调用时定期中断执行。这使得《女神异闻录5》、《勇敢默认》和《奇异人生:本色》等游戏可以在短短的两分钟会话之外播放。

为了结束这个月,让我们跳过一些对模拟杂项方面的快速更改。

围绕Avalonia项目重构了异步关键字的使用,以消除对“异步无效”的依赖,转而支持“异步任务”。这也允许加载游戏列表而不会再次阻止程序启动。

macOS 版本现在包含一个无头工作流程,适用于那些喜欢通过命令行或启动器运行模拟器的用户。这些可以在我们的Github发布页面上找到。

对上述无头构建实施了其他设置,例如缩放过滤器选择、抗锯齿选项以及使用 SDL 独家全屏模式的选项,为不需要 GUI 的用户提供尽可能低的延迟。

九月已经过去,希望大家度过一个美好的秋天。我们自己正在处理许多不同的任务,其中一些终于赶上了我们!我们的常驻 LDN 恶魔深陷于最终收集所有多人游戏作品的杂草中,而那些拥有 Steam Deck 的人正在拔头发,试图解决 Avalonia 和 Gamescope 正在争吵的任何争吵。

像往常一样,我们要感谢我们所有的支持者,无论采取何种形式。如果您想以任何方式参与进来,我们始终欢迎在 GitHub 上贡献代码、向我们的 Patreon 捐款以及通过我们的 Discord 帮助其他用户。直到我们下一次的相见!

展开阅读全文

页面更新:2024-06-18

标签:步幅   英伟   缓冲区   纹理   模拟器   字符串   字典   进度   版本   时间   报告   用户   游戏

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top