yuzu模拟器吧 关注:172,788贴子:724,048
  • 15回复贴,共1

ryujinx 2022/5 进度报告(机翻)

只看楼主收藏回复

避免暗吞,还是分多楼搬运

什么把复古游戏,改装工具和。NET UI创建框架?如果你回答了“龙筋可能的进展报告”,那么给自己一枚勋章;如果没有,那你欠我们一盒饼干。一些不错的!
在我们开始讨论5月份实施的变更之前,先看一下我们的patreon目标:
帕特里翁目标:
Vulkan GPU后端-仍在进行中。
一个公共测试版本已经交付并可用这里!
https://github.com/Ryujinx/Ryujinx/pull/2518
ARB着色器-目标于2021年4月达成。
Vulkan的工作正在进行中,请再等一会儿,直到我们能够将此更新发布到我们满意的状态。
ARB着色器将通过使用OpenGL API提高NVIDIA GPUs上的着色器编译速度,进一步减少第一次运行时的停顿。
2000美元/月-纹理包/替换功能-快到了!
这将有助于替换游戏中的图形纹理,从而实现自定义纹理增强、备用控制器按钮图形等等。
目标持续后的预计时间:大约3-4周
2500美元/月-一名全职开发人员-还没见过面。
每月捐款的数额将允许项目的创始人gdkchan全职开发Ryujinx。我们所有的贡献者目前只在业余时间参与这个项目!
5000美元/月-额外的全职开发人员-还没见过面。
每月捐款的数额将允许一个额外的Ryujinx团队开发人员全职工作于该项目。
大家准备好了吗?那些饼干寄出去了吗?
GPU:
唉,GPU部分将从本月回归修复开始。幸运的是,他们出现在相当受欢迎的《神奇宝贝传奇阿尔宙斯》和《异刃编年史2》中,现在我们都应该知道,这些人是声音的。第一次回归导致了《传奇阿尔宙斯》中一些相当大的顶点爆炸和其他光照错误,这是由于纹理同步中的一个疏忽,两个或多个线程遇到并试图读取同一个内存区域。迫使两个线程都等待出现的数据解决这个问题,我们希望“纹理同步”至少在几个月内不会出现在这些报告中!


酷哥不看爆款。


