2026-10-23:转向响应、航线同步与本地缓存恢复
三轴驾驶响应
生产驾驶路径不再共用固定的 error * .18 - rate * .065。普通对准、绕星、星系内手动驾驶统一使用应用侧 BankedAttitudeController;插件只消费有身份校验和期限的三轴输入。
每个轴独立辨识一阶模型:
rate(t + dt) = rate(t) * exp(-dt/tau) + K * input(t-delay) * (1-exp(-dt/tau))
K 为当前轴的有效满输入角速度,tau 为响应时间,delay 为包括通信和游戏输入消费在内的延迟。由此计算角加速度和停止角度。控制前先积分仍在延迟队列中的已确认输入,预测到新输入生效时的位置与角速度,再计算制动输入;不能用最后一次输入替代整个队列。
只使用正常驾驶中获插件确认的输入和读出的响应,不发送额外校准动作。拟合窗口为最近 5 秒,至少覆盖 0.7 秒;未获得足够数据时使用有限输入。未测量的默认上界不是任何船的真实规格。
模型以飞船 ID/类型/装配指纹、常规空间或超巡、引擎电容分配区分。速度比例变化超过 0.2 时重新辨识;切换参考系、遥测中断和释放控制会断开观测历史。不同船和不同轴不会混用参数。拟合目前保存在驾驶器进程内,重启后重新观察。
方向误差使用球面旋转轴投影,避免正上方目标令独立 atan2(x,z) 偏航角突然反转;正后方目标及 180 度反向滚转保持连续的转动方向,直到转向平面可稳定观测。
新插件读出的角速度来自已核对的原生刚体字段,映射为本船偏航、俯仰、滚转;旧插件保留从连续姿态计算角速度的兼容路径。没有写入游戏姿态、角速度或飞船性能参数。
模拟验证
- 54 组独立单轴动力学:正反两个方向、3 组高低机动响应、3 个轴、30/60/144 Hz、帧间隔波动、0/100/200 毫秒输入延迟。
- 单轴最大有效角速度覆盖 3–420 度/秒,尾段角误差 RMS 小于 0.3 度,平均残余角速度小于 0.4 度/秒,越过目标小于 1.2 度。
- 36 组响应辨识参数组合,以及独立三维绕行、靠星银行参考退化、切船、切模式、电容分配/速度变化、未确认输入不参与拟合。
- 完整测试:
artifacts/loading-hologram-reference/unit-full-07,495 项,489 通过、0 失败、6 跳过。其中包含共享工作区内已有的其他测试;三轴、延迟和奇异方向模拟均通过。
这些是软件模拟与隔离 IPC 测试,不是 49 艘船逐一实飞的结果。用户游玩期间没有启动实飞、跑商或重启游戏。
游戏航线同步
GameRouteMirror 采用真实 NavRoute 的末端,而非当前正在浏览的恒星。游戏手动规划的航线可直接用于启动导航;浏览另一个恒星不会改写已经规划的目的地。
长按实际目的地时请求原生取消,并同时等待插件的空拓扑回执与 Journal 的航线清除。中途出现另一条游戏航线时保留新航线,不重复发送清除请求。旧插件没有取消能力时保留原航线并提示下次启动更新。
固定构建 SHA256:6891f70a021fa9f3a0e00458c284f48d1226e68ae7fc02ad48081aed47857e93。
离线反汇编确认:原生导航接口虚表 +0xE0 指向 RVA 0x25E9EF0,清除公开路线链表、目的地并通知监听者;参数为 (route,0,0,1)。虚表 +0xE8 的 0x264C3C0 只取消计算,不能代替清除路线。证据保存在 artifacts/loading-hologram-reference/route-code。
插件包版本为 0.4.5-dev,只完成本地编译。未替换游戏正在加载的插件,也未对用户的实际游戏路线调用取消。该原生行为仍需在合适的游戏会话中验证。
加载模型的渲染
原始材质读取自游戏资源 f12f774afc2cf9ffb8edcb5792116b98d37c1195,源码参数记录在 XFEEDToolBox.Core/Rendering/loading-hologram-reference.json,提取器为 research/Extract-LoadingHologramProfile.py。
已确认 EdgeDetectionPlane_M 的 Shader 为 EdgeDetection,使用 Sobel 厚度 1、距离倍率 4、幂 4,HDR 高色 (20,1,0.00001)、低色 (1,0.00001,0.00001)、扫描纹理 UV 比例 (0.0025,0.0025)。
工具箱以原始加载模型进行法线/深度预处理、边缘检测、HDR 发光和显示转换,主页、改装背景与小预览共享该路径,默认没有底座。已在独立后台进程渲染全部 49 个模型,检查非空、边距与预乘 alpha。
界限:尚未还原原游戏完整像素着色器字节码。当前扫描线函数、Bloom 核和显示曝光是工具箱的重建,不是已经证明与原游戏逐指令相同的实现。原始扫描纹理的解码仍未确认,未把未经确认的纹理加入产品。参考截图的船型和姿态亦未完全确定,不能宣称逐像素一致。
视觉证据门禁:work/visual/loading-hologram/verdict.json 为 uncertain,原因是上述原效果一致性尚未确认。当前星系增量/翻译探针的功能检查通过;其视觉门禁保留早期“青色图标”条件与当前游戏橙色图标的差异为 fail,没有宣称整套界面视觉全部通过。
SQLite 报错与恢复
早先只读检查在商品缓存 markets.db 中发现 B-tree 顺序错误,报价查询出现 SQLite 11;同次 game-events.db 检查为 ok。原始数据库与 WAL/SHM 均保留于 artifacts/database-recovery-20261023-02。第一次使用 Windows Store Python 的诊断访问到不同的应用虚拟化视图,不能作为目标库恢复依据;正式备份和恢复使用明确路径的独立运行时。
采用 SQLite 官方 .recover --ignore-freelist 在副本提取,再核对每条报价的内嵌 JSON、站点、商品、数值、时间及来源,与恢复的快照匹配后重建。得到 15,110 个站点、2,266,775 条报价;原快照统计有 15,311 个站点,因此不能宣称无损恢复全部缓存。游戏事件和设置未重置。
上述早先恢复的外部 ok 结果后来被实际客户端反例推翻:恢复环境命中了 Codex 的重定向缓存副本,桌面客户端仍读取损坏库。before-restore-online.db 的健康结果亦不能证明实际客户端已修复。2026-10-23 再次使用桌面 apphost 与 WinUI 实测,确认原查询仍报 SQLite 11,随后由客户端本身完成实际库恢复;持续写入、两次独立客户端启动与正常行情接收检查均通过。完整证据、数据恢复范围与新恢复机制见 重复报错实测报告。最初损坏页面的具体写入来源仍未确定。
UI 将商品缓存错误限制在行情刷新范围,飞船状态和导航刷新可继续;不会把损坏缓存包装成有效交易数据。