海豚进展2020年5月和6月

2020-07-05 23:40:51

在过去的两个月里,我们有很多事情要做。最重要的是,我们很高兴地宣布支持专门为Dolphin:RVZ开发的一种新的压缩光盘格式。这种无损格式可以在不影响ISO完整性的情况下实现接近顶端的游戏压缩,同时还能保持性能和稳定性。但是,如果仿真达不到要求,压缩又有什么好处呢?过去的两个月充斥着Android和Desktop Dolphin的仿真和可用性修复!有一点所有的东西,从图形仿真修复,存储卡和存储兼容性的变化,到模糊的功能,如能够报告热数据到游戏和自制软件!

与其再耽搁,不如让我们现在就开始吧!请欣赏五月和六月的海豚进度报告!

当在大多数Android设备上使用Dolphin的OpenGLES后端时,很多游戏在试图用EFB窥视读取屏幕时表现不佳。通过检查屏幕上的内容,游戏可以实现各种视觉效果,甚至可以将数据用于游戏!WIND WAKER使用EFB访问,以便判断太阳何时可见,从而实现发光效果,并使屏幕上的其他一切变暗。超级马里奥银河走得更远,拥有类似的太阳效果和游戏功能,比如普尔斯塔(Pullstar)和收集星座(Starbit),这些功能依赖于知道屏幕上有什么。所有这一切都在海豚的GLES模式下的OpenGL后端被打破了!在进行一些调试之后,我们发现GLES不支持深度格式的glReadPixels(),这意味着这些读取被完全跳过。虽然这意味着在OpenGLES上从CPU启用EFB访问不会对性能造成影响,但这也意味着这些影响将完全失败。

为了解决这个问题,Stenzek为这种情况创建了一个后备方案,即复制到颜色格式而不是深度格式。这允许从CPU的EFB访问最终在GLES设备上正确工作。

注意:因为从CPU访问EFB在某些游戏中工作正常,这意味着现在在这些游戏中启用该功能会对性能产生影响。那些习惯于在OpenGL上比Vulkan运行更快的超级马里奥银河的用户现在会发现,这两个后端之间的性能应该会更接近。这种性能损失不是错误!这些游戏正确运行所需的仿真的一个关键部分是完全跳过!不要在需要此功能的游戏中报告性能损失。谢谢。

Stenzek分行的名字应该能说明我们是如何走到这一步的:Adreno-More-Like-Brokenreno&34;(Adreno-More-Like-Brokenreno&34;Adreno-more-like-brokenreno&34;)。另一个Adreno错误的解决方法导致我们遇到更多问题。问题是,试图在Vulkan中创建SAVSTATE会使Dolphin崩溃,因为在读回D24S8深度时,驱动程序中会出现断言。为了解决这个问题,Dolphin现在在受影响的设备上使用R32F。这允许保存在Adreno设备上的Vulkan上运行。

斯坦泽克再次出击,这一次修复了几个月前出现的不幸的回归。对Dolphin窗口创建程序的更改导致Dolphin在尝试处理用户的红外线鼠标光标时使用错误的窗口表面。海豚没有使用游戏窗口,而是使用了游戏列表!哎呦。

超级粉碎兄弟斗殴用户通常使用SD卡数据加载总游戏转换模式。然而,要想让Netplay取得成功,用户需要与SD卡完美匹配。不幸的是,Wii的设计根本不是为了维护SD卡决定论;如果一款游戏只读取SD卡,内容就会发生如此轻微的变化。即使是这些微小的变化也足以导致Netplay上的游戏不同步,需要重新共享和重新同步SD卡。这可能会导致很多令人头疼的问题,特别是当一些吵架的MOD使用2 GB SD卡的时候!幸运的是,现在有了一个解决方案。为了防止这样的SD卡小改动,您现在可以在Dolphin的Wii设置页面锁定您的SD卡。这应该会使同步和玩依赖SD卡的游戏在未来变得更加可预测。如果您不确定您的SD卡是否匹配,请确保在玩之前比较网络播放窗口中的散列!

