Switch模擬器Ryujinx進度報告2022-6月

Switch模擬器Ryujinx進度報告2022-6月

Switch模擬器Ryujinx進度報告2022-6月

馬里奧足球

2022 年已經過半,當我們有一些好遊戲可以玩時,時間肯定過得很快! 說到遊戲,本月釋出了一些真正的遊戲,我們很高興地說它們中的 大多數 都可以工作,要麼開箱即用,要麼有一些小的變通辦法。 儘管來自 Koei Tecmo(所有模擬器開發者都害怕的名字),火焰紋章無雙:風花雪月,無論是演示版還是完整版,在第 1 天都完美執行,只有馬里奧前鋒搶走了我們的風頭!

如果需要一個MOD來繞過介紹,我們儘量不宣傳它變成了可玩的遊戲,但任何有興趣的人都可以選擇,並且遊戲的其餘部分執行良好。

這是下半場更精彩的釋出,事不宜遲,讓我們進入我們的 patreon 目標!

Patreon目標:

Vulkan GPU 後端 - 仍在進行中。

已交付公共測試版本 !

ARB 著色器 - 2021 年 4 月達到的目標。

與 Vulkan 一起工作正在進行中,請稍等片刻,直到我們能夠將此更新交付到我們滿意的狀態。

透過使用 OpenGL API 提高 NVIDIA GPU 上的著色器編譯速度,ARB 著色器將進一步減少首次執行時的卡頓。

2000 美元/月 - 紋理包/替換功能 - 快到了!

這將有助於替換遊戲中的圖形紋理,從而實現自定義紋理增強、備用控制器按鈕圖形等。

一旦目標得以維持,預計到達時間:~3-4 周

2500 美元/月 - 一名全職開發人員 - 尚未見面。

這筆每月捐款將允許該專案的創始人 gdkchan 全職開發 Ryujinx。 我們所有的貢獻者目前只在業餘時間從事該專案!

5000 美元/月 - 額外的全職開發人員 - 尚未見面。

這筆每月捐款將允許額外的 Ryujinx 團隊開發人員全職從事該專案。

讓我們開始吧。

顯示卡:

Switch 模擬不是任何團體或專案都可以壟斷的東西, Skyline 團隊肯定會投入他們的工作來證明這一點! 聯合首席開發商 Bylaws 對 Ryujinx 進行了一些修復; 第一個 解決了可能的競爭條件 ,第二個解決了上古卷軸 V:天際中長期存在的錯誤。 雖然可能是有史以來最具彈性的平臺移植遊戲,但自 2020 年啟動以來,它從未開啟過選單,結果證明, Skyrim 使用的計數器型別實際上需要一個訊號量 (一種用於幫助的替代資料結構)多執行緒任務,而不僅僅是要釋放的常量零。

Switch模擬器Ryujinx進度報告2022-6月

上古卷軸V:天際

Switch模擬器Ryujinx進度報告2022-6月

雖然還沒有達到完美的狀態,但看到一些視覺上更復雜的 Switch 遊戲渲染並且實際上表現非常出色總是很酷!

不滿足於僅僅修復有史以來最暢銷的遊戲之一,這一變化實際上也完全解決了 伊蘇9:怪人之夜 中極其緩慢的速度,並解決了 吉娜姐妹:扭曲夢境 中的黑屏圖形問題。 有一位非常有耐心的使用者執行 伊蘇9:怪人之夜 花了 5 個小時才進入遊戲,呃。。。

Switch模擬器Ryujinx進度報告2022-6月

吉娜姐妹:扭曲夢境

Switch模擬器Ryujinx進度報告2022-6月

本月繼續他使用無盡的 GPU 黑魔法與鏟子遊戲的戰爭,gdkchan 完成了最後的潤色以完全修復了18+紳士遊戲 鮮活的世界 和 限界凸起:萌情水晶。由於 錯過了如何處理了多重取樣和非多重取樣紋理 。 透過允許非多重取樣紋理繼承與多重取樣紋理相同的資料,如果出現這種情況,Ryujinx 將不再讀取垃圾資料。

