Files
win-troubleshooting-notes-p…/ori-wotw-troubleshooting/补丁包/ori-wwise-affinity-fix-v1.0.0
..

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;本包不安装或升级任何软件。

  1. 解压整个压缩包。
  2. 正常退出所有奥日 2 进程。
  3. 双击 Install.cmd。
  4. 按提示输入包含 oriwotw.exe 的游戏根目录。
  5. 成功后直接使用原来的游戏入口启动。

文件夹没有写入权限时,脚本会报错;在确认目录正确后,可以由用户在具备该目录写入权限的 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 哈希、关键错误和测试时长。请先移除个人路径,不要在公开评论中上传完整内存转储。