Switch模拟器YUZU进度报告2024-1月

Switch模拟器YUZU进度报告2024-1月

欢迎来到 2024 年,yuz-ers!有什么比进行重大代码重构以产生几乎完全支持的小程序更好的方式来开始新的一年。我们今天向您介绍这个,以及更多!

多进程、服务、LLE 小程序和 Project Leviathan

将单个进程仿真器转换为多进程仿真器并非易事。

使用任天堂键盘进行打字速度挑战?

2024 年开局相当繁忙,这要归功于 byte[]、german77、Blinkhawk 和 Maide 在实现多进程支持方面的共同努力,在多个领域(呵呵,明白了吗?)利用它,包括 GPU、输入、服务和小程序仿真,并在此过程中修复长期存在的问题。

在撰写本文时,多进程支持尚未合并,但 GPU、输入和其它模块(由 byte[]、Blinkhawk 和 german77 实现)中的修复已经分阶段并发布,允许部分添加完全支持。

在 yuzu 中实现支持多进程的要求促使我们在过去一个月中做出了五项重大更改:

设备映射和 SMMU

我们从一个重要的开始:Blinkhawk 实现了设备内存映射仿真,并重写了 GPU 实现,支持 SMMU,或桌面用户/Linux VM 用户/UEFI 潜伏者,它的另一个通用名称 IOMMU。

ARM 系统内存管理单元处理外围设备(如 GPU)的内存映射。它是交换机上的一个硬件组件,负责将设备虚拟内存地址转换为物理内存地址。GPU 添加了自己的 MMU, GMMU 即映射到 SMMU 上的附加层。

仿真器已经为 GMMU 提供了一个高性能的内存转换层,但它一次只能使用 GPU 处理一个程序,无法与其他进程共享。并且需要支持多个流程。

这种重写的主要好处是:

此更改的一个缺点是它增加了调试的复杂性,这导致在其实现中发现的每个错误都花费了更多的开发时间。例如,Android 上的游戏随机卡在 0 FPS,破坏与 NCE 的兼容性,或在某些游戏引擎上内存不足。这导致了一些修复,首先是 byte[] 实现的,然后是 Blinkhawk 自己实现的,还有更多的修复正在开发中。

这一变化为小程序仿真打开了闸门,并且是将来某个时候实现直接内存导入的起点——但让我们放慢脚步,还有更多内容要介绍。

视频加载中...

是时候启动另一个程序了,GPU!

Project Leviathan 利维坦计划

German77 也必须调整他的输入重写, Project Leviathan 以适应多进程的要求。重写仍在进行中,计划进行更多部分。但就在 1 月份,实施了以下更改,无论是专门针对多进程的,还是更普遍地作为重写的一部分:

虽然这导致我们能够加载本机控制器小程序(以及其他小程序)并享受其中的乐趣,但它对仿真没有多大用处。

Just for fun 只是为了好玩

Now Presenting 现在呈现

除了模拟的 GPU 之外,向屏幕演示还需要一些工作来支持正在运行的小程序——没有它,实际上无法显示任何好处。如果没有多层构图,就没有小程序的乐趣。

byte[] 重写了几乎所有的表示代码,以支持图层叠加和混合,特别注意不要破坏现有的过滤和抗锯齿选项。特别是 FSR 已从计算着色器转换为片段着色器,因此可以启用适当的混合。最终结果是一样的,没有图像质量变化——但现在 FSR 可以在游戏显示原生内嵌键盘时使用,例如。

视频加载中...

键盘后面的透明度不是免费的。

我是小程序管理器

另一个需要重写才能获得适当多进程支持的关键服务是 AM Applet Manager。AM 现在几乎完全重构为单独跟踪每个小程序的状态,从而适当地允许它支持同时运行多个小程序。

视频加载中...

只需按一下按钮即可获得帮助(Super Smash Bros. Ultimate)

