作者playlive (???)
看板Emulator
標題[新聞] shadPS4 v0.21.0
時間Sat Oct 31 15:29:21 2026
shadPS4 v0.21.0
以下是機翻
[核心]
- 正確檢查數位到類比輸入平滑處理的輸入來源
- cpu_patches:解決 Rosetta 2 錯誤翻譯否定純量比較的問題
- file_sys:在 stat 和 fstat 中回報穩定的檔案身分識別
- 允許對 /addcont 路徑進行檔案類型識別
- emulator:停止在開機時清除暫存資料
- 新增 PT_SCE_MODULE_PARAM 案例
- cpu_patches:修正位於任何模組之外的位址上的 JIT 修補
- core:修正 MemoryManager::Free 解除對已釋放範圍之外的記憶體對應
- file_sys:當客體路徑穿過一般檔案時,不要中止
- 在 TryWriteBacking 中使用 VMA 指標代替複製
- cpu_patches:解決 Rosetta 2 在 VMASKMOVPS/PD 上的當機問題
- 處理 ELF 中繼資料和工具鏈註解程式標頭 (program headers)
- common:在 AccurateSleep 中為每個執行緒重複使用一個高解析度可等待計時器
- 當無法讀取選用的 ELF 中繼資料片段時,不要中止
- cpu_patches:修正 Rosetta 2 VMASKMOV 變通辦法中的暫存器覆蓋問題
- renderdoc:新增 macOS 的函式庫名稱
- renderdoc:新增 macOS 的替代路徑
- lru_cache:修正 ForEachItemBelow 中的提早停止問題
- 避免在同一個執行緒上重新進入 Shutdown 時發生死結(deadlock)
- 在關閉時檢查 elf 資訊是否已初始化
[函式庫]
- kernel:實作與 Core::Net 整合的 I/O 事件佇列 API
- kernel:對非空目錄執行 rmdir 時回傳 ENOTEMPTY 錯誤
- app_content:實作 sceAppContentTemporaryDataMount
- kernel:如果在期限已過的情況下,在計時互斥鎖中嘗試不等待地上鎖
- usbd:實作用於虛擬 USB 媒體存取的 libSceUsbStorage HLE
- http:允許帶有周圍空白字元的標頭
- kernel, rtc:修正時區與日光節約時間 (DST) 計算
- music:實作 libSceMusicPlayerService HLE
- videodec2:排空暫掛的影格並使用 RAII 包裝
- usbstorage:修正 OrbisUsbStorageDeviceInfo 的佈局與填入
- app_content:實作 sceAppContentAddcontUnmount
- app_content:實作暫存資料的掛載與解除掛載
- np_auth 重寫
- Ajm:自動偵測並安全解析 ATRAC9 的 RIGF 標頭
- libSceVoice:對未連線的麥克風進行虛設常式處理,以修復 BO2 和 BO3 的當機問題
- net:在 sceNetGetSockInfo 中回報 recv_queue_length
- kernel:註冊遺失的檔案系統符號並修復 /dev/null 裝置
- kernel:當父目錄不存在時,從 mkdir 回傳 ENOENT
- kernel:寫入以唯讀模式開啟的檔案時,回傳 EBADF
- kernel:對於不合法的長度和唯讀檔案描述子,從 ftruncate 回傳 EINVAL
- kernel:當檔案不存在時,從 unlink 回傳 ENOENT
- pad:實作 scePadReadExt 與 scePadReadStateExt
- gnmdriver:修復從陳舊的環形緩衝區偏移量開始的重新對應運算佇列
- app_content:從連結的服務載入額外內容 ( SERVICE_ID_ADDCONT_ADD_n )
- app_content:填入附加內容授權金鑰
- app_content:修復授權金鑰與服務標籤
- playgo:修復語言遮罩 UB 與預設安裝速度
- kernel:修復 posix_rename 中的自我重新命名刪除與主機路徑追蹤
- music:實作 sceMusicPlayerServiceSetUsbStorageDeviceInfo
- kernel:實作 posix_flock 與 sceKernelFlock
- audio3d:修復對調的屬性 ID
- audio3d:修復對調的屬性 ID (OpenAL)
- kernel:改善 Neo 模式處理並實作遺失的 API
- kernel:當父目錄不存在時,從 open(O_CREAT) 回傳 ENOENT
- videodec:libSceVdecCore HLE 與 VideoCore 伺服器介面回呼
- np_trophy:修復白金獎盃永遠無法解鎖的問題
- threads:修復 Windows 中的堆疊基底值
- share_play:實作 sceSharePlayGetCurrentConnectionInfoA
- net:在 UDP 987 上回應 PS4 裝置探索
- np_score:修正一些不準確的回傳值與資料傳輸
- kernel:修復檔案系統驗證與 posix_select
- pad:回報 DualShock 4 觸控板高度為 942 而非 950
- kernel:當父層是檔案時,從 mkdir 回傳 ENOTDIR
- save_data:傳遞備份完成回呼
- fiber:在 Windows 上將纖程 (fiber) 堆疊從 GPU 追蹤的堆積中移開
- np_score:改善分數資料傳輸、可比較的日期以及好友排名的準確度
[視訊核心]
- 垃圾回收行程 (Garbage Collector)第 2 部分
- vk_runtime:在 CopyImageWithBuffer 中複製每個 Mip 級別
- 支援僅含樣板 (stencil-only) 的深度目標並將樣板大小調整解耦
- 修復 PM4 封包中的 CE/DE 計數器同步
- texture_cache:當其父影像首次建立時保留子資源資料
- texture_cache:在 ExpandImage 中不要複製過時的 CPU 髒污影像內容
- 修復全域 CE 任務排程
- texture_cache:捨棄被客體覆寫未追蹤邊緣的 GPU 修改影像
- video_core:處理 PM4 IT_GET_LOD_STATS 封包
- video_core:在影像重新整理時重設雜湊
- video_core:修復未縮放 (Ubscaled) 數字格式名稱
- vk_instance:在不支援擷取重播的驅動程式上支援 RenderDoc
- liverpool:跟隨鏈結的間接緩衝區而不返回
- liverpool:在執行封包之前,根據讀取的位移前進
- video_core:按維度比較子資源範圍
- vk_rasterizer:藉由剪裁框限制無附件繪製行程的渲染區域
- video_core:在常數引擎中處理 PM4 Type 2 與倒帶 (Rewind) 封包
- video_core:實作 PM4 串流輸出緩衝區更新
[著色器重新編譯器]
- 發出未定義的 64 位元整數
- 保留控制流圖 (CFG) 的直通邊緣
- 穩定 phi 取代 (deduplication) 順序
- 在 LDS 屏障分析中考量單例維度 (singleton dimensions)
- 從 Phi 折疊中排除 GetUserData
- 接受 S_SLEEP 作為排程提示
- 處理緩衝區快取無效指令
- 新增 fast_shader_math 設定以放寬浮點數規則
- info.has_derivatives.Assign 現在也會檢查 MimgModifier::CoarseDerivative
- 處理 HW_ID.SE_ID 讀取
- 支援 S_SENDMSG 中的 GsOp::EmitCut
https://shadps4.net/downloads/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.119.227 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Emulator/M.1793431764.A.606.html