Switch模擬器Ryujinx進度報告2022-6月

鮮活的世界

Switch模擬器Ryujinx進度報告2022-6月

限界凸起:萌情水晶

Switch模擬器Ryujinx進度報告2022-6月

當然,限界凸起:萌情水晶 看起來也好不了多少。 除非你是這個顏色的忠實粉絲…… 棕褐色面板 ? 幸運的是,實際上允許遊戲渲染除單一顏色之外的其它內容。

Switch模擬器Ryujinx進度報告2022-6月

界限凸起:萌情水晶

Switch模擬器Ryujinx進度報告2022-6月

與索引抽獎相關的後續更改修復了一些使用它們的遊戲可能具有的低迷效能。 有時模擬器會為相同的結果繪製多次,這會在幀準備好之前增加大量的渲染時間。 透過將 索引計數僅傳遞給單個例項 ,多餘的抽獎被消除,如下所示(最右邊的列是抽獎計數)。

Switch模擬器Ryujinx進度報告2022-6月

Switch模擬器Ryujinx進度報告2022-6月

新發布的 時廻者 中的影片崩潰已透過 將輸出矩形限制在定義的表面內 。 以前,如果輸入和輸出表面之間存在不匹配,則輸入範圍之外的任何資料在技術上都是“未定義的”,並且會因訪問衝突而隨機崩潰。

繼續我們修復視覺小說的主題,對 AMD 和 Intel GPU 上使用的繪製紋理回退進行了調整,以便某些遊戲不會將其視窗顛倒。 由於只有 NVIDIA 支援 NV_draw_texture 擴充套件, Ryujinx 需要忽略當前的 ClipControl 設定 ,因為它們在非 NVIDIA GPU 上無效。

Switch模擬器Ryujinx進度報告2022-6月

女僕向右跑

Switch模擬器Ryujinx進度報告2022-6月

好吧,對於那些不關心視覺小說的人來說,這個月也有一些變化和修復給你! 其中第一個影響了今年最受期待(但確實令人失望)的遊戲之一:新的馬里奧前鋒。 由於介紹影片導致尚未修復的崩潰,遊戲大部分執行並在動畫 3D 人群之外的啟動時呈現得相當好。 gdkchan 立即進行救援,增加了對一些新形式的深度模板渲染目標(陣列和 3D 紋理)的支援,同時修復了導致 Ryujinx 忽略渲染目標清除的錯誤。 隨著這兩個地方的變化,人群現在實際呈現並且遊戲玩法並不那麼孤獨!

Switch模擬器Ryujinx進度報告2022-6月

馬里奧前鋒

Switch模擬器Ryujinx進度報告2022-6月

時光之帽 是另一款在標題螢幕前崩潰的遊戲,但奇怪的是,只有當玩家在故事中以某種方式前進時才會崩潰。 當著色器編譯由於多種原因發生時,紋理 ID 可能無效,因此透過 在訪問描述符之前檢查這種情況 ,我們可以避免與此相關的任何未對映的記憶體崩潰。

Switch模擬器Ryujinx進度報告2022-6月

時光之帽

Shader Cache 2。0 在很大程度上提高了許多臭名昭著的遊戲的可玩性,但這並不意味著它沒有 一些 缺點。 由於新的著色器專業化支援,需要在每次繪製時檢查此屬性; 這聽起來很麻煩,雖然總體上它並不像最初看起來那麼糟糕,但在包括超級馬里奧奧德賽和 異度之刃:決定版 在內的多款遊戲中都有與之相關的效能打擊。 riperiperi 自己承擔了 最佳化紋理繫結和著色器專業化檢查 。

Switch模擬器Ryujinx進度報告2022-6月

