天天看点

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

作者:YUZU

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

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

新年快乐!

我们希望你们都度过了一个真正令人难以置信的一年。2022 年每个月都覆盖了如此多的领域,而 12 月并不打算打破这一趋势。性能改进、更少的黑屏游戏和 macOS 的一些上游工作散落了 31 天的时间跨度,不仅仅是猖獗的消费主义供所有人享受。

因此,请为2022年的收尾工作做好准备,由一篇诙谐,引人入胜,如果要用另一个词的话,英俊的作家报告来布置。不过,在此之前:让我们先来看看我们剩余的 patreon 激励目标。

赞助人目标:

$2000/月 - 纹理包/更换功能 - 即将到来!

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

$ 2500 /月 - 一名全职开发人员 - 尚未满足。

这笔每月捐款将使该项目的创始人gdkchan能够全职开发Ryujinx。我们所有的贡献者目前只在业余时间从事该项目!

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

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

3....2....1....去!

显卡:

精灵宝可梦本月再次不得不窃取GPU部分的入口,我们希望这是游戏的最后一个问题。任何在发布时甚至 11 月下旬玩过的人都可能会经历完全随机的闪退:你的角色、NPC、其他神奇宝贝或任何其他环境资产都可能失去对现实的把握,变成一个小故障或米色尖刺的巨大墙。

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

与大多数闪退一样,这是由简单的数据丢失引起的。某些缓冲区上的刷新偶尔会刷新未初始化的数据,这些数据可能会级联到上面看到的结果中。通过跟踪这些麻烦的缓冲区并刷新它们的源,而不是它们可能不完整的副本,Scarlet & Violet 中的大部分闪退都大大减少了。NPC仍然可能表现出轻微爆炸的可能性很小,但这些爆炸需要几个小时才能出现在测试中,并通过重新加载区域来解决。

本月的一些较小的更改包括:着色器中纹理操作的减少,这可能会略微提升低端iGPU,SNorm缓冲区纹理现在已清除以与Vulkan一起使用(我们之前甚至在Vulkan中也强制执行了OpenGL解决方法),以及对着色器专用化和着色器绑定数组的更多改进 让我们通常的基准游戏《超级马里奥奥德赛》的性能进一步提升了 3-4%!

随着新的塞尔达游戏的临近,我们对其前身的一些长期存在的错误现在成为修复的焦点是很自然的。考虑到《塞尔达传说:旷野之息》从未得到我们开发团队的任何持续关注,它已经处于相对良好的状态,只剩下几个值得注意的问题。其中之一是对风和草粒子效应缺乏任何运动。

视频加载中...

视频加载中...

正如所目睹的那样,草似乎只是在龙神身上淡入和消失,而对Switch的影响更像是微风,将草吹得失焦。通过将 LDG 的进一步回退参数添加到常量缓冲区绑定中,另一个项目将从列表中划掉。

视频加载中...

2022 年年度游戏是最新的 FromSoft 产品:Elden Ring,它承诺比之前的任何软件都更大、更多样化、更卡顿。但是花点时间让你的思绪回到十一年多前......天际即将到来,你的手机仍然有一个3.5毫米耳机插孔,权力的游戏正在电视上首播。比这一切更重要的是FromSoft的主流热门歌曲Dark Souls的发布。

现在又快进了十一年。你在这儿。想要在您的个人计算机上播放此认证经典。龙神立即启动(当然是),黑暗之魂被双击......“总是这么黑吗?”一百万个声音绝望地喊道。

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

撇开冗长且可疑的幽默插科打诨不谈,不,视力障碍尚未作为技能检查添加到任何灵魂本游戏。然而,如果是这样,粉丝们会声称它正在彻底改变难度,并拒绝正确照亮3D世界的“手持”性质。

不过,在我们这边,在几何着色器上简单实现 PrimitiveID 输出就足以完全解决这个问题:

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

史丹利的寓言:豪华版突出显示了 FSWZADD 着色器帮助器函数中的一个小错误,该错误导致 LUT 索引超出界限。修复此指令可使文本正确呈现。

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

游戏中的纹理利用各种压缩格式来减小其文件大小和对视频内存的影响。由于游戏的开发环境有很多不同,因此桌面 GPU 不支持其中一些格式,而移动 GPU 不支持其他格式。由于Switch实际上是一种移动设备,因此它反过来可以使用一些纹理压缩格式,而您的Nvidia或AMD台式机卡根本不知道该怎么做。您可能已经听说过与异界锁链和贝优妮塔 3相关的一种类型是ASTC压缩格式,我们需要在使用之前在软件中手动解压缩纹理。如果您想知道,这就是为什么与其他游戏相比,这两款游戏使用了很多VRAM,因为完全未压缩的纹理在使用前会加载到VRAM中!

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

不过,ASTC 只是一种不受支持的压缩类型;我们还有其他一些解码器可以将任何不受支持的纹理转换为更容易被 GPU 读取的格式。除了两个。ETC2 和 EAC 压缩格式仍然缺乏软件解码器,这意味着使用这些格式的任何游戏都会因不受支持的格式错误而崩溃。幸运的是,EAC 似乎没有被我们所知道的任何游戏使用,因此只实现了 ETC2 软件解码器。

拉斯维加斯派对 和 乙女游戏Paradigm Paradox等游戏现在可以在Nvidia和AMD GPU上播放(具有讽刺意味的是,英特尔已经原生支持这种格式!)。

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

实现缺少的GPU怪癖继续实现另一种非索引绘制方法,该方法解决了Ikaruga中的一些渲染问题,并修复了DrawArrays的顶点缓冲区大小,修复了狮身人面像和被诅咒的木乃伊在OpenGL上的渲染。

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

对于任何OpenGL的享受者来说,异度之刃 游戏一直是该议程中为数不多的坚持者之一。不幸的是,所有美好的事情都必须结束,12 月,Vulkan 终于获得了性能桂冠。随着《异度之刃编年史3》在Colony 4热点的性能提升了30%,Vulkan现在的性能平均比OpenGL高出5-8%,同时当然还保留了其他优势,如着色器编译速度。

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

关于Xenoblade的话题,最近Vulkan通过使用自定义边框颜色对XC2的过场动画阴影进行了修复,这给Linux用户带来了很多麻烦。合并后不久,人们发现开源 RADV 驱动程序根本不喜欢这样,并且在各种游戏中崩溃,包括:任天堂明星大乱斗:终极版、塞尔达传说:荒野之息和银河战士恐惧。至少可以说不是小标题。外部贡献者 DadSchoorse 发现 RADV 要求在使用前明确启用自定义边框功能,这最终结束了这个悲惨的传奇,特别是对于 Steam Deck 用户的涌入!

最后,纹理池和采样器池现在将强制在池本身更改时重新绑定,以缓解由上述着色器专用化优化引起的回归。此更改在“新网球王子:我们走吧!~日常生活~来自RisingBeat“(令人难以置信的名称),池重新绑定修复。

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

macOS 上游:

本月新增一节。如本期所述,在专用分支中对Ryujinx进行了大量更改,以在英特尔和苹果Mac上为macOS提供支持。一次合并所有这些将是代码审查的噩梦,也不可能回归跟踪,因此已经决定以零碎的格式有条不紊地上游每个更改。这允许适当的代码审查和回归跟踪,但也允许有时间清理某些实现。旅程已经开始!

最初需要做一些平凡的更改才能完成任何事情:

macOS 要求在主线程上出现SDL_event泵。

实际构建任何东西也需要用于打包和依赖分发的 CI 文件。

上述更改允许程序构建和启动,但只能进入 GUI。启动任何游戏仍然是不可能的,因为macOS上不存在有效的Vulkan设备。因此,还需要创建一个金属表面渲染窗口,MoltenVK最终可以绘制到该窗口。这实际上允许像Undertale这样的非常基本的游戏通过Rosetta在自编译的mac版本上运行:

从这一点开始,其他一些GPU和MVK解决方法被合并:

使用绘制实现了非 MS 到 MS 副本,这是必需的,因为 Apple GPU 不支持图像加载或存储到多重采样图像。

匹配失败时,着色器存储缓冲区搜索受到限制。这可避免 macOS 在某些情况下脱离存储缓冲区绑定。

实现了 16 位纹理格式的回退,因为虽然这些格式在本机条件下受支持,但由于某种原因,它们在 Rosetta 下不受支持。

HLE:

服务业。我们不是都爱他们吗?

“IsIlluminanceAvailable”和“GetCurrentIlluminanceEx”都在十二月被存根,这使得Labo VR Kit应用程序能够进入标题屏幕。

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

由于该游戏所需的利基服务和HID实现的绝对混乱,实际上什么都无法玩,但仍然值得注意!

“选择”在BSD套接字中完全实现,最终允许Saints Row: The Third 和Saints Row IV访问他们的局域网游戏模式以进行战役合作。

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

12 月的其他一些小修复、存根和实现包括:

Mesosphere 的当前进程 ID 现在是 HOS InfoType 枚举的一部分。这允许自制软件轻松获取自己的进程 ID。

音频渲染器的REV11添加了实现的“压缩器”效果。

对大气dns_mitm的支持得到了实施。这允许某些模组或自制软件使用简单的 DNS 误导。

