Citron 2026.02.1 "Pathfinder"
以下是機翻潤飾
存檔管理系統進行全面改革,並引入以下功能:
- 全域自訂儲存路徑:使用者現在可以為所有儲存資料指定一個全域目錄,
從而大大簡化備份和遷移過程
- 跨模擬器相容性:存檔檔案可以在不同的模擬器之間共用
- 儲存鏡像:NAND 快閃記憶體和自訂儲存位置之間的自動同步
- 每個遊戲的路徑覆蓋:每個遊戲都可以擁有自己的自訂存檔目錄
- 競態條件修復:解決配置變更期間可能導致保存資料損壞的執行緒問題
- 堆疊耗盡預防:修復可能導致模擬器當機的遞歸鏡像問題
- 路徑優先系統:正確的層級結構,優先考慮鏡像路徑和遊戲內路徑,而非預設路徑
- 初始同步功能:防止在模擬環境之外配置設定時覆蓋 NAND 快閃記憶體
- 動態路徑理解:智慧型偵測全域 NAND 位置與預設 NAND 位置
Citron 內建了全新的模組管理系統:
- 模組服務後端:用於處理模組操作的核心服務
- 下載對話框:使用者友善的介面,用於瀏覽和下載模組
- 安裝邏輯:自動將下載的模組安裝到正確的目錄
- 資料夾組織:按遊戲和類型智慧組織模組
- 右鍵選單整合:在遊戲清單中新增右鍵選單選項以管理模組
- Nx-Optimizer 整合:內建支援 MaxLastBreath 的 Nx-Optimizer 工具
- 支援遊戲標題 ID:自動偵測並按遊戲標題 ID 進行整理
Nintendo Switch主選單功能的初步實作:
- 系統小程式代理:ISystemAppletProxy,ILibraryAppletProxy,IOverlayAppletProxy
, IApplicationProxy
- 觀察者服務:狀態控制器的事件處理
- 小程式管理:圖書館小程式和主選單管理介面
- 選單列整合:新增 UI 選項,用於啟動 QLaunch/主選單
- 建置配置:已更新 QLaunch 服務的核心建置配置
分享和導入每個遊戲的配置:
- JSON 匯出:將遊戲特定設定匯出為可共享的 JSON 文件
- JSON 匯入:從其他使用者匯入設定配置
- 基本設定支援:用於共享的擴充設定基礎架構
- 系統狀態檢查:確保system.IsPoweredOn()檢查不會在模擬過程中執行
(必須在未執行遊戲時執行)
- INI 解析:JSON 和 INI 格式之間的正確轉換
管理遊戲庫的新功能:
- 給我驚喜!功能:隨機選擇遊戲(附骰子圖示)
- 遊戲隱藏:透過右鍵選單從遊戲清單中隱藏特定遊戲
- 隱藏路徑儲存:在 qt_config 中持久儲存隱藏的遊戲路徑
- 啟動動畫:遊戲初始啟動時的動畫圖示
- 強調色彩主題:可在使用者介面的更多部分自訂強調色彩
ETC2 紋理壓縮支援
- 新增對 ETC2 紋理壓縮格式的支援
- 提高了與使用這種行動裝置壓縮格式的遊戲的相容性
- 正確解碼和渲染 ETC2 壓縮紋理
紋理組件類型的完整基礎架構:
- SamplerComponentType 枚舉:用於紋理元件分類的新枚舉
- SPIR-V 後端整合:著色器編譯中的元件類型處理
- 著色器環境更新:支援著色器處理中的紋理元件類型
- 紋理通道最佳化:最佳化通道中的組件類型整合
- 快取與序列化:組件類型資訊的持久存儲
BCN Unswizzle 計算著色器
- 用於 BCN 紋理反旋轉的專用計算著色器
- 改進區塊壓縮紋理處理的性能
- 改進著色器編譯的建置系統
復古 CRT 顯示器模擬:
- 可設定掃描線:可調式掃描線強度和間距
- 螢光發光:模擬螢光餘輝效應
- 曲率:可選的螢幕曲率模擬
- 色彩溢出:真實的 CRT 色彩溢出效果
- 效能最佳化:對幀速率的影響最小
全面的記憶體管理以防止顯示記憶體洩漏:
- 保守/激進模式:使用者可選的顯示記憶體使用策略
- 垃圾回收:自動清理未使用的顯示記憶體資源
- 快取 GC 改進:使用正確的 static_cast 實作類型安全的垃圾回收
- 設定簡化:精簡的 GC 激進程度選項(僅提供關閉/輕度模式)
- 虛擬函數表產生:透過在 settings.cpp 中產生虛擬函數表修復連結器錯誤
Vulkan改進
- VK_KHR_buffer_device_address:緩衝區裝置位址支援的基礎架構
- 線柵格化回退:針對不支援的線柵格化模式的優雅回退
- 影像尺寸限制:將影像尺寸和複製範圍限制在 GPU 限制之內
- 查詢快取協調:與渲染通道邊界進行適當的協調
- 子模組更新:更新了 Vulkan 頭檔和依賴項
- 修復損壞的快取:修復著色器分配問題
渲染修復
- TAA AMD 圖形瑕疵:修正 AMD 硬體上的時間抗鋸齒圖形瑕疵和像素雜訊問題
- NVDEC 記憶體驗證:新增對 H264 解碼器和 VIC 的記憶體驗證
- 紋理快取:優雅地處理未映射的記憶體區域
- 整數紋理:修復 AMD 渲染器中由於著色器編譯問題導致遊戲無法啟動的錯誤
音訊渲染器 REV12 和 REV13 支援
- 擴展音訊渲染器以支援韌體版本 12 和 13
- 提高了與新遊戲的相容性
- 針對最新系統版本進行正確的音訊效果處理
音訊效果版本控制重構
- 改良的雙二階濾波器實作
- 修正了錯誤的修訂版本號(12 → 15)
- 改進音訊效果的版本檢測
- 增強型 AM 服務音訊處理
[Steam Deck 和 Gamescope 支援]
Gamescope 的 UI 完全重製
為了相容於 Steam Deck,對所有 UI 元素進行全面重構:
對話重構
- 關於對話方塊:重新設計遊戲視野顯示版面
- 配置對話框:重新建構配置選項卡和選項
- 控制器介面:專為僅使用遊戲手把導航而最佳化
- 多人遊戲對話:重新設計以支援觸控/遊戲手把輸入
- 更新對話框:相容 Gamescope 的更新通知
疊加層修復
- 效能疊加層:修復遊戲視野的顯示和尺寸問題
- 多人遊戲疊圖:修正多人遊戲疊圖的位置
- VRAM 監控:在顯示卡上正確顯示 VRAM 使用情況
解析度和顯示
- 修正 Gamescope 特有的 UI 和解析度錯誤
- 為條件邏輯添加了遊戲視窗檢測布林值
- 修正 Gamescope 程式碼路徑的 MSVC 編譯問題
[多人遊戲與網絡]
關鍵網路穩定性改進:
- SIGSEGV 修復:解決套接字處理中的段錯誤
- 套接字資料清理:正確初始化和清理套接字數據
- 表互斥鎖:為套接字表添加了互斥鎖保護
- 守衛與互斥鎖:bsd.cpp 中的執行緒安全套接字操作
- 套接字代理程式保護:套接字代理程式的互斥鎖定和刷新操作
- 競態條件修復:修復套接字關閉和資料包接收之間的競態條件
- CPU 資源不足問題修復:解決導致效能下降的忙碌等待問題
- 移除套接字重用:防止因重複使用已關閉的套接字而導致的問題
LDN 服務改進
- 已執行 SetProtocol 命令
- 已執行 SetWirelessAudioPolicy 命令
- 更好的本地無線遊戲協議處理
多人遊戲體驗改進
- 聊天室功能增強:新增功能和使用者介面改進
- 連結過濾:聊天中強大的 URL 連結過濾和清理功能
- 訊息過濾:SanitizeMessage 安全聊天顯示功能
- 競態條件修復:修復資料包發現競態條件
- 節點編號:確保節點從 1 開始,而不是從 0 開始
- 資料包互斥鎖:新增了可變資料包互斥鎖,以提高線程安全性
- 穩定性:sleep_for 為了控制時間,增加了穩定性參數,而不是產量參數
- 疊加層清理:正確清理多人遊戲疊圖資源
- ZA 連接問題:修正按字母順序排列連接的錯誤
[檔案系統和保存管理]
儲存路徑層級
- 正確的優先順序:鏡像 → 單局遊戲 → 全域 → 預設
- 在配置介面中正確顯示路徑
- 初始同步以防止 NAND 快閃記憶體被覆蓋
- 用於重新啟動正確同步的布林標誌
- 對全域與預設 NAND 位置的動態理解
- 基地位置確定邏輯
取得緩衝區歷史記錄的實作
PR:(nvnflinger 修復)
- GetBufferHistory 已在 nvnflinger 服務中實作
- 防止因缺少緩衝區歷史資料而導致的遊戲卡死
使用者介面
- 修復 FPS 計數器閃爍問題
- 已修復半幀率報告問題
- 更流暢的幀時間顯示
- 關閉時進行適當的覆蓋層清理
- 防止殭屍疊加進程
- 模擬停止時釋放資源
- 停止模擬時,正確釋放和回收記憶體
- 遊戲停止後減少記憶體佔用
- 針對 MSVC 和 Android 平台上的 core.cpp 編譯器進行了修復
- UI 元素採用一致的強調色
- 搜尋字段樣式改進
- 遊戲列表顏色一致性
- 配置對話框中的按鈕設計進行了現代化改造
- 淺色/深色主題文字修復
- NavigateToGamedbEntry 由於我們已實施內建並維護的 GitHub 相容性列表,
因此刪除了冗餘內容
- 自動相容性報告
- 與 GitHub 進行遠端列表同步
- 修復 QString 處理包含特殊字元的遊戲名稱的問題
- 改進 GitHub 解析邏輯
- 現在遊戲過程中可以使用解鎖幀率快捷鍵(Ctrl+U)
- 正確的快捷鍵註冊和處理
服務與 HLE
- 家長監護服務 (PCTL)
- 為韌體 18.0.0 及更高版本實作了服務存根
- QLaunch 相容性要求
- 為韌體 20.0.0+ 實作了介面存根
- 應用程式枚舉支援
- 已實作,SetVerifyOption 而非存根
- 改進的 SSL 憑證處理
- QLaunch 支援的各種服務實作
- 事件處理改進
錯誤修復
- 圖書館小程式凍結
* 修復庫小程式中的控制器凍結問題
- 快速啟動掛載
* 延遲啟動 EmuThread 以修復快捷方式啟動
- CLI 啟動掛載
* 主遊戲循環的延遲遊戲啟動
- 堆疊耗盡
* 防止遞歸儲存鏡像當機
- 競賽條件
* 保存鏡像中的多線程修復
- 顯示記憶體洩漏
* 綜合顯示記憶體管理系統
圖形修復
- 黑色方塊
* 移除導致偽影的 alpha_to_coverage
- TAA AMD 噪訊
* AMD GPU上的修復時間抗鋸齒
- 未映射記憶體
* 優雅地處理未映射區域
平台修復
Linux
- Clang 編譯
* 多個 Clang 嚴格規則修復
- PGO 檔案路徑
* 修正 Clang PGO Linux 檔案路徑命名問題
- Linux 命令列介面
* 修復 CLI 更新功能
Windows
- MSVC 浮點數
* 新增浮點數要求類型轉換
Android
- Android 靜態轉換
* 修正多個針對警告的 static_cast 問題
* 阻止模擬運行時進行 RomFS/ExeFS 轉儲
* 使用作用域儲存處理外部儲存權限
* 雙精度浮點數到靜態型別轉換
macOS
- macOS 輸出顯示
* 靜態型別轉換要求
[基礎設施和建造系統]
CMake 更改
- 已將模組下載器檔案新增至建置中
- 已將外部二進位檔案切換到 yuzu-mirror
- QLaunch 服務的建置配置更新
依賴關係
- 更新 Vulkan 子模組
- 外部依賴組織
代碼品質
- 已移除未使用的標題 ID
- 多人遊戲組件中的程式碼清理
- 統一的程式碼格式
已知問題
- QLaunch 支援尚處於實驗階段,可能無法相容於所有系統配置
- 部分遊戲在遷移過程中仍可能遇到與新存檔路徑系統不相容的問題
- 不同 GPU 廠商的 CRT 著色器可能有細微的視覺差異
[升級說明]
保存資料遷移
如果是從 0.12.25 版本升級:
- 升級前請備份存檔
- 新的存檔路徑系統將自動偵測現有存檔
- 配置自訂儲存路徑 Emulation → Configure → Filesystem
- 如果您希望自動備份到輔助位置,請啟用鏡像功能
設定更改
- VRAM GC 激進程度簡化為僅關閉/輕度
- 現在可以透過 JSON 匯出共享每個遊戲的設定
新增權限(Android)
- 新增了對具有作用域儲存支援的外部儲存目錄的讀取/寫入/管理權限
https://git.citron-emu.org/Citron/Emulator/releases
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.122.211 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Emulator/M.1769949309.A.ABE.html
※ 編輯: playlive (111.255.122.211 臺灣), 02/01/2026 20:43:56