Skip to content

v0.9.1 —— 面板改为发 Mod 原键 · 诊断包一次抓全 · ini 生成即体检

Choose a tag to compare

@jing-hy jing-hy released this 01 Oct 14:37
· 82 commits to main since this release

本版修好的问题

1. XXMI 界面里不出现"终末地"的启动按钮(我们自己的 bug)

ensure_injections() 里有两处写成了 log=log,而该函数没有名为 log 的变量 → 抛出 NameError、被外层 except 吞成一条 WARN → 于是 ensure_xxmi_game_folder() 从未执行,XXMI 配置里的 active_importer / enabled_importers 一直是空的 ⇒ XXMI 界面里不出现启动按钮。

2. 生成的 controller.ini 里可能混入"3DMigoto 不认"的行

新增 ini_lint:按 3DMigoto 源码规则体检生成的 ini —— 变量名合法性、初值能否被 %f 完整解析、是否重复声明、赋值左值是否已声明、[Key*] 键名与 run 目标是否存在,并配了 3 例测试(含"体检器真能抓住这个回归"的反向验证)。生成即体检。

3. elif 不是 3DMigoto 的关键字

[Present] 里的分档判断改成每档一个独立的 if … endif(每个 if 都有自己的 endif)。

4. EFMI 的 skip_early_includes_load 出厂默认值

纠正为 0 并配 config_initialization_delay = -1。原来那个纠正函数挂在已废弃、全库无人调用的 launch_migoto_loader() 上,所以从来没生效过;现在挂到「一键启动」必经的 launch() 上,并补了回归测试。

5. 诊断包 / 崩溃包改为"一次抓全"

  • 运行时每 5 秒采样:进程模块清单、相对上次新出现的模块、工作集内存、句柄数、线程数、两个关键日志的行数;
  • 崩溃包新增:完整 Player.log、官方崩溃转储目录、Windows 事件日志(崩溃事件带出错模块名)、EFMI 的 d3dx.ini/d3dx_user.ini 与 Mods 清单、XXMI 日志与配置、整个 EFMI Mods 目录(小文本全收、大资源只登记含 sha256 的清单)。

面板(整合 Mod 快捷键)

改为直接发送 Mod 自身的按键(读 actions.tsv 的 original_keys 列,例如 → ← ↑ ↓ Backspace),并以扫描码形式发送。

不再锁 Mod 的原键 —— 所以你按 → 照样能换装,面板点「外套」也会发同一个键。

⚠️ 已知问题(如实说明):在《终末地》里,合成输入(SendInput)会被游戏进程屏蔽 —— 面板上的遥控点击目前不会生效,而手按物理键一切正常。我们已经实测排除了 ini 写法、加载时机、命名空间、键位冲突、单击/长按、修饰键等所有已知方向(连"发真实键 + 扫描码"也同样被屏蔽)。
面板界面本身是可用的(作为快捷键对照表与含义提示),这条通道我们会继续想办法。

其它

  • 面板操作不再自动关闭 ReShade 页面(原来点一下就会退出 overlay,想在面板里连点几个开关根本做不到)。