由zhuang546制作

This user guide is in Chinese. If you are English user, you can ask AI for translation.

═══════════════════════════════════════════════════════════════════
安装
═══════════════════════════════════════════════════════════════════
将"shader fix.ini"放到Mods文件夹下的任意位置
将ShaderFixes中的内容放到ShaderFixes文件夹中
重启游戏或在游戏中按F10重载配置

═══════════════════════════════════════════════════════════════════
游戏版本更新后 hash 失效的修复指南
═══════════════════════════════════════════════════════════════════

游戏更新后阴影重新出现，说明 shader hash 变了。需要用hunting模式重新定位新hash，步骤如下：

检查d3dx.ini：
   1. 把 hunting = 1，开启hunting模式
   2. 把 marking_actions 改为：hlsl asm clipboard
   3. 游戏中按 Ctrl + F12 可查看各类快捷键，也可以在 d3dx.ini 里自定义。
      需要用到的快捷键是注释"rotate through all VISIBLE vertex shaders at the current scene."，即顶点着色器的定位快捷键
   4. 更改设置后，游戏中按 F10 重新加载 ini 设置。

 在游戏内定位新 hash：
   1. 进入 mod 角色的角色界面(bug能复现的场景)
   2. 按小键盘4/5（或自定义快捷键）在可见VS之间切换
   3. 当某个VS被skip预览时，整个角色身体阴影一起消失 → 它就是新的主体阴影的顶点着色器。按小键盘6（或自定义快捷键），程序会自动反编译shader并生成ShaderFixes\<新hash>-vs_replace.txt，并将hash保存在剪切板。然后请手动更新ini中的hash。
   5. 继续 4/5 切换，找下一个 skip 后让"小部件阴影"(护目镜/头发尖端等)消失的VS → 它是新的"alpha遮罩阴影VS"。同样按小键盘6（或自定义快捷键）生成vs_replace.txt并复制hash。如果找不到，那可能是你的mod角色没有"小部件阴影"，或者它们和主体阴影用同一个VS，那就不用改这个了。找到了，请更新hash。

Claude生成的技术原理说明：
ShaderFixes\<hash>-vs_replace.txt 文件必须存在。
没有这个文件，handling=skip 对 mod 角色由 commandlist 手动
发起的 drawindexed 不生效。文件里的代码本身不会真正
执行(因为draw被skip了)，它的作用是让 3DMigoto 在 CreateVertexShader
时就把这个shader纳入hook追踪，让后续的skip能够覆盖手动draw路径。
