Switch模拟器Ryujinx进度报告2022-2月

Switch模拟器Ryujinx进度报告2022-2月

首页角色扮演Game Builder Garage手机版更新时间:2024-05-11

Switch模拟器Ryujinx进度报告2022-2月

三角战略

二月已经过去,又一次过早地离开了我们。 谁认为28天就足够让它成为一个值得的一个月?

但请放心,我们的开发团队在数天之内所欠缺的不仅仅是在雪崩式的改进、修复、添加和正在进行的项目工作中付出的回报!

Patreon目标:

Amiibo 仿真

2021 年 3 月并入主程序。

虽然兼容性接近完美,但 Amiibo 仍有一些改进可以在相关的 Github 问题上进行跟踪

自定义用户配置文件

2021 年 4 月并入主程序。

Vulkan GPU 后端 - 仍在进行中

已交付公共测试版本 。

ARB 着色器 - 2021 年 4 月达到的目标。

与 Vulkan 一起工作正在进行中,请稍等片刻,直到我们能够将此更新交付到我们满意的状态。

通过使用 OpenGL API 提高 NVIDIA GPU 上的着色器编译速度,ARB 着色器将进一步减少首次运行时的卡顿。

2000 美元/月 - 纹理包/替换功能 - 快到了!

这将有助于替换游戏中的图形纹理,从而实现自定义纹理增强、备用控制器按钮图形等。

一旦目标得以维持,预计到达时间: 3-4 周

2500 美元/月 - 一名全职开发人员 - 快到了!

这笔每月捐款将允许该项目的创始人 gdkchan 全职开发 Ryujinx。

5000 美元/月 - 额外的全职开发人员 - 尚未满足

这笔每月捐款将允许额外的 Ryujinx 团队开发人员全职从事该项目。

不用我再啰嗦了,引用一句陈词滥调的话,让我们开始吧。

Vulkan进展:

所以我们又回来了,如果我自己可以这么说的话,这个月是一个很好的月份。 上个月,SPIR-V 后端添加了一堆新的着色器指令,这些指令开始使它变得更好,以便进行更一般的测试。 然而,虽然着色语言是非常缓慢的 GLSL 的绝佳替代品,但它可以变得更快,而实现这一目标的一种方法是多线程(并行)着色器编译。 这比在 OpenGL 上要复杂一些,就像 Vulkan 一样,但 riperiperi 已经接受了挑战,并且已经提供了一些真正令人印象深刻的结果。

对于 同时使用多个着色器 ,并行编译的影响最大,尤其是与使用 GLSL 的 OpenGL 相比。 由于其它一些错误(感谢 AMD),此功能还没有准备好直接添加到 Vulkan 主分支,并且需要进行常规代码清理,但我们希望用户测试可以相对较快地开始!

好的,这是另一个:

显卡:

对 Switch 的 GPU 仿真的改进始终是最华丽、最直观的变化,这轮更新也不例外。

Game Builder Garage(任天堂的游戏编辑软件) 最近出现了一次回归,并显示了各种图形问题,包括轻微的纹理错误:

任天堂的游戏编辑软件

对于一些相当大的场景转换问题:

幸运的是,我们自己的 gdkchan 只需 2 行 代码就可以解决这些问题,并为任何新游戏开发者提供更加忠实的体验……无论如何,任何新游戏开发者都通过模拟玩游戏。

任天堂的游戏编辑软件

精灵宝可梦一直是我们的一根刺,直到最近。 虽然游戏在发布时完全可以玩,但用户很快就开始注意到游戏中洞穴里的一些特殊渲染:

宝可梦传说:阿尔宙斯

这是一个有趣的问题,因为它是 OpenGL 独有的,因此最终导致了 Vulkan 后端曾经吹嘘其排它性的整个笑话。 gdkchan 很快就来拯救 OpenGL 并修复了一大堆问题; 其中一些确实由来已久!

修复了 精灵宝可梦传说:阿尔宙斯 中的洞穴渲染。

宝可梦传说:阿尔宙斯

修复了 精灵宝可梦:剑、盾 中通过几何图形显示的轮廓。

精灵宝可梦:剑、盾

修复了纸片马里奥:折纸之王中的黑水问题。

纸片马里奥:折纸王国

修复了 怪物猎人:崛起 中船上的蓝色标志。