这是两次提交的原因是埃博拉16在海豚的Android GUI中实现了这一点。他们还一直在Android触控和电视上实现台式机版Dolphin缺少的大量其他功能。单独来看,每一项改动都相当小,但它们一直在慢慢地让安卓版本的海豚变得更容易使用,同时功能也更强大。同样,5.0-12090构建失败,因此缺少链接。

我们注意到最新版本的瑞士GC挂在海豚身上。考虑到Swiss-GC在我们用户中的受欢迎程度,修复此问题是当务之急。你没买那一套,是吧?实际上,这个问题解决得如此之快的原因是,Swiss-GC是GameCube的开源应用程序,开发人员与我们的社区关系密切。他们不仅向我们提供了关于他们新使用的寄存器的数据,而且我们可以直接查看他们的代码以了解它在做什么。在处理了这么多黑匣子游戏之后,在我们真正知道软件想要做什么的情况下工作是一件令人耳目一新的事情。

关于寄存器和delroth的Extrems文档实现了基本支持,以报告正常数据,从而使Swiss-GC不再挂起。

保存是模拟的核心好处之一。总有一天,Wii的最后一项在线服务将成为遥远的记忆,找不到可用的Wii光盘驱动器,而Wii光盘是最有用的过山车。剩下的这些游戏和他们的体验将是在这个Wii硬件和光盘仍然可以使用和可用的时代制作的数字备份。不幸的是,为了节省有限的硬盘空间,许多用户转向损坏他们的转储文件。这些转储可能会在短期内起作用,但缺乏重要的文件,如Wii更新数据和IOS,当NUS不再起作用时,这些文件可能是未来使用游戏各种功能所必需的。

这就是为什么我们很高兴推出一种为海豚设计的新的高压缩存储格式。RVZ建立在Wiimm&39;的WIA格式之上,是该格式的演变,专为实时性能和完整保存所有磁盘数据而设计,同时保持尽可能高的压缩率。与WIA和NKit文件不同,这两个文件在直接使用时都有自己的问题,而RVZ几乎避开了困扰高压缩格式的所有问题。只要你的CPU有两个以上的核心,在Dolphin中使用它就不会影响性能,这是一个巨大的好处,因为其他压缩格式在加载过程中会导致令人沮丧的卡顿,这在未压缩的ISO上是不会发生的。RVZ光盘还可以直接与ISO兼容,即使在网络播放和电影录制等需要完美确定性的情况下也是如此。

你可能会想,为什么无损如此重要。为什么保存更新数据和垃圾数据等内容实际上很重要?我们可以快速通过的原因有很多。

像NUS for Wii这样的在线服务不会永远存在。更新光盘上的文件可能是访问依赖于各种iOS功能的游戏的某些功能的唯一方式。

不准确的转储可能会导致各种意想不到的问题。RVZ可以直接对照Dolphin中的ISO进行验证。

一些游戏可能会意外读取它们不打算读取的数据,这意味着垃圾数据实际上可能会起作用。

可验证的无损转储使我们的支持人员在提供帮助时知道磁盘映像不是问题。

通过存储未加密的Wii数据分区,RVZ能够压缩和保存每个数据分区,而不会对空间造成巨大的损失。RVZ甚至可以将垃圾数据压缩到几乎为零!

因为RVZ是一种全新的格式,所以在其他程序中没有得到很好的支持。因此,为了简化这一过程,我们直接添加了对Dolphin转换为RVZ的支持。不幸的是,rvz文件与5.0-12188之前的海豚版本不兼容,因此返回到以前的版本需要事先将游戏转换回ISO。不过,你可以直接在海豚的游戏列表中这样做,所以不会太痛苦。