超級馬里奧:奧德賽 和 異度之刃:決定版 的效能恢復到了新的快取水平,而 塞爾達:荒野之息 的效能受到其它因素的限制,因此幾乎相同,但 FIFO 有相當大的下降,這表明模擬的 GPU 負載較少。 一旦遊戲體驗的其它瓶頸被轉移,這應該會在未來看到不錯的回報。 隨意檢查任何在新快取後感覺變慢的遊戲,希望它們恢復正常或至少關閉!

沒有什麼是免費的,它的代價是在幾個小時內破壞解析度縮放,然後 更新新的紋理繫結方法以考慮縮放 ,並且像 女僕向右跑 這樣的某些標題需要 考慮完整的池變化快取。

Switch模擬器Ryujinx進度報告2022-6月

女僕向右跑

Switch模擬器Ryujinx進度報告2022-6月

CPU/核心:

本月我們的 CPU 部分從一些 CS:101 開始。 對於不熟悉資料型別,更具體地說,如何 數字 的人,有很多方法可以做到這一點:整數、短、長、浮點等。以前 Ryujinx 使用 無符號 (必須為正) 短 來儲存運算元用途計數,最多佔用數字 65535。如果您嘗試儲存一個高於此的值,您將得到所謂的“整數溢位”,所有內容將再次回到 0! 像這樣限制自己主要只是最佳實踐,因為儲存更高值的資料型別通常在記憶體方面成本更高。 不幸的是,有些遊戲確實需要這些額外的資料,所以 型別被切換為一個 無符號整數 ,它的上限是一個相當荒謬的數字 2147483647,所以幾乎沒有機會需要更高的資料!

太閣立志傳V DX 現在是遊戲中的首領,也可能是其它遊戲中的首領(Switch 有這麼多的 gaammmmesss!)。

Switch模擬器Ryujinx進度報告2022-6月

太閣立志傳5 DX

Switch模擬器Ryujinx進度報告2022-6月

停止模擬目前有點像玩俄羅斯輪盤賭,但需要使用任務管理器。 問題是問題的原因不是單一的,而且隨著遊戲變得越來越複雜並且正在做不同的事情,許多最近的版本將在關閉時陷入假死。 隔離並解決了兩個這樣的問題 本月在 CPU/Kernel 空間 當呼叫“TerminateProcess”函式時,它將嘗試殺死所有正在執行的執行緒。 這裡的問題是 TerminateProcess 本身是在它自己的執行緒上觸發的。 有沒有人發現這個問題? 這個錯誤阻止了呼叫 TerminateProcess 的執行緒被取消排程,並在無限迴圈中將自身死鎖。

gdkchan 的大型記憶體別名更改的迴歸修復將 通過幾個月前導致 Windows 上的記憶體崩潰 在執行另一個遊戲後嘗試使用或切換遊戲時,這些可能最常觸發的。 最後, 整個核心記憶體分配器都被重寫 了,對我們的貢獻者和維護者來說更簡潔、更易讀。 這裡沒有預期的錯誤修復或效能改進,但與往常一樣,現在可能會有一些 5 美元的 JRPG 啟動。 記住孩子,編寫乾淨的程式碼!

服務:

暗黑破壞神II:復活是一個奇怪的流行標題,自最近的網路大修以來一直處於不確定狀態。 在這些更改之後,遊戲將在啟動時崩潰,因為較新的方法在同一執行緒上處理所有讀取和寫入呼叫,如果同時需要這些呼叫,則會導致死鎖。 透過 允許服務將其執行緒數增加到 2 ,遊戲將再次持續啟動。

Switch模擬器Ryujinx進度報告2022-6月

暗黑破壞神2:重生

然而,這個修復並不是防止其它問題所需要的全部。 由於允許程序是多執行緒的,因此您需要處理一個執行緒正在處理而另一個執行緒試圖響應的情況。 這個確切的問題導致其它使用套接字服務的遊戲,如精靈寶可夢 劍/盾,在啟動時崩潰。 這裡的解決方案是 從這些請求中返回單執行緒方法 ,但新增一個標誌來防止導致暗黑破壞神死鎖的阻塞問題。 將來,回到多執行緒方法將是處理這個問題的更準確的方法,但是為了讓所有東西都能很好地執行,所需的更改將是巨大且耗時的。 目前這個解決方案可以滿足所有遊戲的需求!

