作者playlive (???)
看板Emulator
标题[新闻] shadps4 v0.11.0
时间Fri Sep 19 20:39:26 2025
shadps4 v0.11.0
以下是机翻
[核心]
- 记忆体映射可执行记忆体
- 在 INSERTQ/EXTRQ 中将高位元清零
- 修复 Windows 上唯读档案的取消映射问题
- 将HLE函式库的 RegisterLib 名称标准化
- 档案系统:修复open中建立标志的处理问题
- 如果在 param.sfo 中 CONTENT_ID 为空,尝试使用 TITLE_ID 作为备用
- 在遇到 ud2 时新增一个不可达标志,以避免陷入无限回圈
- 麦克风支援
- 仅在使用不同建置版本时才更新组态
- 核心:如果 DirectMemoryQuery 位址过高则返回错误
- 用於外部控制的简单 IPC(进程间通讯)
- 档案系统:修复对标准控制码执行 close 呼叫时的错误行为
- 通讯端修复
- 在 MntPoints::IterateDirectory 中新增.和..的条目
- 记录使用者 CPU、总记忆体和作业系统
- 档案系统:与目录相关的修复
- 记忆体:在 posix_munmap 中对齐大小和位址
- 档案系统:抽象化目录档案的处理
- 用更具可携性的解决方案取代直接使用 wrgsbase 和 rdgsbase
- 组态:新增呈现模式选项
- 游戏特定组态
- 改善记忆体位址验证逻辑
- 除对符号版本号(version_major 和 version_minor)的检查
- 修复建立执行绪上的 MXCSR 和 FPUCW 暂存器
- 发生弹性记忆体不足时,MapMemory 记录错误
- 如果系统中没有音讯输入装置,则开启一个虚拟音讯输入装置
- Ds4 喇叭音讯
[Libs]
- 新增遗失的 mprotect 汇出功能
- IME 修正
- video_out:支援内部解析度
- 实作 sceKernelGetSystemSwVersion
- 实作 sceAudio3dTerminate
- 实作 sceAudioOutGetLastOutputTime
- 注册 posix_rename
- 实作 sceKernelError
- 使用自订 usb 函式库
- inet_ntop 和 inet_pton
- 从主机系统中撷取子网路遮罩和预设闸道
- 实作简单的 DNS 名称解析
- 在 AudioOut 中传回已排入伫列的样本数
- 在开启摇杆前传回错误
- scePadResetOrientation
- 修正 sceAudioOutOutputs
- 修正 Windows 上的 RetrieveNetmask
- 网路:修正各种与通讯端相关的问题
- sys_getpeername
- 实作 ORBIS_NET_CTL_INFO_HTTP_PROXY_CONFIG
- 修正 get/setsockopt 层级
- libkernel:更多用於 OpenOrbis 相容性的网路函数
- libSceAppContent:使用 DLC 资料夹的最後 16 个字元来确定授权标签
- 使 libSceRtc 完全 HLE(高级别模拟)
- 修正影片/动画中的绿色伪影(ffmpeg)
- 选取支援
- libSceAppContent:从附加内容 param.sfo 档案确定授权标签
- 修正 sceVoiceGetPortInfo
- 修正处理 RFC 3339 格式的日期
- libSceNpParty:将未在派对中的函数设为存根
- 新增 stubbed libSceNpProfileDialog 函式库
- 更好的 libSceMove 存根
- 更好的 libSceCamera 存根
- 在 GetSocketOptions 中实作 ORBIS_NET_SO_ERROR_EX
- 改进的 libSceHmd 存根
- libSceHmdSetupDialog 存根
- libSceVrTracker 存根
- 号志:反转优先顺序
- 号志:修正取消/删除时确定等待状态的问题
- 实作 send/recvmsg
- libkernel:如果 mmap 的长度为 0,则传回 EINVAL
- SaveData 修正
- 处理取消和清除中的空事件标志
- AF_UNIX 初步支援
- Np 函式库清理
- 实作 sceKernelIsInSandbox,更新 OrbisSysModule 列举
- equeue:sceKernelWaitEqueue 的一些修正
- 实作 getargc 和 getargv
- sceGnmUnmapComputeQueue 的简单实作
- 核心:对 condvars 的改进
- 核心:更多执行绪程式码清理
[Shader 重编译器]
- 修复与指令相关的边缘案例
* 修复 V_ADDC_U32 进位 (carry-out) 边缘案例
* 修复 ff1_i32_b64 不接受 vcc 作为其参数的问题
* 修复当着色器包含地址计算时,不应清除 HTILE 的问题
* 修正在本地着色器中实例 ID 撷取不正确的问题
* 修复当不支援 bary 座标时,载入不正确的问题
* 修正 attribute 中的 bary coord 函数
- 着色器与图形管线
* 重组资料共享操作并实作 GDS(图形资料共享)
* 实作 ff1 与子群组操作 (subgroup ops)
* 实作客体重心座标 (guest barycentrics)
* 实作 V_CMP_GT_U6 指令
* 实作用於短整数/位元组的 MUBUF 指令
* 实作 V_ADD_F64 并从 SGPR 载入 64 位元浮点数
* 改进着色器汇出的准确性 (第一部分)
* 在取用着色器 (fetch shaders) 中处理偏移量和格式覆写
* 在顶点取用着色器中支援多个属性使用相同的载入
* 当使用曲面细分 (tessellation) 模拟原始类型时,不发出 Layer
* 支援 PointSize 和 ViewportIndex 属性
- 效能与最佳化
* ir_passes:折叠具有 ff1 模式的 readlane
* 以属性除数 (attribute divisor) 取代缓冲区提取 (buffer pulling),
用於实例步进速率 (instance step rate)
* 为强韧性重制尖锐追踪 (sharp tracking)
* 改进透过环形缓冲区传递的属性启发式 (heuristic)
* 指令与控制流
* control_flow_graph:将空条件分支视为无操作 (noop)
* 使用 VM 位元进行条件丢弃 (conditional discard)
* V_ALIGNBYTE_B32 和 V_ALIGNBIT_B32 指令
* 在 ParseCopyShader 中处理 S_LSHL_B32
* 在 S_FF1_I32_B64 中处理 ExecLo 来源
* 允许在 LoadBuffer/StoreBuffer 中的缓冲区地址参数中使用向量和纯量偏移
- 其他
* ir:当采样器设定 force_degamma 时,在着色器中执行去伽玛 (degamma)
* 初始化所有 ClipDistance 和 CullDistance 值
* 应用浮点类型用於浮点缓冲区原子操作 (atomics)
* constant_propagation_pass:处理更多位元运算指令
* 放宽双重来源混合 (dual source blending) 断言,以允许最多两个目标
* vector_interpolation:处理一些断言
* image:不要为区块编码格式设定储存使用 (storage usage)
[GPU]
- texture_cache(纹理快取):将深度解析的新影像改回资源的最大值
- texture_cache:支援 GPU 修改的线性影像非同步下载
- buffer_cache(缓冲区快取):恢复上传批次处理和临时缓冲区功能
- vk_rasterizer(Vulkan 点阵化器):当没有绑定帧缓冲区时,将渲染区域设定为
视窗剪裁区
- renderer_vulkan(Vulkan 渲染器):处理更多杂项 GPU 设定
- vk_instance(Vulkan 实例):移除深度夹取控制功能的使用
- liverpool_to_vk(Liverpool 到 Vulkan 转换器):清除值不使用重新映射的格式
- vk_pipeline_cache(Vulkan 管线快取):为 R8Srgb 和 B5G6R5 增加备援方案
- texture_cache:将缓冲区影像高度限制在微图块高度内
- vk_rasterizer:改善模板清除
- texture_cache:在体积纹理的复制过程中不修改 mip 高度
- video_core(影像核心):垃圾收集器(第一部分)
- video_core:重构图块管理器
- texture_cache:仅当影像位址大於零时才将影像下载排入伫列
- video_core:修复一些结构比较
- vk_pipeline_cache:清理图形键刷新
- renderer_vulkan:恢复色彩写入动态状态
- vk_graphics_pipeline(Vulkan 图形管线):当不支援独立的剪裁/夹取控制时,
优先使用深度剪裁
- vk_pipeline_cache:将储存影像新增至描述符堆中
- vk_scheduler(Vulkan 排程器):在 RenderState 中正确初始化 Vulkan 结构
- renderer_vulkan:当混合参数被停用时忽略它们
- vk_rasterizer:在解析中设定影像旗标位元
- liverpool:在 PixelPipeStatDump 上写入有效的查询
- amdgpu:以 GPU 周期报告 GPU 效能计数器
- vk_rasterizer:仅在执行索引绘制时对基本图元重新启动进行断言
- video_core:上传未映射页面周围的缓冲记忆体
- video_core:解决各种 UE 错误
- video_core:在执行深度汇出前检查 DB_SHADER_CONTROL 暂存器
- texture_cache:确保回读影像被及时下载
[Qt 介面]
- 扩展 Qt 侦测功能,支援多个磁碟机
- 修正 GUI 模拟器语言
- 音量滑杆,可在全域层级调整游戏音量
- 在非官方主线分支上停用自动更新
- 新增预设的奖盃音效
- 在设定视窗中新增「读回」(readbacks)的开关
- 仅在 AppVer 与游戏版本匹配时套用金手指/补丁
- 多个控制器:选择活动中的控制器并设定预设控制器
- 新增可自订的控制器快捷键
- 重映射 GUI - 更多小幅修正
- 修正游玩时间 - 未每分钟储存的问题
- 键盘/手把设定的通用预设名称已翻译成目标语言
- Qt:更新至 6.9.2 并移除 Mac 的暂时解决方法
- Qt:强制为键盘/滑鼠字串映射设定顺序,以防止重复的组合映射
- 将 QT 外挂程式移至 Windows QT 版本的 qtplugins 资料夹
- 新增启用/停用日志记录的开关
- Qt:在等待输入时,防止重映射/快捷键对话框储存或取消
- 新增选项,可在设定中更改 DLC 路径
- 如果可用,使用更新的图示、音乐和背景图片
- Qt:新增 FSR 选项至设定 GUI
- 增加描述文字框的大小
- 日志预设功能
- QT:调整奖盃检视器(TrophyViewer)的大小并翻译「日志」分页
- QT:为游戏特定设定新增 GUI
- QT:将「日志」分页新增至「开启设定时的预设分页」
- Qt:在 GUI 中为新的实验性设定新增描述
- QT:修正补丁的「不相容性通知」
- Qt:将游戏特定和非游戏特定的项目分组到相同的分页中
- QT:在验证工具提示中注明 Vulkan SDK 要求
https://shadps4.net/downloads/
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.255.100.96 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Emulator/M.1758285571.A.309.html