在比较一系列格式时,不可避免地会达到只需处理原始数字的地步。在了解这些数字的含义和原因之前,我们必须了解一些注意事项。垃圾数据与真实游戏数据的比率在每个游戏中差异很大,而且由于垃圾数据的压缩效果比真实数据好得多,因此确切的节省程度具有很大的变数。看到游戏从4 GB下降到300MB是完全正常的,但看到几乎不受压缩影响的游戏也是正常的。一个著名的例子是“暮光之城公主Wii”--作为最初为GameCube及其较小的光盘开发的游戏,Wii版本大多是空的,因此可以以非常好的3.8:1的比例进行压缩。

我们还必须注意我们对每种格式使用的设置。通过在无损测试中简单地比较所有这些格式,我们可以很容易地使RVZ看起来非常棒。然而,这并不是有多少用户使用这些格式,这将是令人难以置信的误导。因此,为了节省空间,我们使用了用户将使用的GCZ和WIA的典型设置。如果说有什么不同的话,那就是这表明使用RVZ而不是有损格式实际上几乎没有牺牲。

我们在这些图表中没有比较的一种格式是NKit。这只是一个很难比较的格式,这要归功于疯狂的功能,以及它将如何愉快地拆分更新数据并在许多游戏中重复使用一个副本。在做初步测试时,很难准确地掌握它节省了多少钱。虽然就个人而言,RVZ似乎在压缩方面优于NKit,但当您压缩更多游戏时,因为它能够重用更新分区,它实际上会获得优势。这使得它成为长期存储大量收藏品的绝佳选择,即使它看起来像是在逐个游戏的基础上输掉了比赛。

不幸的是,尽管NKit适用于长期存储,但对于仿真而言,它往往也同样存在问题。NKit实际上会移动光盘上的文件位置,将它们移到文件的较早位置,即朝向光盘内部的位置。这通常看起来不是问题,但Dolphins模拟CAV,将文件移到光盘内部意味着每次旋转读取的数据较少。最终结果是加载时间有时会增加10%甚至20%!不同的加载时间意味着像Netplay这样的功能不能在NKit光盘和不修改文件位置的转储之间工作。

但是,除了这些微不足道的抱怨之外,NKit还有另一个问题让它变得更有问题:一些游戏真的很讨厌它。我们知道至少有两款游戏简单地以NKit格式崩溃。超级纸业马里奥(Super Paper Mario)出现了一次不可避免的崩溃,我们已经看到数十名用户对哪里出了问题感到困惑。Namco博物馆(特别是加拉加安排)也会崩溃,但可以通过转换到具有更安全设置的NKIT来防止这种崩溃。

不管这些问题,当作为一种长期的存储格式使用时,NKit是非常棒的,这是不会与Dolphin一起使用的。但是,如果您希望在Dolphin中使用压缩格式,请使用RVZ。当在逐个游戏的基础上使用时,NKit和RVZ将导致无损压缩光盘的文件大小非常相似。

GCI文件夹选项的出现为大型GameCube游戏收藏带来了方便的保存管理。它允许用户绕过标准存储卡BLOB中存在的恼人的文件限制,同时允许即时访问直接在您喜爱的文件管理器中复制、删除或修改存储。一切似乎都很好,但在推广和推荐GCI文件夹时,我们开始看到一个突出但令人困惑的问题。有时游戏会简单地开始拒绝保存。虽然我们不知道到底是什么导致了这个问题,但很早就很明显,储藏品与此有关。而且,一旦游戏拒绝在该保存上进行保存,您就会被永久地卡住,并且不能再使用游戏中的保存,除非您从最近的游戏中保存中重新启动。

在切开记忆卡管理器的牙齿后,柯蒂斯上将对正在发生的事情有了一些了解,甚至提供了更早的尝试。他提供的其中一件重要的事情是为什么会发生这种情况的步骤和信息。

