4.8 KiB
Ori Wwise Affinity Fix v1.0.0
针对《奥日 2:精灵与萤火意志》一个特定 Wwise DLL 构建的非官方兼容补丁。
本机定位到的触发链:音频读取线程的 SetThreadAffinityMask 失败(错误 87),初始化失败后的句柄清理与存活线程形成危险时序,随后访问冲突。补丁让通过指定 setter 配置的音频线程使用 Windows 默认调度,避开这条失败路径。
适用范围
同时参考故障表现、Wwise streaming I/O 初始化报错、音频工作线程崩溃,以及下面的完整文件哈希。0xC0000005 本身不足以判断适用。
原始目标文件:游戏目录下 oriwotw_Data\Plugins\AkSoundEngine.dll。
大小:2,719,232 字节
原始 SHA-256:
8F90A4A3856540CB97D03CA07B4BB10B7A08F7B4AB3C524BE2BEC1AFDD29FECA
补丁后 SHA-256:
62B2079A988D23EB251D4E83366AC04068A6F47E0D38EFE92A76DF022826F9F0
SDK 字符串相同不代表 DLL 完全相同。安装器会拒绝未知版本,不提供绕过哈希限制的选项。
安装
要求 Windows x64 和 PowerShell 7;本包不安装或升级任何软件。
- 解压整个压缩包。
- 正常退出所有奥日 2 进程。
- 双击
Install.cmd。 - 按提示输入包含
oriwotw.exe的游戏根目录。 - 成功后直接使用原来的游戏入口启动。
文件夹没有写入权限时,脚本会报错;在确认目录正确后,可以由用户在具备该目录写入权限的 PowerShell 7 中执行。脚本不会自行获取管理员权限。
命令行方式:在本包解压目录打开 PowerShell 7,替换下面的示例游戏路径。
& '.\Ori-AudioFix.ps1' -Action Check -GameDirectory 'D:\Games\Ori and the Will of the Wisps'
& '.\Ori-AudioFix.ps1' -Action Install -GameDirectory 'D:\Games\Ori and the Will of the Wisps'
默认动作是 Check,只检查。分享版要求明确提供游戏目录,不采用研究机器上的默认路径。
还原
退出游戏后双击 Restore.cmd,输入同一个游戏目录。也可以执行:
& '.\Ori-AudioFix.ps1' -Action Restore -GameDirectory 'D:\Games\Ori and the Will of the Wisps'
原文件保留在 DLL 旁边的 AkSoundEngine.dll.before-ori-affinity-fix,还原前后都会验证哈希。不要删除该备份。
游戏更新或平台校验可能恢复原文件。若 DLL 已变为新版本,应重新研究兼容性,不要强行套用本补丁。
修改原理
目标:CSharp_AkThreadProperties_dwAffinityMask_set。保留空指针检查,把它写入的亲和性值改为 0。此 DLL 本身会在掩码为 0 时跳过显式核心绑定。
函数 RVA:0x121F0
文件偏移:0x115F0
校验区域:16 字节;实际变化:8 字节
原始:48 85 C9 74 03 89 51 04 C3 CC CC CC CC CC CC CC
补丁:48 85 C9 74 07 C7 41 04 00 00 00 00 C3 CC CC CC
这个 0 表示使用 DLL 已有的“不显式绑定”路径,不是向 Windows 请求零个可用核心。补丁不关闭音频,不修改系统全局调度或游戏平台授权接口。
未知哈希、原始指令不符、备份不符或游戏仍在运行时,安装器会停止。多个目录之间不构成整体事务,请逐条检查输出;每份原文件都单独保留备份。
验证范围
已在一台 Windows 10 22H2 主机上完成:原始故障跟踪、截断掩码的失败对照、取消绑定后的临时验证、安装后的普通启动和非零音频信号检查。用户确认最后一次普通启动为主动退出。
主测版本 Unity 2018.4.11f1 / Build Id 5257;另一份 Unity 2018.4.24f1 / Build Id 8978 具有相同音频 DLL,已完成安装校验,本轮未单独运行验证。尚无大规模成功率、长时间稳定性或性能结论。
为什么该游戏线程的绑定被拒绝仍未完全查明;这里提供的是有对照实验支持的兼容方案。完整证据层级、限制和微软文档引用见 RESEARCH.zh-CN.md。
文件清单
Ori-AudioFix.ps1:核心检查、安装和还原逻辑。Interactive.ps1、Install.cmd、Restore.cmd:交互入口。RESEARCH.zh-CN.md:技术报告。COMMUNITY-REVIEW.zh-CN.md:网络排障方案的来源、适用条件,以及限制核心与本补丁的区别。environment.json:相关系统、硬件与驱动信息,不含序列号和账号。EVIDENCE.json:脱敏后的实验结论摘要。SHA256SUMS.txt:包内文件校验值;另有压缩包外部 SHA-256 文件。
压缩包不含游戏 DLL、完整游戏、原始转储、原始日志或用户存档。报告中的本地原始证据索引用于说明研究来源,不代表这些原始文件随包分发。
反馈建议包含系统构建、CPU 标识与逻辑处理器数、原始 DLL 哈希、关键错误和测试时长。请先移除个人路径,不要在公开评论中上传完整内存转储。