怪物猎人:崛起

修复了 新美妙世界 中过亮的水母。

新美妙世界

虚幻引擎游戏本月也得到了一些急需的喜爱, riperiperi 为 2d 引擎副本 (blit) 实施了新的快速路径, 这大大减少了一些 UE 游戏中与纹理流相关的卡顿,例如 时光之帽 和 耀西的手工世界,同时修复致命框架中的零~濡鸦之巫女启动!

修复致命框架中的零~濡鸦之巫女

零~濡鸦之巫女

自从 Ac_K 早在 6 月就实现了 Mii 编辑器小程序以来,Miitopia 一直是很多人想要利用他们自己的自定义 Mii 的游戏。不幸的是,虽然大部分游戏功能健全,但始终存在崩溃的情况,自游戏推出以来,这一直阻碍着我们的进展。

gdkchan 自 9 月以来一直处于审查阶段,但终于有可能通过这道门! 谁知道 3DS 端口如此烦人。

稍微改变一下,正如你们许多人所知道的,着色器是在 GPU 上运行的小程序,用于在屏幕上产生“效果”。 一阵阵烟雾,闪光,你明白了。 有几种情况 Ryujinx 可能无法编译着色器, gdkchan 在本月解决了 ,其中纹理在管道后期通过深度比较进行采样,或者纹理池类型与采样类型不匹配. 我们不知道有多少游戏受到此特定着色器事故的影响,但现在我们可以放心,我们 永远不会遇到了 ,任何游戏!

我们的主要开发人员不仅仅针对那些价格过高的 3A 3D 游戏,它们可以让您的Swtich和 PC 都达到最高风扇速度; 如果你是“热血少女Zero”的狂热玩家,那么本月你很幸运能够 修复过场动画打开后的崩溃 ……然后迅速关闭。 幸运的是,这是由于 gdk 进行了一些硬件测试并发现,虽然上面的修复 工作有效 ,但硬件的实际行为并非如此。 崩溃的原因是游戏没有写入 X/Y 区域寄存器,所以第一个修复只是将它们归零。 事实证明,Swtich并没有这样做,而是采用了简单地忽略这些区域寄存器的相当令人失望的解决方法! 来自 gdkchan 被提出并被接受。

热血少女Zero

音频:

合并 “Amadeus” 很久以前在 2020 年夏天的计划中 相对 没有重大音频错误。 但随着 2022 年的到来,新游戏、新固件服务和折磨开发者的新问题也随之而来。

第一个问题是备受期待的 任天堂 Switch 运动。 你们中的一些人可能想知道“在模拟器上模拟在线游戏测试有什么意义?”,我们对此作出答复……确保它在第一天工作! 不能那么容易丢失我们的记录。 Thog 迅速让游戏输出音频,然后又 修复了错字,从而获得了王牌。

塞尔达传说天空之剑 HD重置版 有时听起来很糟糕,尤其是在具有高频效果的音频上。 对 audren 的上采样器从 最近到三次插值的调整已被riperiperi 交换, 应该可以改善这种情况并作为临时权宜之计,直到开关实际使用的采样算法被逆向工程。

中央处理器:

吃点零食,调高情绪 并为此做好准备,因为今年 2 月 CPU 的改进在大街上很热门。 gdkchan 和本月的 MVP merryhime, “dynarmic” (一种流行的用 C 编写的 ARM 动态重新编译器)背后的大脑,为我们提供了大量的添加、修复和优化,我将尽我所能简化。

我们先来看看ARMeilleure(Ryujinx的动态重编译器)现在支持的一些新指令:

SHADD8

SHSUB8 and UHSUB8

CMN (RsReg)

Thumb support (All T16 instructions)

ALU instructions (T32 shifted register)

更多内容仍处于审查阶段,虽然这听起来可能不太令人兴奋,但 CPU 重新编译器可以理解的指令越多,您最喜欢的即将推出的游戏在第一天启动时崩溃的可能性就越小!

Thumb support特别值得注意的是,它们对于帮助运行和开发新的 PS Vita -> Switch 兼容层至关重要,被 xerpi 恰当地命名为 vita2hos ( 您还没有听说过,请查看它!) .