然而,尽管有具体的步骤来重现这个问题,甚至有一个潜在的解决方案,但我们感到震惊的是,所有已知的解决方案都可能会覆盖对其他游戏的保存,导致用户丢失大量进展。幸运的是,我们现在有了一个适当、安全的解决方案。Dolphin现在将存储卡标题存储在EXI_Channel中,以确保跨保存相同的游戏会话。这意味着即使你已经停止了Dolphin,修改了记忆卡,并重新加载了你的储存卡,游戏也不会认为你正在保存到不同的存储卡。当然,这有很多保护措施,所以保存数据不会覆盖其他游戏的保存数据。

注意:这些修复不会影响精灵宝可梦竞技场和精灵宝可梦关于保存的保存问题。他们有针对性的存储卡检查,以防止精灵宝可梦上当受骗。与上一个问题(更多的是仿真疏忽)不同,这个问题应该通过游戏补丁来解决。目前还没有人在调查这个问题,你应该小心在这些游戏中使用保存类游戏。如果有人真的为这个问题写了补丁或作弊,我们将很乐意将其包含在游戏的INI文件中,以便用户轻松访问。

自由外观是海豚的一项由来已久的功能,它允许用户随心所欲地在游戏中重新定位相机,其功能远远超过游戏相机所能提供的功能。这允许探索被封锁的区域,高级游戏摄影,等等。

在过去的几个月里,iwubcode一直在致力于一个雄心勃勃的个人项目,以改进和扩展Free Look功能集。在过去的两个月里,他们添加了新的实验性相机模式,并修复了几个Free Look错误,而这只是个开始。到目前为止,最大的变化是一个新的选项,允许调整Free Look相机的视野。有了这个新选项,所有以前不可能做到的新镜头和新视角现在都在我们的掌握之中!

除了游戏摄影,这也可以用于游戏目的。如果你不喜欢游戏使用的视野,想要更宽或更紧,这个新选项将允许你改变它!

此选项可以在图形>;高级选项卡中找到,也可以通过热键调整视野(默认为Shift+鼠标滚轮)。这只是iwubcode计划的疯狂事情的开始,所以希望在接下来的几个月里,Free Look会继续获得新的功能。

这个特性直接来自XLink KAI开发人员CrunchBite。如果你不熟悉它,XLink KAI是一项服务,它允许从旧到新的局域网游戏在许多主机上进行隧道传输。在这种情况下,他们已经为海豚实现了BBA后端,允许用户通过他们的服务在本地和在线玩BBA游戏。你甚至可以和其他玩家一起玩,只要你在所选游戏的ping容忍度之内。马里奥·卡特:双人冲刺!!它实际上可以稳定地与两个玩家高达约60ms的ping,这确实给了它一些范围。其他游戏都有自己的ping容限,它们在局域网上的表现会最好。

XLink KAI支持的最大好处是,您不需要经历在Windows上使用TAP适配器的设置和缺点。在Windows上,设置TAP适配器并让Dolphin连接到它们不仅是一项相当危险的任务,而且延迟限制通常会导致游戏延迟和断开连接,即使这两个Dolphin实例都在同一台计算机上运行。确实没有什么可以做的,少数依赖于Dolphin中的BBA支持的人会避开Windows for Linux,仅仅是为了让游戏变得可以玩。Windows用户不再需要感觉自己是BBA世界的三等公民,因为XLink-KAI完全不存在这个问题。它不依赖TAP适配器,而是手动注入比游戏想象中更干净的以太网帧。

使用XLink KAI服务一开始可能会相当令人望而生畏,所以我们建议仔细遵循他们网站上的指南,以确保设置正确,并且您知道该服务的局限性。另外,请直接联系他们以获取有关服务的任何支持问题;我们的论坛助手没有足够的能力来帮助XLink KAI。

特别感谢所有将海豚从5.0-11993增加到5.0-12247的贡献者!

这篇文章是博客系列“海豚进展报告”中的第61篇。<上一篇系列文章