IP属地:上海1楼2022-06-21 09:09回复
    第二个问题源于上个月提到的顶点缓冲计算修复,这对于阻止某些游戏在启动时使用大量内存并崩溃至关重要。不幸的是,虽然该解决方案对那些游戏非常有效,如超级马里奥64和活泼的小东西,但其他一些游戏也使用这些缓冲区,以同样的方式计算它们可能会导致图形问题。如果绘图没有被索引,那么我们不能以同样的方式计算顶点缓冲区的大小,因为结果最终是没有意义的。通过返回到这些特定无索引绘图的先前计算,异刃编年史2中的过场动画回到了之前的形式。
    https://github.com/Ryujinx/Ryujinx/pull/3304


    HM05:除雾
    着色器重新编译阶段的一个错误(由驱动程序更改或缓存版本碰撞触发)也在本月被强制Ryujinx在开始转换你的着色器缓存之前预取GPU功能。后端线程只希望一个线程在同一时间提交命令,当许多线程同时请求这些功能时,是否会发生崩溃真的是运气使然。
    https://github.com/Ryujinx/Ryujinx/pull/3338
    好了,让我们离开物质破坏,来到我们驯服的GPU开发人员riperiperi。有人说只有板玻璃的纵向裂纹在《马里奥赛车》中,DS能让他微笑……或者每周二,在中午12点整,他会看到一个蓝色害羞的家伙在表演恶魔仪式。我们所知道的是,他设法在这个月获得了两个新的马里奥赛车冠军,这不是巧合。
    https://mariokart.fandom.com/wiki/Snaking
    让我们从马里奥赛车64开始说起。无意冒犯任何婴儿潮一代,这个游戏真的很烂。不得不说。无论如何,最近的任天堂64 NSO服务将这款游戏作为其收藏的一部分,并没有花很长时间就发现了某些区域的渲染问题,如还原点预览,游戏选择屏幕上的模糊效果以及马里奥赛车64大屏幕!
    以前


    IP属地:上海2楼2022-06-21 09:11
    回复
      N64 NSO渲染中使用的官方任天堂Switch Vulkan驱动程序,以及大量自制应用程序中使用的新OpenGL驱动程序,利用了系统API不支持的禁用视口变换。因此,这需要通过转换顶点着色器手动实现以匹配提供的视口。如果所有这些都是完全的术语,那么只要知道这是修复许多曾经缺少HUD或UI元素的游戏。
      https://github.com/Ryujinx/Ryujinx/pull/3328

      在...之后


      一个屏幕真的不够用!


      IP属地:上海4楼2022-06-21 10:40
      回复


        热血少女Zero


        嘿!听着!


        IP属地:上海5楼2022-06-21 10:42
        回复
          随着时间的推移,我们最终会看到马里奥赛车DS,它可以在交换机上使用类似的自制模拟器进行模拟MelonDS。这将在以后出现,但现在我们不得不忽略它,直接进入马里奥赛车7,这是里佩里佩里的第二次修复。
          https://melonds.kuribo64.net/
          Citra确实可以通过家酿软件在Switch上运行,但是在Ryujinx中渲染时出现了一些严重的图形问题。第一个是上面看到的视口变换,但是第二个提供替代的StencilOP枚举值新的OpenGL驱动程序可以利用。这很难发现,但这确实修复了一些3DS游戏和其他自制模拟器中丢失的阴影。
          https://github.com/Ryujinx/Ryujinx/pull/3321


          你得眯着眼睛!
          CPU/内核:
          如果你一直关注此事,你可能会有这样的印象,这个月有相当多的注意力放在自制和一些非常规的事情上,你绝对是正确的。图形的东西只是一个巨大硬币的一面,包括官方和非官方的模拟,复古游戏和超级粉碎兄弟。终极改装?
          通往这些变化的道路已经酝酿了数月,因此我们有一个地狱般的故事要讲。
          故事实际上始于2020年末《超级马里奥3D全明星》的上映;退一步说,这是一个有趣的版本,因为它包含了3个游戏,至少部分是模仿的!虽然Galaxy和Sunshine都可以快速启动并进入游戏,但超级马里奥64仍然是一个问题儿童,因为它依赖于固件10.0.0,特别是它带来的JIT(即时)服务。

          “是我。固件服务!”-地平线操作系统


          IP属地:上海6楼2022-06-21 11:21
          回复
            在任天堂进行仿真实验的同时,已经有大量粉丝喜爱的模拟器被移植到系统中,例如MelonDS, PPSSPP, mGBA像这样的项目地平线和阿克罗波利斯在修改社区中获得动力。将所有这些联系在一起的实际上是它们如何利用代码内存系统调用,并可以动态地主动生成或自我修改代码。
            https://melonds.kuribo64.net/
            https://www.ppsspp.org/index.html
            https://mgba.io/
            https://github.com/skyline-dev/skyline
            https://github.com/Raytwo/ARCropolis
            所以让我们从引发这一切的游戏开始回溯。超级马里奥3D全明星赛。特别是超级马里奥64。
            1.这个游戏需要实现JIT服务。
            2.要让这些服务发挥作用,它们需要代码内存系统调用来实现,这些服务也会让其他一些东西工作。
            听起来很棒,对吧?一个问题。
            没有得到非常从技术上来说,为了准确实现这些调用,Ryujinx需要支持所谓的“内存别名”,并且需要在快速内存映射模式上支持它(以前只有最慢的软件模式才起作用)。
            gdkchan就这样开始了旅程,它重写了内存管理系统的一大部分,以支持内存别名关于快速内存管理器模式。不幸或幸运的是,这些变化所需的新主机API仅在Windows 10及更高版本上实现。这标志着Windows 7/8的第一声丧钟。
            https://github.com/Ryujinx/Ryujinx/pull/2954
            实现了这一点后代码系统调用本身最终可以实现一些真正的成果开始成形。
            https://github.com/Ryujinx/Ryujinx/pull/2958

            Ryujinx vs PPSSPP vs有罪装备

            来自Citra的深度问题...

            甜瓜卡丁车DS


            IP属地:上海7楼2022-06-21 11:23
            回复
              只有JIT服务保留了下来,gdkchan选择了一条独特的路线。通常我们对系统服务使用“HLE方法”(高级仿真),其中服务被逆向工程并直接在软件中重新实现。然而,这个特殊的服务与其他任何服务都有很大的不同,只有在调用专用的“PrepareForJIT”函数时才会被初始化。这是一个非常酷的里程碑,为了在不需要的时候最小化运行这种服务的影响,Ryujinx能够运行服务直接从固件文件中删除以“LLE”(低级仿真)的方式。忽略我们的内核和文件系统精度能够以可玩的速度直接运行真正的系统服务是多么令人敬畏,这是3D全明星赛的最后一块拼图。N64 NSO模拟器也已经在这个时候发布,这样一举两得。
              https://github.com/Ryujinx/Ryujinx/pull/2959

              呀呀呀呀呀呀呀呀呀呀呀

              Gu-Huuuhhh!

              狐狸说了什么?


              IP属地:上海8楼2022-06-21 12:12
              回复
                模块化插件系统Skyline及其最受欢迎的插件ARCropolis也严重滥用这些服务,将模块化从简单的替换提升到一些真正疯狂的创造。ARCroplois还需要一个进一步的改变,那就是GetProcessInfo氛围扩展的部分实现,但现在在核心层发挥作用。
                https://github.com/Ryujinx/Ryujinx/pull/2966

                与他们的页面链接使用的mod列表:https://pastebin.com/Rkj2eNE3
                由于自制软件的性质,我们不能保证对上面列出的任何程序或插件的未来更改将永远有效,因此我们建议,至少在目前,所有的崩溃或意外行为应该总是在向我们自己的问题跟踪器或工具本身提出问题之前,请与硬件进行交叉引用。我们也要感谢mod插件背后的团队和所有对我们缺乏Web小程序功能保持耐心的mod创建者,并希望将来不再需要这样的特殊支持。所以谢谢大家!
                希望你不会因为gdkchan还没有完成CPU的改变而感到沮丧!在实现了存储器别名之后快速解决了Windows独有的内存泄漏,然后进一步重构(基本上是重新组织)CPU接口将它与核心仿真器完全解耦。
                https://github.com/Ryujinx/Ryujinx/pull/3319
                https://github.com/Ryujinx/Ryujinx/pull/3362
                仿真器由多个部分组成,理想情况下,这些部分应该完全相互分离,并通过“接口”访问,以实现非常模块化的设计。Ryujinx的大部分都是这样设计的,任何看过我们源代码库的人都会知道:

                黑客帝国5:源代码
                这里的好处是显而易见的,因为这允许人们使用Ryujinx并在他们自己的ARMv8重新编译器中插入,如独角兽企业或者动态的用于调试或特殊目的。
                https://www.unicorn-engine.org/
                https://github.com/merryhime/dynarmic
                为了结束这个月,gdk继续重写SVC处理程序使用新的源生成器。NET 6提供了,而不是reflection . emit . Genkai Tokki Moero Crystal H现在进入游戏,但主要的好处来自于将计算成本从运行时转移到编译时。
                https://github.com/Ryujinx/Ryujinx/pull/3371

                在游戏中,看起来不错!


                IP属地:上海9楼2022-06-21 12:14
                回复
                  一个更抽象的未来利益是,这是让Ryujinx准备好的最后一个障碍之一。NET 7的本地提前编译;一个应该减少启动时间和全面改善程序响应性/延迟的特性。
                  https://github.com/dotnet/runtime/issues/61231
                  用户界面:
                  已经有一段时间没有足够的UI工作来为它制作一个完整的部分了,但这是我们生活的时代!可能肯定有足够的保证一个专门的部分,但是合并的第一部分,热切期待搬迁到阿瓦洛尼亚。
                  https://github.com/Ryujinx/Ryujinx/pull/3270


                  网格还是行?
                  如上所述,这只是第1部分,在UI成为默认界面和GTK被永远抛弃之前,还需要做更多的工作。Avalonia的当前路线图:
                  第1部分:UI GPU后端、主窗口和App主机(15/05/22合并)。
                  第2部分:设置窗口及其所有子窗口和控件(当前打开).
                  https://github.com/Ryujinx/Ryujinx/pull/3351
                  第3部分:所有其他与设置无关的窗口和控件。
                  第4部分:(如果需要)一般清理和修复。GTK走开。
                  尽管如此Avalonia项目被添加到构建脚本中对于任何测试我们拉请求的人来说,构建项目本身就是清理和标准化与节目的其余部分和GTK特定的DPI感知的解决方法已删除在有两个显示器的系统上提供稍微清晰的图像,因为Avalonia本身就能处理这个问题。
                  https://github.com/Ryujinx/Ryujinx/pull/3339
                  https://github.com/Ryujinx/Ryujinx/pull/3340
                  https://github.com/Ryujinx/Ryujinx/pull/3354
                  不久之后,人们发现了一个系统缩放错误,如果用户在操作系统中设置了超过150%的缩放因子,帧缓冲区将只显示最终图像的1/4。通过缩放该结束帧缓冲器以匹配OS缩放因子这个问题也解决了。
                  https://github.com/Ryujinx/Ryujinx/pull/3342


                  Kirby对操作系统的伸缩性很不满意。


                  IP属地:上海10楼2022-06-21 12:26
                  回复
                    有群吗


                    IP属地:江西12楼2022-06-24 22:14
                    收起回复
                      大佬,萌新求助,宝可梦文件放在机械盘能流畅玩吗


                      IP属地:山东来自Android客户端13楼2022-06-28 13:06
                      收起回复
                        现在yuzukeys最新是什么版本?14.1.1?


                        IP属地:安徽来自iPhone客户端14楼2022-08-09 11:29
                        收起回复