# Ori Wwise Affinity Fix v1.0.0 针对《奥日 2:精灵与萤火意志》一个特定 Wwise DLL 构建的非官方兼容补丁。 本机定位到的触发链:音频读取线程的 `SetThreadAffinityMask` 失败(错误 87),初始化失败后的句柄清理与存活线程形成危险时序,随后访问冲突。补丁让通过指定 setter 配置的音频线程使用 Windows 默认调度,避开这条失败路径。 ## 适用范围 同时参考故障表现、Wwise streaming I/O 初始化报错、音频工作线程崩溃,以及下面的完整文件哈希。`0xC0000005` 本身不足以判断适用。 原始目标文件:游戏目录下 `oriwotw_Data\Plugins\AkSoundEngine.dll`。 ```text 大小: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,替换下面的示例游戏路径。 ```powershell & '.\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`,输入同一个游戏目录。也可以执行: ```powershell & '.\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 时跳过显式核心绑定。 ```text 函数 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 哈希、关键错误和测试时长。请先移除个人路径,不要在公开评论中上传完整内存转储。