当 byte[] 启动并运行重写时,german77 修复了一个导致 The Battle Cats Unite 软锁超过开始加载屏幕的问题。

这是有史以来的游戏之一。尼亚。(战斗猫联合)

Sounds good 听上去很好

Maide 负责使音频仿真与多进程兼容。游戏应该能够与小程序共享音频播放,对吧?分享就是关怀。

视频加载中...

包括特殊菜单(超级马里奥 3D 全明星)。

通用序列化byte[]

程序中服务调用的序列化和反序列化是 yuzu 在与来宾程序交互时必须执行的最重要的任务之一。程序和 Switch 系统模块之间的通信使用带有自定义解析器的特殊二进制格式。与客户机进程交互需要对 yuzu 需要实现的每个接口方法进行繁琐且容易出错的布局计算,从而在错误检查和维护上浪费了大量开发时间。

随着对服务实现的参与的增加以及您目前所看到的复杂性的指数级增长,byte[] 旨在通过使用基于模板的方法自动生成方法所需的代码来自动化和简化序列化。

到目前为止,多进程的工作已经占用了两万多行代码,并且还在继续增长。要享受原生小程序,您现在所要做的就是转储固件。运行小程序所需的最低版本是固件 14.0.0。

其他服务重写和修复

这里要向 Maide 致敬,因为她修复了柚子中存在时间最长的错误之一:在像 Pokémon Quest 这样的 Pokémon Sword/Shield 游戏中,时间的流逝。

过去,虽然在保存过程中会跟踪时间,但某些游戏事件(如 Dens 或 Pokéjobs)不会重置,迫使用户使用自定义 RTC 选项手动提前时间。这很麻烦。

为了解决这个问题,它花了整个时间服务重写,“只”写了大约九千行代码。新的实现更加准确,允许 Pokéjobs 和其他定时事件最终在这款低多边形、几乎总是 30 FPS 的杰作中正常享受。

开始工作吧!(宝可梦剑)

为了继续这项工作,Maide 删除了一些时间服务中不再需要的旧解决方法,并在每次游戏启动时将网络时钟固定到本地时钟同步。这个固定的时间级数在 Pokémon Quest 中。不再是时间任务。

设置营地(Pokémon Quest)

为了关闭该部分,byte[] 修复了 AOC 服务如何为多程序应用程序列出可用的 DLC,从而允许 Assassin’s Creed Rogue 在安装其 DLC 的情况下启动。就像海军打算的那样。

Graphics changes 图形更改

不可预见的问题是标志性的“随工作而来”的仿真时刻之一——你永远不知道新问题会从哪里出现,所以我们必须从 PSA 开始本节。

PSA:如果 yuzu 最近开始显示 Microsoft 作为您的 GPU 供应商,并且您不能再玩任何游戏,请卸载名为 OpenCL™, OpenGL®, and Vulkan® Compatibility Pack 的软件包,或者如果您希望保留它,请转到 Emulation > Configure… > Graphics > Device 并将 GPU 更改为正确的型号,名称开头没有“Microsoft Direct3D 12”。

运行 Windows 11 的 AMD 和 Intel 用户在使用 Vulkan 时突然开始他们的硬件完全无法启动任何游戏。原因是我们谁都没想到的,Microsoft......还有Mesa!

Microsoft 决定推出此包的安装,如果硬件供应商没有提供适当的驱动程序,或者只是硬件无法运行它,则允许无法运行的硬件运行上述 API。

用于实现此目的的项目是 Mesa Dozen ,它在 Direct3D 12 接口上运行 Vulkan。预期目的是为仅提供 Direct3D 12 驱动程序的设备(例如 Qualcomm ARM 笔记本电脑)提供 Vulkan 支持。我们不知道为什么Microsoft决定在已经提供能够正确支持Vulkan的硬件的x86-64 PC上静默测试此功能,但它就在这里。

生成的 Dozen 这些新设备被添加到操作系统可用的 Vulkan 设备中,名为“Microsoft Direct3D 12(GPU 型号名称)”,并与 yuzu 对其设备列表的排序方式冲突。

