Switch模拟器Ryujinx进度报告20226月
Switch模拟器Ryujinx进度报告20226月
马里奥足球
2022年已经过半,当我们有一些好游戏可以玩时,时间肯定过得很快!说到游戏,本月发布了一些真正的游戏,我们很高兴地说它们中的大多数都可以工作,要么开箱即用,要么有一些小的变通办法。尽管来自KoeiTecmo(所有模拟器开发者都害怕的名字),火焰纹章无双:风花雪月,无论是演示版还是完整版,在第1天都完美运行,只有马里奥前锋抢走了我们的风头!
如果需要一个MOD来绕过介绍,我们尽量不宣传它变成了可玩的游戏,但任何有兴趣的人都可以选择,并且游戏的其余部分运行良好。
这是下半场更精彩的发布,事不宜迟,让我们进入我们的patreon目标!
Patreon目标:
VulkanGPU后端仍在进行中。
已交付公共测试版本!
ARB着色器2021年4月达到的目标。
与Vulkan一起工作正在进行中,请稍等片刻,直到我们能够将此更新交付到我们满意的状态。
通过使用OpenGLAPI提高NVIDIAGPU上的着色器编译速度,ARB着色器将进一步减少首次运行时的卡顿。
2000美元月纹理包替换功能快到了!
这将有助于替换游戏中的图形纹理,从而实现自定义纹理增强、备用控制器按钮图形等。
一旦目标得以维持,预计到达时间:34周
2500美元月一名全职开发人员尚未见面。
这笔每月捐款将允许该项目的创始人gdkchan全职开发Ryujinx。我们所有的贡献者目前只在业余时间从事该项目!
5000美元月额外的全职开发人员尚未见面。
这笔每月捐款将允许额外的Ryujinx团队开发人员全职从事该项目。
让我们开始吧。
显卡:
Switch仿真不是任何团体或项目都可以垄断的东西,Skyline团队肯定会投入他们的工作来证明这一点!联合首席开发商Bylaws对Ryujinx进行了一些修复;第一个解决了可能的竞争条件,第二个解决了上古卷轴V:天际中长期存在的错误。虽然可能是有史以来最具弹性的平台移植游戏,但自2020年启动以来,它从未打开过菜单,结果证明,Skyrim使用的计数器类型实际上需要一个信号量(一种用于帮助的替代数据结构)多线程任务,而不仅仅是要释放的常量零。
上古卷轴V:天际
虽然还没有达到完美的状态,但看到一些视觉上更复杂的Switch游戏渲染并且实际上表现非常出色总是很酷!
不满足于仅仅修复有史以来最畅销的游戏之一,这一变化实际上也完全解决了伊苏9:怪人之夜中极其缓慢的速度,并解决了吉娜姐妹:扭曲梦境中的黑屏图形问题。有一位非常有耐心的用户运行伊苏9:怪人之夜花了5个小时才进入游戏,呃
吉娜姐妹:扭曲梦境
本月继续他使用无尽的GPU黑魔法与铲子游戏的战争,gdkchan完成了最后的润色以完全修复了18绅士游戏鲜活的世界和限界凸起:萌情水晶。由于错过了如何处理了多重采样和非多重采样纹理。通过允许非多重采样纹理继承与多重采样纹理相同的数据,如果出现这种情况,Ryujinx将不再读取垃圾数据。
鲜活的世界
限界凸起:萌情水晶
当然,限界凸起:萌情水晶看起来也好不了多少。除非你是这个颜色的忠实粉丝棕褐色皮肤?幸运的是,实际上允许游戏渲染除单一颜色之外的其它内容。
界限凸起:萌情水晶
与索引抽奖相关的后续更改修复了一些使用它们的游戏可能具有的低迷性能。有时模拟器会为相同的结果绘制多次,这会在帧准备好之前增加大量的渲染时间。通过将索引计数仅传递给单个实例,多余的抽奖被消除,如下所示(最右边的列是抽奖计数)。
前
后
新发布的时廻者中的视频崩溃已通过将输出矩形限制在定义的表面内。以前,如果输入和输出表面之间存在不匹配,则输入范围之外的任何数据在技术上都是未定义的,并且会因访问冲突而随机崩溃。
继续我们修复视觉小说的主题,对AMD和IntelGPU上使用的绘制纹理回退进行了调整,以便某些游戏不会将其视窗颠倒。由于只有NVIDIA支持NVdrawtexture扩展,Ryujinx需要忽略当前的ClipControl设置,因为它们在非NVIDIAGPU上无效。
女仆向右跑
好吧,对于那些不关心视觉小说的人来说,这个月也有一些变化和修复给你!其中第一个影响了今年最受期待(但确实令人失望)的游戏之一:新的马里奥前锋。由于介绍视频导致尚未修复的崩溃,游戏大部分运行并在动画3D人群之外的启动时呈现得相当好。gdkchan立即进行救援,增加了对一些新形式的深度模板渲染目标(数组和3D纹理)的支持,同时修复了导致Ryujinx忽略渲染目标清除的错误。随着这两个地方的变化,人群现在实际呈现并且游戏玩法并不那么孤独!
马里奥前锋
时光之帽是另一款在标题屏幕前崩溃的游戏,但奇怪的是,只有当玩家在故事中以某种方式前进时才会崩溃。当着色器编译由于多种原因发生时,纹理ID可能无效,因此通过在访问描述符之前检查这种情况,我们可以避免与此相关的任何未映射的内存崩溃。
时光之帽
ShaderCache2。0在很大程度上提高了许多臭名昭著的游戏的可玩性,但这并不意味着它没有一些缺点。由于新的着色器专业化支持,需要在每次绘制时检查此属性;这听起来很麻烦,虽然总体上它并不像最初看起来那么糟糕,但在包括超级马里奥奥德赛和异度之刃:决定版在内的多款游戏中都有与之相关的性能打击。riperiperi自己承担了优化纹理绑定和着色器专业化检查。
超级马里奥:奥德赛和异度之刃:决定版的性能恢复到了新的缓存水平,而塞尔达:荒野之息的性能受到其它因素的限制,因此几乎相同,但FIFO有相当大的下降,这表明模拟的GPU负载较少。一旦游戏体验的其它瓶颈被转移,这应该会在未来看到不错的回报。随意检查任何在新缓存后感觉变慢的游戏,希望它们恢复正常或至少关闭!
没有什么是免费的,它的代价是在几个小时内破坏分辨率缩放,然后更新新的纹理绑定方法以考虑缩放,并且像女仆向右跑这样的某些标题需要考虑完整的池变化缓存。
女仆向右跑
CPU内核:
本月我们的CPU部分从一些CS:101开始。对于不熟悉数据类型,更具体地说,如何数字的人,有很多方法可以做到这一点:整数、短、长、浮点等。以前Ryujinx使用无符号(必须为正)短来存储操作数用途计数,最多占用数字65535。如果您尝试存储一个高于此的值,您将得到所谓的整数溢出,所有内容将再次回到0!像这样限制自己主要只是最佳实践,因为存储更高值的数据类型通常在内存方面成本更高。不幸的是,有些游戏确实需要这些额外的数据,所以类型被切换为一个无符号整数,它的上限是一个相当荒谬的数字2147483647,所以几乎没有机会需要更高的数据!
太阁立志传VDX现在是游戏中的首领,也可能是其它游戏中的首领(Switch有这么多的gaammmmesss!)。
太阁立志传5DX
停止模拟目前有点像玩俄罗斯轮盘赌,但需要使用任务管理器。问题是问题的原因不是单一的,而且随着游戏变得越来越复杂并且正在做不同的事情,许多最近的版本将在关闭时陷入假死。隔离并解决了两个这样的问题本月在CPUKernel空间当调用TerminateProcess函数时,它将尝试杀死所有正在运行的线程。这里的问题是TerminateProcess本身是在它自己的线程上触发的。有没有人发现这个问题?这个错误阻止了调用TerminateProcess的线程被取消调度,并在无限循环中将自身死锁。
gdkchan的大型内存别名更改的回归修复将通过几个月前导致Windows上的内存崩溃在运行另一个游戏后尝试使用或切换游戏时,这些可能最常触发的。最后,整个内核内存分配器都被重写了,对我们的贡献者和维护者来说更简洁、更易读。这里没有预期的错误修复或性能改进,但与往常一样,现在可能会有一些5美元的JRPG启动。记住孩子,编写干净的代码!
服务:
暗黑破坏神II:复活是一个奇怪的流行标题,自最近的网络大修以来一直处于不确定状态。在这些更改之后,游戏将在启动时崩溃,因为较新的方法在同一线程上处理所有读取和写入调用,如果同时需要这些调用,则会导致死锁。通过允许服务将其线程数增加到2,游戏将再次持续启动。
暗黑破坏神2:重生
然而,这个修复并不是防止其它问题所需要的全部。由于允许进程是多线程的,因此您需要处理一个线程正在处理而另一个线程试图响应的情况。这个确切的问题导致其它使用套接字服务的游戏,如精灵宝可梦剑盾,在启动时崩溃。这里的解决方案是从这些请求中返回单线程方法,但添加一个标志来防止导致暗黑破坏神死锁的阻塞问题。将来,回到多线程方法将是处理这个问题的更准确的方法,但是为了让所有东西都能很好地运行,所需的更改将是巨大且耗时的。目前这个解决方案可以满足所有游戏的需求!
系统时间服务中的TimeZoneRule本月受到了一些喜爱,因为它在代码库中的使用非常不理想,并且需要在使用它的任何地方使用副本。通过使这个blittable(给它一个通用的表示,不需要在托管和非托管代码之间进行特殊处理),它可以在少数情况下减少JIT开销,并潜在地提升任何可能成为性能瓶颈的领域。随后修复了小错误并修复了时区在UI上的显示方式。
杂项:
每个人最喜欢的速射变化部分!
所有XAML文件都已格式化,元素现在应该保持一致和对齐。
终于添加了简体中文翻译Avalonia项目
上个月,该项目的构建脚本终于切换到专门针对Windows10。
Vulkan进展:
正如之前的报道中所说,Vulkan本身的工作已经基本完成,如果您是NVIDIAGPU的骄傲拥有者,那将是一次非常棒的体验!但是,正如偏移量所述,实施Vulkan后端的主要目标之一是确保它(在某种程度上)与AMD和Intel的显卡和驱动程序都能很好地兼容。这不是一项小任务,并且试图修复某些偶尔仅限于某一代显卡的错误,特别是当所有开发人员他们自己并不拥有某一带显卡时,在这方面取得进展至少很难说。具有讽刺意味的是,实际上应该是英特尔在这里还不错,因为虽然存在一些错误,但它们在架构中往往是一致的,与AMD似乎能够召唤它们的频率相去甚远。
但。在我将自己卷入另一个AMD仇恨愤怒之前,让我们看看一些已经为你们AMD人追踪和修复的东西!
精灵宝可梦:剑盾
马里奥赛车8:豪华版
塞尔达传说:荒野之息
火焰纹章无双:风花雪月
最后三个问题都是Polaris架构独有的(任何RX400RX500及以下),这真是让人头疼。事实证明,当使用VKIMAGECREATECUBECOMPATIBLEBIT标志时,这些卡完全破坏了带有mipmap的2D阵列纹理。通过强制复制而不使用此功能,可以以稍微缓慢的立方体贴图创建为代价来解决该问题。性能影响并不显着,并且在大多数测试游戏中应该相对不明显。谢谢,AMD!
当然,TeamRed拥有大约2万个其它错误,但我们希望能够接近尾声。
结束语:
2022年上半年已经过去,很快就离我们而去,但下半年肯定有一些杀手级游戏发布!一个新的异度之刃3、尼尔、女神异闻录、一个新的索尼克游戏和另一个精灵宝可梦。应该是几个月的动作,是吗?再次感谢我们所有的贡献者多年来让我们继续前进!多亏了你们,我们才有希望在第一天看到上述所有工作。
和往常一样,这是报告的HR招聘时间!如果您了解一些C、。NET、3D图形或低级工程,您也可以帮助今年尽可能顺利和修复错误。如果这对您来说都是魔法,那么捐赠给我们的patreon或积极参与测试和错误报告确实会帮助很多人。
大家下期见!