系統時間服務中的“TimeZoneRule”本月受到了一些喜愛,因為它在程式碼庫中的使用非常不理想,並且需要在使用它的任何地方使用副本。 透過使這個“blittable” (給它一個通用的表示,不需要在託管和非託管程式碼之間進行特殊處理),它可以在少數情況下減少 JIT 開銷,並潛在地提升任何可能成為效能瓶頸的領域。 隨後修復了 小錯誤 並修復了 時區 在 UI 上的顯示方式。

雜項:

每個人最喜歡的速射變化部分!

所有 XAML 檔案 都已格式化 ,元素現在應該保持一致和對齊。

終於添加了簡體中文翻譯 Avalonia 專案

上個月, 該專案的構建指令碼終於切換到專門針對 Windows 10。

Vulkan進展:

正如之前的報道中所說,Vulkan 本身的工作已經基本完成,如果您是 NVIDIA GPU 的驕傲擁有者,那將是一次非常棒的體驗! 但是,正如偏移量所述,實施 Vulkan 後端的主要目標之一是確保它(在某種程度上)與 AMD 和 Intel 的顯示卡和驅動程式都能很好地相容。 這不是一項小任務,並且試圖修復某些偶爾僅限於某一代顯示卡的錯誤,特別是當所有開發人員他們自己並不擁有某一帶顯示卡時,在這方面取得進展至少很難說。 具有諷刺意味的是,實際上應該是英特爾在這裡還不錯,因為雖然存在一些錯誤,但它們在架構中往往是一致的,與 AMD 似乎能夠召喚它們的頻率相去甚遠。

但…。 在我將自己捲入另一個 AMD 仇恨憤怒之前,讓我們看看一些已經為你們 AMD 人追蹤和修復的東西!

Switch模擬器Ryujinx進度報告2022-6月

精靈寶可夢:劍盾

Switch模擬器Ryujinx進度報告2022-6月

Switch模擬器Ryujinx進度報告2022-6月

馬里奧賽車8:豪華版

Switch模擬器Ryujinx進度報告2022-6月

Switch模擬器Ryujinx進度報告2022-6月

塞爾達傳說:荒野之息

Switch模擬器Ryujinx進度報告2022-6月

Switch模擬器Ryujinx進度報告2022-6月

火焰紋章無雙:風花雪月

Switch模擬器Ryujinx進度報告2022-6月

最後三個問題都是 Polaris架構 獨有的(任何 RX 400/RX 500 及以下),這真是讓人頭疼。 事實證明,當使用 ‘VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT’ 標誌時,這些卡完全破壞了帶有 mipmap 的 2D 陣列紋理。 透過強制複製而不使用此功能,可以以稍微緩慢的立方體貼圖建立為代價來解決該問題。 效能影響並不顯著,並且在大多數測試遊戲中應該相對不明顯。 謝謝,AMD!

當然,Team Red™ 擁有大約 2 萬個其它錯誤,但我們希望能夠接近尾聲。

結束語:

2022年上半年已經過去,很快就離我們而去,但下半年肯定有一些殺手級遊戲釋出! 一個新的 異度之刃3、尼爾、女神異聞錄、一個新的 索尼克 遊戲和另一個精靈寶可夢。 應該是幾個月的動作,是嗎? 再次感謝我們所有的貢獻者多年來讓我們繼續前進! 多虧了你們,我們才有希望在第一天看到上述所有工作。

和往常一樣,這是報告的HR招聘時間! 如果您瞭解一些 C#、。NET、3D 圖形或低階工程,您也可以幫助今年儘可能順利和修復錯誤。 如果這對您來說都是魔法,那麼捐贈給我們的 patreon 或積極參與測試和錯誤報告確實會幫助很多人。

大家下期見!