作者:
playlive (player)
2025-10-03 20:49:13CITRON v0.8.0
以下是機翻潤飾
主要遊戲相容性更新
BOTW 和 TOTK 支援 - 突破性更新
此版本與最新遊戲版本完全相容:
薩爾達傳說:曠野之息 v1.8.2 - 現已全面支援!
薩爾達傳說:王國之淚 v1.4.2 - 解決啟動循環和控制器當機問題!
已修復的問題:
不正確的 HID 狀態實作導致的啟動循環問題
遊戲啟動時出現「無控制器」當機
REV15 遊戲的音訊劈啪聲和穩定性問題
兩款遊戲的效能和穩定性都得到提升
[新功能]
音訊系統 - 完整的 REV15 實施
這是我們迄今為止最大的音訊更新!
REV15 核心功能
- 音訊渲染器 REV15:完整實作 SDK 版本 15 音訊渲染器,具有原生浮點處理功能
* 原生浮點雙二階濾波器,音質卓越(BiquadFilterParameter2)
* 正確處理語音輸入參數 V2 格式(0x188 位元組 vs. 舊版 0x170)
* 分離器目標 V2b 支援雙二階濾波器參數(0xA8 位元組)
* 採用 FP16/FP32 最佳化的多抽頭雙二階濾波器處理
* 雙係數儲存:同時保持浮點和定點以實現相容性
HID 採樣數修復(關鍵)
- 修正了啟動循環錯誤:HID 原子儲存採樣數現在正確地將輸入狀態值加倍
- 解決 SDK20 遊戲中的控制器偵測問題
- 修正了導致 TotK v1.4.2 和 BotW v1.8.2 無法啟動的問題
新的音頻子系統
- AudioSnoopManager:DSP統計與效能監控系統
* 即時 CPU/DSP 使用情況追蹤
* 語音投放和命令投放計數
* 緩衝區欠載/溢出檢測
- AudioSystemManager:Applet 音訊狀態管理
* 暫停/恢復對小程式轉換的支援
* 主音量控制(輸入/輸出/錄音)
* 調試懸吊功能
* 小程式資源用戶ID註冊
- FinalOutputRecorder:完整的輸出記錄實現
* 用於音訊擷取的共享環形緩衝區
* ITU-R BS.1770 響度測量支援
* 工作緩衝區管理和緩衝區生命週期
音訊處理增強功能
- FFT(快速傅立葉變換):Cooley-Tukey 演算法實現
* 實數到複數和複數到實數的變換
* 具有逆支援的複數到複數變換
* 適當的位元反轉和工作緩衝區管理
- 響度計算器:專業響度測量
* 符合 ITU-R BS.1770標 準
* LUFS(響度單位全量程)測量
* 具有層架和高通級的 K 加權濾波器
* (400 毫秒)、短期(3 秒)和綜合響度
- 限制器效果:全功能動態處理器
* 攻擊和釋放時間控制
* 閾值和比率參數
* 妝效增益補償
* 具有峰值檢測的包絡跟隨器
- 音訊設備增強功能:
* 設備獲得對 AudioInSystem 的支援
* 改進的緩衝區管理實用程序
* ADPCM 輔助函數
[視覺增強]
ScaleFX 濾鏡- 全新像素藝術升級
- 基於邊緣偵測的像素藝術升級演算法
- 保留銳利邊緣,同時減少像素化
- 六種模式檢測類型(水平、垂直、對角線)
- 可配置強度的次像素抗鋸齒
- 角落處理以提高品質
- OpenGL 和 Vulkan 均可使用
- 用於硬體最佳化的 FP16/FP32 變體
- 基於 libretro 的 ScaleFX 實現
- 非常適合低解析度遊戲和像素藝術風格
Lanczos 濾波器- 高品質重採樣
- 專業級重採樣濾波器
- 基於 Sinc 的插值,可實現最大清晰度
- 極少的振鈴效應
- 非常適合整數縮放場景
0.25X 四分之一解析度- 極限性能模式
- 以 180p/270p 渲染,實現 720p/1080p 原生
- 渲染速度提高四倍
- 非常適合超低階硬體
- 性能測試和分析
- 標記為實驗性(可能會造成視覺偽影)
效能監控
- CPU 與 GPU 溫度顯示(Linux):即時硬體溫度監控
* 顏色編碼的溫度指示器
* 桌面和 Android 支援
* 非侵入式覆蓋整合
- 電池百分比(Android):效能覆蓋中的電池狀態
* 充電百分比顯示
* 充電狀態指示燈
* 溫度和電池資訊
效能 - 設定檔引導最佳化 (PGO)
推出 PGO 建置系統 - 效能提升 10-30%!
- 兩階段最佳化過程:
* 第 1 階段:儀表化建構收集運行時分析數據
* 第 2 階段:最佳化建置使用設定檔資料進行智慧最佳化
- 多編譯器支援:
* MSVC 和 FASTGENPROFILE 可實現快速分析
* 帶有設定檔產生/設定檔使用的 GCC
* Clang 與 llvm-profdata 整合
- 自動建置腳本:
* pgo-build.ps1適用於 Windows (PowerShell)
* pgo-build.sh適用於 Linux/macOS(Bash)
* fix-pgo-dll.ps1解決 MSVC DLL 問題的實用程序
- CMake整合:
* DCITRON_ENABLE_PGO_GENERATE=ON 用於分析構建
* DCITRON_ENABLE_PGO_USE=ON 最佳化建置
* 自動 PGO 執行時期 DLL 偵測與部署
[改進 ]
音訊系統架構
REV15實作細節:
- 雙二階濾波器處理:
* 為維持相容性,保留舊定點 Q2.14 轉換
* REV15+ 遊戲的原生浮點處理路徑
* 帶夾緊的適當係數轉換
* 增強過濾器狀態初始化
* ApplyBiquadFilterFloat2() 對於本機浮點係數
- 命令生成:
* 浮點和定點處理之間的智慧選擇
* 透過行為標誌自動偵測 REV15 功能
* 針對 REV10+ 遊戲的多抽頭雙二階最佳化
* 與語音和效果情境的適當整合
- 參數處理:
* VoiceInParameterV2 結構(0x188 位元組)用於 REV15 語音
* InParameterVersion2b(0xA8 位元組)用於拆分器目的地
* 雙儲存系統:biquads(s16)和biquads_float(f32)
* 混合修訂支援的適當步幅計算
UI/UX改進
- 可調整的配置視窗:可調整大小的設定對話框,具有適當的捲動支援
- 圖形和系統選項卡修復:正確的調整大小和滾動行為
- 強調色系統:可自訂的 UI 主題和強調色
- 列佈局:改進遊戲清單列組織
- 狀態管理 UI:增強的保存狀態介面
建置系統和編譯器支援
- Clang 編譯器支援:完整的 Clang 編譯,支援 LTO
* 修復模板實例化問題
* 已解決警告抑制問題
* 正確的屬性處理
- MSVC 改進:
* 修復了 QColor 呼叫中的 C4305 截斷警告
* __builtin_assume_aligned 已停用 C2375 重新定義警告
* 正確的 PGO 運行時 DLL 處理
- CMake 增強功能:
* 便攜模式的自動用戶目錄創建
* 改進的依賴管理
* 更好的跨平台配置
平台支援
- Android 增強功能:
* 修復了 RAM 覆蓋中的即時當機問題
* 電池百分比和溫度顯示
* 改善資源處理
- Qt框架:
* 修復 QImage::mirrored()用法(錯誤地使用不存在的 flipped())
* 正確的狀態變化處理
* 更好的事件管理
[錯誤修復]
關鍵修復
- TotK/BotW 啟動循環:修正了 HID 採樣數不符導致遊戲啟動的問題
* 原子儲存採樣數現在正確地使狀態值加倍
- 控制器偵測:透過修復原子儲存狀態解決了「無控制器」當機問題
* 環形 LIFO 中的正確 SamplingNumber 傳播
* 修復 SDK20 遊戲控制器初始化
- 釋放後使用錯誤:解決了核心系統中的記憶體安全問題
- Android RAM Overlay 當機:修復啟用 RAM 顯示時立即當機的問題
[音訊修復]
- REV15 相容性:原生浮點雙二階處理可防止音訊失真
- 混合參數驗證:在髒參數模式下新增了混合計數的邊界檢查
- 分離器浮點係數:正確儲存並套用分離器中的雙二階濾波器
- 音訊穩定性:修復 REV15 遊戲中的當機和劈啪聲
[編譯修復 ]
- Clang 警告:解決了所有 Clang 編譯警告
- MSVC 截斷:修復顏色轉換中的 C4305 警告
- Discord RPC:應用了 wclass-memaccess 修復補丁
- RapidJSON:編譯器相容性補丁
- STB 影像:溢出修復補丁(CVE 緩解)
[UI修復 ]
- 配置視窗滾動:所有選項卡中的正確滾動行為
- Qt 垂直佈局:修復了棄用的值用法
- 狀態改變事件:正確處理 checkStateChanged
- 主題應用程式:正確的 theme.h 包含和初始化
[建置系統修復]
- 環形緩衝區對齊:穩定且可預測的 64 位元組對齊
- 動態 Fastmem:刪除了 MSVC 特定的指標分配
- 補丁應用:修正補丁中的 -p0 標誌使用
- 版權標題:為新檔案新增了適當的 SPDX 標題
[技術改進]
程式碼架構
浮點係數儲存:
- 雙二階濾波器的雙儲存系統可保持精度
* 舊版(REV1-14)的舊 s16 定點
* f32REV15+ 精確度的原生浮點數
* 自動選擇依據 IsVoiceInParameterV2Supported()
- 完全保持向後相容性
拆分器上下文增強:
- V2b參數格式支援(0xA8位元組)
- 分離器目的地中的雙二階濾波器存儲
- 正確處理擴展參數結構
- splitter_float_coeff_supported 旗幟管理
類型安全:
- 新增 use_float_biquads 和 use_float_coefficients 標記
- 參數結構的適當範圍管理
- 增強參數解析的錯誤處理
- 消除變數陰影問題
[著色器系統 ]
ScaleFX 實作:
- 6 種邊緣偵測模式(水平、垂直、對角線)
- 可配置強度的子像素抗鋸齒(SFX_SAA)
- 顏色閾值調整(SFX_CLR = 0.35)
- 角落處理以提高品質
- FP16 最佳化,支援 AMD/NVIDIA 擴展
Lanczos 改進:
- 最佳化的 sinc 函數計算
- 改進的視窗函數
- 更好的邊緣處理
[效能最佳化]
- PGO 基礎架構:設定檔引導最佳化,實現 10-30% 的收益
- 溫度監控:停用時零開銷
- 緩衝區管理:最佳化環形緩衝區實現
- FFT處理:高效的 Cooley-Tukey 演算法
https://git.citron-emu.org/citron/emulator/-/releases
=====================================================
Citron v0.7.1
以下是機翻潤飾
新功能
[輸入和控制]
- 滑鼠滾輪支援:增加了滑鼠滾輪支援,用於遊戲輸入直通,改善桌上遊戲體驗
- 六軸感測器驗證:增強六軸感測器驗證和錯誤處理,以提高控制器穩定性
[視覺增強]
- VRAM 監控覆蓋:添加了現代 VRAM 監控覆蓋,具有乾淨、整潔的 UI
- 時間抗鋸齒 (TAA):為 OpenGL 和 Vulkan 渲染器實現 TAA 支援
- 效能覆蓋改進:增強了效能覆蓋,具有拖曳行動功能和 Wayland 相容性
[音響系統]
- Audio REV13 渲染器:新增了 REV13 音訊渲染器支援,以提供更廣泛的遊戲相容性
- 音訊穩定性:主要的音訊穩定性改進和當機修復
- Audio REV15 渲染器:仍在積極開發中
[VRAM 管理]
- 高階 VRAM 模式:新增了高階 VRAM 模式,具有最佳化的記憶體使用率
- 瘋狂 VRAM 模式:實作了瘋狂 VRAM 模式,帶有洩漏預防機制
- 低 GPU 精度設定:新增了低 GPU 精準度設定,以在較低階硬體上實現最大效能
[平台支援]
- Qt6 遷移:透過 aqtinstall 3.3.0 整合完成到 Qt6 的遷移
- Wayland 最佳化:新增了 Wayland 特定的 UI 最佳化和效能改進
- Linux 編譯修復:解決了各種 Linux 編譯問題和 X11 巨集衝突
改進
[建置系統和 CI/CD]
- GitLab CI 大修:透過改進的建置配置對 GitLab CI 管道進行徹底改造
- Android 建置修復:修復了 Android 建置配置和依賴項
- 跨平台編譯:解決了 Linux、Android 和 Windows 平台的編譯問題
- Boost Process Integration:改進了 Boost.Process 整合,並帶有可選的組件處理
[著色器重編譯器]
- ISBERD 指令:實作 ISBERD 指令用於內部階段緩衝區讀取(有適當的錯誤處理)
- 0.7 和 0.7.1 ISBERD 實現的視覺比較
[記憶體管理]
- ZBC Clear 支援:新增了 OpenGL ZBC 清晰支援並重構了 ZBC 管理系統
- 記憶體洩漏修復:修復多個記憶體洩漏並提高穩定性
- VRAM 洩漏預防:在瘋狂模式下增強 VRAM 洩漏預防
[服務實作]
- NIM 服務:NIM(網路介面管理)服務已正確實作
- SSL/TLS 服務:SSL/TLS 服務實作完整,並包含適當的錯誤處理
- ACC:U0 服務:已根據 SwitchBrew 規格實作缺少的 acc:u0 函式
錯誤修復
[關鍵修復]
- 空指標取消引用:修正了 patch_manager.cpp 中的關鍵空指標取消引用
- 記憶體洩漏:解決了各個組件中的多個記憶體洩漏問題
- 音訊當機:修復與音訊相關的當機和穩定性問題
- 服務管理器當機:解決了服務管理器空指標導致的退出當機問題
[特定於平台的修復]
- Android 寬高比:修正 Android 上非 16:9 設定導致的寬高比當機問題
- Wayland 相容性:修復了 Wayland 特定的 UI 問題和效能覆蓋問題
- X11 巨集衝突:解決了 X11 巨集與枚舉值和 Qt 常數的衝突
- Linux 編譯:修復各種 Linux 編譯問題和依賴問題
[UI/UX 修復]
- 屬性視窗縮放:修復屬性視窗縮放問題
- 性能覆蓋:修復了性能覆蓋的拖曳移動功能
- VRAM 覆蓋:清理 VRAM 覆蓋佈局並消除視覺混亂
- Wayland UI:修復了 Wayland UI 層問題和取消切換功能
[建置系統修復]
- CMake 設定:修正 CMake target_compile_definitions 錯誤
- Boost Process:已解決 Boost::process 可選組件問題
- Qt MOC 產生:修正了條件編譯元件的 Qt MOC 生成
- 子模組初始化:解決了 GitLab CI 中的子模組初始化失敗問題
[恢復的更改]
- ISBERD 實作:由於穩定性問題,暫時恢復 ISBERD 指令實施
- 音訊增強:恢復了一些導致穩定性問題的音訊增強功能
- X11 巨集修復:恢復引入新問題的 X11 巨集衝突修復
技術改進
[代碼品質]
- 靜態轉換修復:新增了正確的 static_cast 用法以確保類型安全
- 變數初始化:修復未初始化變數的問題
- 錯誤處理:增強跨多個組件的錯誤處理
[表現]
- Fastmem 指標:解決了動態中的 fastmem_pointer 類型相容性問題
- Discord Rich Presence:修正了 Discord Rich Presence 計時器和編譯問題
- 環境變數:改進 SSL 和 Wayland 環境變數處理
[依賴項]
- RapidJSON:新增了 rapidjson 編譯器補丁,以提高相容性
- STBI:新增了 STBI_NO_SIMD 定義以提高效能
- 自動更新程式:使用 CITRON_USE_AUTO_UPDATER 選項使更新程式功能有條件
[測試與驗證]
- 增強新功能的測試覆蓋範圍
- 改進的錯誤報告和調試功能
- 更好的當機復原機制
[已知問題]
- FSR2 實施仍處於實驗階段(如 v0.7 所述)
- 一些內核事件處理仍然需要完成
- Wayland 效能最佳化可能需要進一步調整
- BOTW/TOTK 支援將包含在下次更新中,以支援其各自的最新更新 1.8.2/1.4.2
備註:
本次發布主要著重於穩定性提升、平台相容性,以及效能強化。
FSR2 與 TAA 的實作仍處於實驗階段,請謹慎使用
https://git.citron-emu.org/citron/emulator/-/releases/0.7.1