为确保在 yuzu 上默认选择最佳 GPU,按顺序执行三种排序:

你注意到了吗?最后一点是问题。 Dozen 设备与真正的 Vulkan 设备具有相同的功能,但更改了名称。由于列表按字母顺序倒序排序,因此名为“Microsoft”的设备将优先于名为AMD或Intel的相同设备。

这个问题很容易解决:检测设备何时为 Dozen 并将其降级到列表底部。即使 Dozen 能够运行 yuzu,我们也不希望默认运行分层实现。

拥有十几个 GPU 的好方法

可悲的是, Dozen 它目前与柚子不兼容——它缺乏多个强制性扩展,并且您的作者在测试时喜欢向开发人员报告一些问题。其中多个修复程序在短短几天内就到了。Mesa 开发人员的构建方式不同。

对于Fermi用户来说,这可能是一个有趣的实验,或者其他曾经适合柚子的报废硬件 Dozen 。

定期安排的 GPU 更改

对多进程的有趣测试揭示了在 中打开 Web 小程序帮助页面时出现的图形问题 Super Smash Bros. Ultimate 。后来对软件分流代码中的音高线性读写进行了一次修复,Blinkhawk 解决了这个问题。

Android用户经常提醒我们无法 Mortal Kombat 11 真人快打11启动。在他热情地浏览了代码之后,byte[] 发现着色器中的 8 位和 16 位存储写入在不支持它们的硬件上完全被破坏了。

问题,至少其中之一,是缺乏对 shaderInt8 和 的硬件支持,三巨头 NVIDIA(当然包括 Switch)、AMD(以及扩展的 Xclipse)和英特尔完全支持最新的驱动程序,但配备 Adreno 和 shaderInt16 Mali GPU 的 Android 设备没有。

为解决此特定问题而实现的解决方案 byte[] 通常缺乏硬件支持。如果你不能运行它,那就模仿它吧!这些平台支持存储原子,因此通过执行比较和交换循环,以原子方式(在线程安全意义上,不是放射性的)将值写入内存位置,可以将 8 位和 16 位值写入更大的 32 位内存字,而不会撕裂其他线程看到的值。

亲爱的神,你也不需要把菜单调低分辨率(真人快打 11)

这种仿真会产生很小的性能损失,但弱设备不能成为选择者。移动 GPU 的功能集非常吝啬,这经常阻碍我们的开发,需要添加解决方法。

我们怀疑只有 Mortal Kombat 11 受到影响 - 此更改改善了许多在Android设备上崩溃的未知游戏,或者对于在台式机/笔记本电脑上运行过时GPU驱动程序的人来说。 可悲的是,仅此更改还不足以使游戏在Android设备上播放。这个问题暴露了与缺乏对 的支持 StorageImageExtendedFormats 相关的其他着色器问题,但这是以后的功课,很可能是将来的 byte[]。

切换到另一个配备 Linux 内核的操作系统(erm、Linux),Tuxusers 在 Wayland 上调整 yuzu 窗口大小时报告了乱码渲染问题。

值得庆幸的是,解决方案很简单,恢复了之前 DMA 修复之一中不必要的更改。通过在每次窗口帧大小更改时强制重新创建交换链,问题就消失了。

具有安全窗口管理的适当无撕裂游戏玩法将返回 Wayland。HDR 何时支持,Linux?

新人 shinra-electric 将 MoltenVK 依赖项更新到最新版本。谢谢!

虽然此更新带来了大量改进,并且现在支持许多 Vulkan 扩展,但在 Apple 设备上的渲染或兼容性方面没有新的变化。但是,嘿,没有报告的回归是好消息!

Android 增强

t895 以一系列改进 yuzu Android 的更改拉开了新年的序幕。虽然其中一项更改提高了应用程序的整体性能,但大多数是我们的一些用户一直在期待的生活质量 (QoL) 修复。

正如你们中的许多人可能已经知道的那样,柚子Android支持导出用户数据并以ZIP格式保存以在不同版本的app. ZIP压缩之间传输,在大多数情况下,与磁盘上文件的原始大小相比,可以减少文件大小。但是,在加密数据之上应用压缩几乎总是浪费时间。

t895 观察到,当打开压缩时,这些 ZIP 导出速度过慢,同时仍然导致大小减小增益可以忽略不计,因为用户数据中最大的文件是 NCA,并且这些文件是加密的。因此,他为这些 ZIP 导出禁用了压缩,使导出时间缩短了 3 倍。

继续进行 QoL 修复,t895 扩展了对自定义屏幕方向的支持。通过此更改,yuzu 现在总共支持七种方向样式,如下所示。

接下来是改进的全局保存管理器。游戏有两个可能的保存目录,而最初的全局保存管理器只检查其中一个。因此,t895 不久前删除了这个损坏的功能,现在重新引入了相同的改进版本。

有了这个改进的版本,您现在还可以在每个游戏的保存管理器中使用通过全局保存管理器进行的导出,反之亦然。

接下来是新的卸载附加按钮。t895 为 Android 应用程序中的每种附加组件添加了一个卸载按钮。 yuzers 现在可以轻松卸载他们可能已安装的任何更新、DLC、模组和作弊。注意:目前,PC 上的 yuzu 不支持卸载模组或作弊。

曾经花很长时间复制您的转储或将内容安装到 NAND,结果却让它们无法工作吗?不要再犹豫了:t895 将 PC 版的完整性检查功能带到了 Android。您现在可以轻松验证游戏转储和 NAND 内容的文件完整性。要验证游戏转储,只需转到游戏的属性,然后在 下 Info 选择 Verify Integrity 。 Settings 在标有 Verify Installed Content .

非常适合在经历游戏崩溃后进行诊断

使用左摇杆区域时,您有多少次不小心打开了游戏内菜单?好了,您现在可以锁定游戏内菜单,以避免意外触发它。锁定后,您仍然可以使用设备上的“返回”按钮或手势调出游戏内菜单。

抗误触更改

现在,让我们深入研究主屏幕上的游戏快捷方式。借助 Android 的动态快捷方式功能,应用程序现在可以让用户直接从主屏幕快速访问应用程序中的特定操作或内容。虽然这个功能早在 2016 年就推出了,但似乎一些 Android 启动器还不支持它。

虽然 yuzu 已经支持此功能并且运行良好,但当您必须启动每个游戏才能获得快捷方式时,尤其是在重新安装后,它会变得非常乏味。作为解决此问题的一刀切解决方案,t895 在游戏属性活动中实现了一个按钮,可让您轻松地将任何游戏的快捷方式添加到主屏幕,而无需先启动游戏。

必须把它们都钉住

T895 随后进行了一些控制器焦点优化。Android 控制器焦点是您在按钮上看到的突出显示,指示您可以选择它。这些更改修复了使用控制器导航 yuzu 应用程序 UI 时观察到的一些问题,并解决了仿真图面显示为灰色的问题。

为了在PC上的柚子和Android上的柚子之间实现功能对等,t895在Android上实现了“加密密钥丢失”警告。如果您没有解密游戏/固件所需的密钥,您现在将在应用程序启动时收到此警告。

T895 还实现了对多程序应用程序切换的支持。此功能允许游戏编译,例如 Super Mario 3D All-Stars 在 Klonoa: Phantasy Reverie Series 捆绑包中的游戏之间切换。

视频加载中...

多游戏漂移!(克洛诺亚:梦幻遐想系列)

他还做了一些小的UI改进,比如:

现在你可以知道它有多过时了

这还不是全部。新人 Emma 实现了对 Pixel 设备上的游戏仪表板功能的基本支持。谢谢!