与任何彻底的变化一样,你总有可能打破其它东西。 幸运 ,merry 解决了一个阻止游戏启动的错误 ,同时还 修复了 Thumb 指令中的一个潜在问题并 实现 单步指令 ,这将极大地帮助核心开发团队和任何 switch 自制软件开发人员。

为了以时尚的方式结束她的一个月,最后几个 BLX 和 BXWritePC 指令已修复 ,您可以期待在下一份报告中听到更多漏洞!

为了不被完全超越,gdkchan 拿起了 CPU 火炬,并 增加了一个常数的使用次数限制, 这会阻止“死亡微笑 2”进入游戏。

死亡微笑 2

gdk 的第二个有趣的补充是 CPU JIT 失效的实现 (以及一个 快速的 PPTC 版本碰撞 ),它扩展了可以被 JitCache 失效的现有区域,以实际 删除 与给定范围重叠的函数。 这种变化特别令人感兴趣,因为它开始为在 NRO 中动态加载代码的应用程序或动态自我修改以发挥作用的代码奠定基础。

最后一部分是修改 Skyline 和 ARcropolis 因为它们利用这种自修改代码在运行时挂钩游戏。

杂项:

当我们谈到 任天堂明星大乱斗特别版 的主题时,你们中的许多人都会意识到游戏可能会在某些地方出现卡顿。 这有三个原因:第一个也是最常见的第一次引导是着色器编译卡顿,第二个是每次比赛开始时的 NRO 卡顿,最后一个组件是菜单和角色选择屏幕卡顿。 最后一个问题,在本月 riperiperi 解决了 。

问题的根源在于,一些文件系统服务阻塞了没有专用线程的其他服务,因此赋予 FileSystem 自己的服务可以防止它在等待文件系统服务清除时成为其他服务的瓶颈并导致卡顿。 此更改还改善了其他遭受文件系统相关卡顿的游戏,例如某些 异度之刃:决定版 过场动画、火焰纹章:风花雪月过场动画以及将游戏存储在网络驱动器或其他外部解决方案上的用户。

控制器漂移是近年来受到关注的一种现象,我们在全球范围内解决此问题的少数方法之一是增加模拟死区。 然而,一些用户很快注意到我们用来计算如何应用死区的数学有很大的缺陷。 下面是我们旧实现的可视化:

死区可视化工具

这意味着,如果您设置 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 压缩部分的支持,增强了对无效额外保存数据的恢复能力(可能有助于从其他程序/操作系统等的外部“混乱”中恢复)并最终修复文件系统访问控制检查。 这些变化中的第一个可能是最令人兴奋的,因为它允许 Iridium 和 银白钢铁 进入游戏,而且看起来两者都可以完全玩!

毫不奇怪,我们的 linux 用户在开发过程中也非常活跃,并定期提交 PR,其中包含对 3 个字母的首字母缩写词和带有很多下划线的单词的各种修复。 延续这一趋势,edisionnano 为 Ryujinx 在 MESA 驱动程序上的后端多线程提供了一个修复,我们提供了一个原始字符串,而 MESA 期望它是小写的。 这个简单的问题在设置环境变量时造成了严重破坏,因此现在强制传递小写参数。

他们还 解决了一个小的构建错误 ,即 SoundIO 音频的平台特定二进制文件将被批发到它所构建的所有操作系统。 这意味着 Windows 和 Linux 将为彼此构建无法使用且最终只是膨胀的二进制文件。

该项目的新贡献者 mlgatto 添加了一个新的跟踪级别日志, gdkchan 通过将所有内核系统调用日志移入并继续以简单的 wss445566 为我们修复了一个长期存在的错字 ,进一步证明了即使看起来很小,任何人都可以帮助我们!

Ac_K 将通过 一些新的服务调用来结束这份报告: mnpp:app,这似乎是一个用于中国控制台的遥测模块,导致 NES/SNES NSO 崩溃,以及上述 Switch 所需的一些 HID 服务运动开始。

任天堂switch运动

结束语:

我们知道现在对每个人来说都是艰难的时期,所以我们要向所有为 Ryujinx 的发展做出贡献的人表示我们的巨大谢意,无论是通过 patreon、测试还是仅仅成为社区的一部分。 我们永远无法想象我们会为这个项目获得如此多的支持,对此你们所有人都表示感谢。 直到下一次!

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved