KIRA☆KIRA 语音不中断补丁

适用于**汉化版**（`KIRA☆KIRA.exe`）。让播到一半的角色语音不再被点击或文本推进打断。

## 安装

1. 把 `语音不中断.exe` 复制到游戏根目录，与 `KIRA☆KIRA.exe` 同级：

   ```
   KIRA☆KIRA 煌煌舞台\
   ├─ 语音不中断.exe      ← 放这里
   ├─ KIRA☆KIRA.exe
   └─ game\
   ```

2. 双击 `语音不中断.exe` 启动游戏（不要直接点游戏图标）。

3. 正常游玩即可。会弹出一个命令行窗口，请保持它打开；游戏退出后它自动关闭。

就这样，没有别的步骤。

### 怎么确认生效

进入有语音的对话，语音播放时点击推进——语音会继续播完，不再中断。

命令行窗口里也会显示修补记录，形如：

```
已修补副本 0x25C00A0（累计 1 处）
已修补副本 0x5102350（累计 2 处）
已生效：N 份副本均为 8
```

### 卸载

什么都不用还原——直接双击 `KIRA☆KIRA.exe` 正常进游戏即可。

本补丁只修改运行中的进程内存，**磁盘上的游戏文件一个字节都没有改动**。
想彻底删掉，删除 `语音不中断.exe` 和同目录下自动生成的 `voice_patch.log` 即可。


## 实现原理

汉化版的引擎模块（含负责文本显示的 `scrmsg`）被打包在加密容器 `KIRA.chs` 里，由加壳启动器
解密后直接交给引擎。磁盘上的同名文件对它无效，所以常规的文件替换式补丁不起作用。

但解密后的模块一定会加载进进程内存，且实测其代码与原版**完全一致**（仅中日标点编码不同）。
补丁因此在游戏运行时定位内存中的 `scrmsg`，把其中一个字节改掉：

```
snd.se_stop(24 + slot)   →   snd.se_stop(8 + slot)
        ↑ 语音通道 24..31          ↑ 8..15，对话时无声音
```

效果：每行文本结束时那条"清理语音"的调用照常执行、槽位记录照常释放，但它不再命中有声音的
通道，正在播的语音因此得以播完。菜单、回想、场景切换等**本来就应该停止语音**的路径不受影响。

启动器会持续监视：引擎若重新加载模块，会立即补上（一局内通常会命中多处副本）。

---

## 常见问题

**Q：为什么不能直接双击游戏图标？**
补丁改的是进程内存，必须由它来启动游戏才能生效。直接启动游戏就是原版行为。

**Q：游戏换目录了还能用吗？**
能，只要 `语音不中断.exe` 和 `game\` 文件夹一起搬。程序按自己所在位置查找游戏，没有写死路径。

**Q：杀毒软件报警？**
程序会读取并修改另一个进程的内存，这类行为容易被启发式引擎误判。

**Q：其他汉化版/日文原版能用吗？**
本补丁针对此汉化包的 `scrmsg` 布局。日文原版不需要它（原版可用文件替换式补丁，补丁暂未提供）。
换其他汉化版可能失效。