常驻AMD测试人员Moonlacer注意到,使用基于RDNA的新Xclipse GPU的三星移动设备在各种神奇宝贝游戏中都存在相同的线框问题,这些问题困扰着PC AMD Vulkan驱动程序。在 byte[] 的帮助下,通过将这些设备视为 AMD,实现了对这些 Xclipse GPU 驱动程序的修复,从而获得了 Radeon 卡受益于的相同旧解决方法。感谢 discord 上的用户 no.kola 测试这些!

Xclipse 时刻 #1。对于Xclipse用户来说,我们有一些坏消息,我们将在硬件部分讨论。

其他更改

柚子的一个值得注意的长期问题是配置文件损坏,当在不合时宜的崩溃之后,模拟器会创建一个新的配置文件,并将所有用户数据保留在旧配置文件中,迫使用户手动将其保存的内容移回新创建的活动配置文件。值得庆幸的是,german77 通过仅在内容更改时保存配置文件数据来修复用户配置文件损坏问题。

虽然 NCE 已经存在了一段时间,但这并不意味着它还完全稳定。正如一位 Android 用户指出的那样,一些像 for Pokémon Brilliant Diamond/Shining Pearl 这样的 Luminescent Platinum 硬核模组在使用 NCE 时会卡在黑屏中。

在 byte[] 完成检测工作后,发现原因在于一些 mod 如何对模块布局做出假设,而 yuzu 会尝试给每个模块一个专用的补丁部分。为了缓解这一瓶颈,GPUCode 修改了 NCE 加载程序,以尝试对尽可能多的顺序模块使用相同的补丁部分。

社区总是提供令人印象深刻的模组(Pokémon Brilliant Diamond)

这应该允许其他对模块布局做出假设的游戏的模组也可以在 NCE 下工作。

跳到一些输入更改,german77 收到通知,用户试图转储他们的 Amiibos,但 yuzu 未能生成任何转储,因为 Amiibos 是以只读方式挂载的,没有可用的备份。解决方案是什么?如果没有备份,则转储 Amiibos,不问任何问题。

常驻助手 anpilley 决定是时候改进 yuzu 二进制文件的可用命令行参数了,添加了 of -u 来指定要加载的用户并禁止显示用户选择器。谢谢!

回过头来,FearlessTobi 决定解决虚拟文件系统仿真的一些问题,或者 VFS .由于盖亚计划处于无限期中断状态,因此优先事项已转移到尽可能多地修补当前实现。

更改列表很长:它包括移动文件、统一错误代码命名以方便调试、使文件系统定义与当前可用的逆向工程信息更加一致,以及为将来的代码添加做好准备。改善一个在信息很少时设计的区域永远不会有什么坏处。

Dynarmic 的老板本人 merryhime 将柚子中的捆绑版本更新到最新版本,带来了一些新的更改和修复。有一些指令仿真优化,添加了更多的 32 位 ARM 指令,并改进了 Android 上游戏的启动时间——它不如 NCE 快,但对于那些必须在 JIT 上运行的游戏来说,它要快得多。

为了结束这一部分并进入一个有趣的硬件讨论,t895 本月还有最后一份礼物要送给我们,每个游戏的音频设置。缺少的设置之一,可以基于每个游戏进行设置,它包括全套、输出引擎、输出设备、输入设备等。

听起来不错!

你能选择的越多越好,对吧?


硬件和软件部分

正如上个月所承诺的那样,我们将讨论帧生成,以及可用于在柚子中利用它的新工具。但首先,NVIDIA用户的最后一个HDR示例。

NVIDIA TrueHDR

在551.XX系列驱动程序中,NVIDIA引入了为基于Chromium的浏览器(Google Chrome,Microsoft Edge,Brave等)上显示的任何视频自动生成HDR输出的选项。没过多久,社区就想出了插件来利用本地视频播放器的这一变化,但这并不是 NVIDIA 官方预期用途之外的唯一应用程序。


无损扩展来拯救