添加了 PCMFloat、PCM32 和 PCM8 转换,以允许在可能不支持 PCM16 音频的系统上使用 SoundIO。

一个有趣的最后一个是“CheckNetworkServiceAvailabilityAsync”的存根,它允许每个人最需要的应用程序启动:Hulu!不幸的是,这个标题还存在一些其他问题,所以不要试图使用Ryujinx来调入《火中锻造:击败法官》。

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

图形用户界面:

让我们谈谈GUI,让我们谈谈Avalonia。随着macOS版本完全使用新框架,我们现在完全进入了终局。残局主要包括“修复卡顿”,正如新贡献者艾萨克·马罗维茨(IsaacMarovitz)如此恰当地指出的那样。GUI的所有基础知识现在都可以工作并且完全到位,但是随机的东西有时看起来有点奇怪。

基于特定于操作系统的设计风格化,对话框在各个方面变得更加直观。我们最近涌入的macOS用户可能需要基于平台的UX语言。

如果您使用的是Windows,则样式将大致相同,但确认选项带有重音:

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

如果您使用的是 macOS,则会看到(推送新的 macOS 更新时)更自然的倒置布局:

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

对输入分类、状态栏和项目文件结构本身进行了一些不同的清理,最终消除了在 Linux 上不可见的软件键盘的错误。实现了与 fluentUI 和 WinUI3 原则的更紧密的一致性,从而提高了可读性并减少了“选择 Bean”和宽框类型选择器相互裁剪的实例。

功能方面:添加了保存管理器,无需切换即可轻松查找特定于用户配置文件的存档,而且还能够恢复仍然绑定存档的丢失帐户!非常漂亮的功能!

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

哦,你不能再在玩游戏时更新龙神。你们中有太多人以某种方式运行游戏,然后决定现在是让模拟器下载和替换文件的最佳时机。所以是的。停。

年终回顾:2022 年

很多人说,2022年实际上是一年。有史以来的岁月之一。

谁想要一些统计数据?每个人都喜欢一些统计数据,它们似乎风靡一时。

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

为了尽早摆脱一些术语,我们的定义非常严格,并且在大多数模拟器中都更加严厉。要获得“可玩”状态,游戏必须具有零错误。它必须与没有解决方法的硬件通关相同,并且在“合理”硬件上全速运行。游戏内意味着游戏进入主游戏循环,但可能有图形、音频、输入、服务或性能限制。从那里开始,其他人是不言自明的。

从 2023 年开始,当前测试的 Switch 库中有惊人的 84.2% 没有记录错误。另有 11.6% 的游戏在游戏中,但至少有一个问题;这可能包括从主要的图形错误一直到演职员表中的单个纹理损坏。因此,我们敢打赌,这些“游戏内”游戏中的大多数可能已经是其他来源认为“可玩”的!只有 3.5% 的游戏启动,但由于某种原因无法达到游戏玩法,而绝对微不足道的 0.8% 的游戏(确切地说是 30 个)根本没有响应。在不到 5 年的开发时间内,我们已经减少到只有 30 款无法启动的游戏,这是一个巨大的成就。我们毫不怀疑会发布更多的游戏并继续考验我们,但就在这里,现在,它看起来非常好。与此同时,仍有数千款未经测试的Switch游戏(主要是多平台铲子软件,但重点仍然存在),我们需要您帮助测试和编目。

2022 年,主要功能发布让人们眼球:

第一款支持 macOS 和 Apple Silicon 的 Switch 模拟器。

首款支持 LDN 与 CFW 交换机连接的交换机仿真器

Vulkan后端完成并合并到主版本中。

作为FlatHub上有史以来第二个.NET应用程序。

第一个 Switch 模拟器,支持任天堂明星大乱斗:终极版和 喷射战士 2 等游戏的高级模组功能。

这是一次疯狂的旅程,我们要感谢大家在此期间支持我们的努力。很多人问我们的一个问题是“下一步是什么?2023 年对龙神来说会怎样?好吧,说实话,连我们自己都不知道!但是,我们有很酷的东西要展示...

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

树莓派上的龙神,有人吗?诚然,性能相当糟糕,因为...是树莓派!这只是一个概念证明,即移植到macOS的工作可以转移到其他平台,并且当合适的Windows / Linux ARM系统到来时,应该成为运行Switch游戏的绝佳平台。

这就是我们在 2022 年的全部内容(2023 年发布的一份报告说)。

与往常一样,如果您了解一些 C#、.NET、3D 图形或低级工程,并且需要良好的新年分辨率,我们一直在寻找能够继续提供这些兼容性统计信息的开发人员。如果这对你来说都是炼金术和魔法,那么捐赠给我们的 Patreon,或者积极参与测试和错误报告确实会有所帮助。

新年快乐!