无损缩放是一个用于分辨率缩放的程序,最近引入了一个通用的帧生成选项,使其成为第一个与供应商无关的实现。

Clean UI 干净的用户界面

只需将右侧的 Frame Generation 设置为 LSFG 。如果您是 Intel iGPU 用户,请将 Legacy capture API 设置为 enabled,打开 yuzu,启用 Scale,然后切换回玩游戏,或者在游戏中按默认热键 Ctrl + Alt + S 。建议使用独家全屏。

向下滚动以找到它

在较小的显示器上效果很好,但在较大的显示器(如 27 英寸显示器)上,生成的帧伪像太明显,这使得该工具更适合笔记本电脑和手持设备,而不是台式机或电视游戏。尽管如此,它仍然是一种廉价的方法,可以提高感知帧速率并绕过任何 GPU 供应商的 CPU 瓶颈,而无需驱动程序或硬件限制。

您可以在下面看到原生 30 FPS 和无损缩放之间的比较视频,在 The Legend of Zelda: Breath of the Wild 中生成帧到 60 FPS。由于 YouTube 仅支持 60FPS 视频,因此您不会看到真正的 120 FPS 帧生成示例。

视频加载中...

上面的视频演示了原生 30 FPS 与无损缩放从 30 FPS 基础生成帧。你可以看到,信息很少,伪影很常见。无损缩放不处理场景转换。

视频加载中...

上面的视频演示了原生 60 FPS 与无损缩放从 60 FPS 基础生成帧。有了更多的信息可以玩,无损缩放可以做得更好。场景转换仍然是一个问题。

虽然质量并不完美,但它是一种简单且无害的方式,可以改善任何硬件的体验——尤其是在像 Pokémon 系列这样丑陋的 30 FPS 游戏或像 Xenoblade 传奇这样的电影体验上。这里没有双重标准。不过,对于那些使用最新 AMD GPU(到目前为止是 RDNA2 和 RDNA3)的人来说,现在有一个更好的选择:

AMD Fluid Motion 框架

驱动程序版本 24.1.1 引入了 AFMF 的第一个公开版本,AFMF 是 AMD 独立于游戏的帧生成算法。

“但是作家,AFMF 仅适用于 Direct3D 11 和 12 游戏!”你说。这就是你错的地方。你看,Guru3D 论坛有一些很棒的信息,AFMF 也可以在 Vulkan、OpenGL 和 Direct3D 9/10 上运行,它只需要注册表编辑:

[HKEY_LOCAL_MACHINESOFTWAREAMDDVR]

"GFGEnableAPI"=dword:00000007

使用 regedit 手动进行此更改,如果需要,重新启动 Windows,将 yuzu 添加到 Radeon 软件,设置为 Wait for Vertical Refresh Disabled ,启用 AMD Fluid Motion Frames:

好看的用户界面,AMD

在性能选项卡中,您可以设置叠加层以显示生成的帧的性能(它不会显示在常规应用程序或柚子上,因为它不会由游戏引擎通知),以及延迟和卡顿。

打开 yuzu,将全屏模式设置为独家全屏:

就这么简单

就是这样,开始游戏,按 F11 或分配给控制器的热键进入全屏,享受 2 倍到 3 倍的感知帧率。

请注意,虽然图像质量比无损缩放的结果要好得多,但如果一帧和下一帧之间的差异太大,AMD 会禁用 AFMF,以避免平滑场景转换,例如相机更换或打开菜单。当屏幕上发生大量动作时,这会导致明显的帧时间不一致。我们希望AMD将来能增加一个选项来切换这种行为的敏感度。

视频加载中...

上面的视频演示了原生 30 FPS 与 AFMF 从 30 FPS 基础生成帧。虽然在30 FPS下比无损缩放效果更好,但在较快的移动中仍然会出现伪像,尤其是在植被上。场景转换清晰,玩家周围的闪烁较少。

视频加载中...

上面的视频演示了原生 60 FPS 与 AFMF 从 60 FPS 基础生成帧。在 60 FPS 时,效果很棒!允许在 120-180Hz 显示器上实现更流畅的游戏体验。

没有包含性能图表,因为您的作者不认为感知帧率是实际性能,但举个例子, The Legend of Zelda: Tears of the Kingdom 在开放世界中使用 5600X 和 RTX 3060 Ti 产生稳定的 60 FPS,在启用 AFMF 的情况下可以产生 170-180 “FPS”,并且几乎没有可见失真。

游戏可以使用 NVIDIA 或 Intel GPU 渲染,同时仍然使用 AFMF 生成帧,尽管由于通过 PCIe 传输完成的帧会增加延迟,因此体验比直接使用 AMD 卡略差。AFMF 工作的唯一必要条件是将显示器连接到兼容的 AMD GPU,之后任何其他 GPU 都可以进行实际渲染。是时候投资 RX 6400 了吗?Smash 必须在 240 FPS 下看起来很棒。

英特尔兑现承诺

正如所承诺的那样,英特尔从驱动程序版本 31.0.101.5186/5234 开始,在构建几何着色器时修复了他们的崩溃问题。

虽然这允许游戏 Xenoblade Chronicles 3 最终在集成 GPU 和 ARC 专用卡上进入游戏,但似乎还有其他领域需要驱动程序成熟才能产生适当的渲染:

另一方面,通过此驱动程序修复提高了稳定性, The Legend of Zelda: Tears of the Kingdom 因此撇开英特尔 Windows 特定的渲染问题不谈,该游戏现在应该可以玩了。

Qualcomm 高通

K11MCH1 的驱动程序版本不断推出,提高了 Adreno 用户的性能和兼容性。我们强烈建议您保持最新状态。

虽然有新版本的专有驱动程序,但尚未添加或修复任何有价值的东西。

Exynos and Mali

为什么在一起?因为我们在 Exynos 硬件中发现了一些有趣的局限性,这些局限性让我们想起了Mali遭受的生存危机。除了我们之前提到的 AMD 特定问题外,Exynos 的 Xclipse GPU 系列与 Mali 有一个共同的品质:完全不支持 BC4 到 BC7 纹理解码。

虽然这对于原生 Android 游戏来说很好(开发人员只需要在决定跳过基本纹理支持并使用 ASTC 等替代方案时挠头),但 Switch 游戏确实使用 BCn 纹理,在某些情况下广泛使用,并且添加额外的 CPU 工作,必须将这些纹理解码为 GPU 可以处理的东西 (RGBA8) 将限制性能并增加内存使用量。这是这些 GPU 在功能支持方面无法与 Adreno 相提并论的主要原因之一。

So:

本月的 Xclipse 时刻总数:2。

本月马里总时刻数:2。

Linux Linux操作系统

某些发行版,如SteamOS、Fedora(自39版以来)以及任何带有linux-zen软件包的发行版(例如Arch Linux),都显著提高了其默认值 vm.max_map_count ,从而在柚子上运行虚幻引擎游戏时获得了更稳定的开箱即用体验。

进步的感觉真好!你可以学到一点,Windows。

Future projects 未来项目

多进程支持方面的工作远未结束。我们的目标是支持 QLaunch ,这意味着能够启动原生游戏启动器,从那里启动游戏,关闭它们,暂停它们,启动不同的游戏,整个过程。

视频加载中...

恢复游戏也有效。

小程序和多进程的工作在多个领域暴露了许多隐藏的错误——准确性的提高是一个非常受欢迎的补充;我们在测试和运行小程序时玩得很开心。

这就是所有的人!感谢您阅读本进度报告。我们期待下次再见!

展开阅读全文

页面更新:2024-02-22

标签:三星   柚子   重写   模拟器   驱动程序   进度   进程   硬件   程序   报告   用户   设备   游戏

1 2 3 4 5

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

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

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

Top