Skip to content

BTL Reference 闭合状态与后续研究队列

状态:Publication-Ready Reference v1 / Semantic Closure Incomplete

1. 当前结论

BTL Reference v1 已经具备对外阅读所需的完整格式覆盖

  • BTL 物理 section:20/20 有正式中文入口;
  • Header:0x80 全 32 槽覆盖;
  • Country:0x12C 全字节覆盖;
  • Building:0x20 全字节覆盖;
  • Unit:v1 0x30、v2/v3 0x40 全字节覆盖;
  • Event:0x2C 全字节覆盖,并明确 trigger/action union;
  • Reinforcement:v1 0x50、v2/v3 0x68 全字节覆盖;
  • v3+ ExtensionArea:原版 descriptor、9 个顶层字段、17 个可达 message / 78 字段 consumer coverage 已建立;
  • 其余短记录均至少有 authoritative raw-first 物理说明。

当前 1.28.0 全 corpus:

text
BTL files             = 1358
exact physical parses = 1358 / 1358
exact length matches  = 1358 / 1358

因此现在可以发布一份明显超过传统社区“偏移表”的中文 BTL Reference。

但这不表示 BTL 的所有玩法语义已经 100% 闭合。

2. 三种“完成”必须分开

2.1 格式文档完整

当前状态:已达到 Reference v1

含义:

  • 文件每个 section 都知道在哪里、长度如何计算;
  • 每个主要 Record 都有完整 byte map 或明确 raw-preserve 区;
  • Unknown 不会形成未描述的文件空洞;
  • v1/v2/v3 边界已显式记录。

2.2 字段语义完整

当前状态:未完成

仍存在:

  • packed bit 未逐位闭合;
  • raw scalar 有 consumer 但没有稳定用户侧名称;
  • current corpus 无正样本;
  • type-dependent union 只闭合部分分支。

2.3 安全 writer 完整

当前状态:远未等同于 Reference 完成

BTL writer 必须另外证明:

  • 引用完整性;
  • count/length 联动;
  • 结构插入/删除;
  • unknown byte preservation;
  • protobuf reserialize compatibility;
  • invalid input 原版边界。

所以本 Reference 的“可读”不能被解释成“所有字段可写”。

3. P0:最值得继续打掉的语义 Unknown

这些条目会显著提升普通 MOD 作者能理解/编辑的 BTL 能力。

Unit

  1. +0x25 BattleMode 6 / Frontier owner-feature gate 完整语义;
  2. +0x2B 全 bit mask;
  3. +0x36/+0x38..+0x3F 逐字段/逐 bit consumer;
  4. +0x08/+0x0A 两个 legacy scalar;
  5. +0x2E
  6. +0x2F Elite skin/variant selector 完整值域。

Building

  1. +0x14 全 bit mask;
  2. +0x17 全 bit mask;
  3. +0x1D high 5 bits;
  4. +0x08/+0x0A BuildingType × consumer matrix;
  5. +0x12/+0x13/+0x15/+0x1E/+0x1F

Event

  1. 全部 TriggerType dispatch;
  2. Trigger 0x05 radius/filter;
  3. 全部 ActionType switch;
  4. 各 Action 对 +0x10/+0x14/+0x18 的 union 参数解释。

4. P1:模式和 Extension 长尾

  • H50 bit16 玩法/表现含义;
  • H74
  • H78
  • victory type 全分支的参数命名和最终结果合成。

Country

  • +0x24
  • 56 个 technology slot 的逐槽 consumer;
  • defeat policy 0..7 的完整用户侧 enum;
  • +0x120/+0x124/+0x128..+0x12B
  • 全 BattleMode 下 controller seed 与最终控制权组合。

Extension

  • countryEx/buildingEx 正样本;
  • armyBuffs/armyStats 正样本;
  • tunnelFromArea 非零正样本;
  • steelWillValue 非零正样本;
  • bynameId 最终 setter 闭环;
  • legendArmyId 完整 runtime coordination consumer;
  • secondary condition 最终皇冠/奖励/胜负合成。

5. P2:异常值、生命周期和兼容边界

最后的高难度部分主要包括:

  • 无效 Country/Tile/Army/Building/Event/definition 引用;
  • duplicate Unit/Building 的失败对象生命周期;
  • same-Tile 多 Unit 与 Extension area 最终对象身份;
  • Reinforcement spawn 占用冲突和 deferred Country 创建;
  • Start Group A/B 完整 mode consumer;
  • Airstrike/AirSupport 全字段;
  • Mine 触发/伤害/销毁;
  • Terrain 0x10 bitfield;
  • protobuf duplicate singular field / unknown fields / merge / serializer 顺序;
  • 其他 MapSource 值;
  • 其他版本没有进入当前 1.28 corpus 的正值域。

这些问题往往无法靠继续扫描同一批 1358 个文件解决,需要 native consumer、cross-arch、其他合法原版样本或受控动态 trace。

6. 研究闭环模板

后续每消灭一个 Unknown,固定采用:

text
Reference Unknown/Partial
-> native parser/consumer recovery
-> original corpus distribution
-> cross-architecture when useful
-> controlled runtime trace when necessary
-> update underlying evidence/canonical
-> update machine Reference index
-> update Chinese Markdown
-> update community correction/supersession if needed

不得反过来先修改文档名称,再寻找证据证明它。

7. 当前可发布范围

现在可以公开/交付给普通读者的内容包括:

  • BTL 总体文件结构;
  • v1/v2/v3 差异;
  • Header/Country/Building/Unit/Event/Reinforcement 主记录;
  • Province/Owner/Behavior/Weather/Strategy;
  • v3+ BattleExArgs
  • 社区旧文档勘误;
  • 明确的 Unknown/NoGo 列表。

公开时必须同时保留证据状态标签。不能为了让文档看起来“完整”而隐藏 Unknown。

8. 不属于本 Reference v1 的完成声明

当前不能声称:

text
BTL gameplay semantics 100% closed
all BTL fields safe to edit
arbitrary BTL writer compatible
all Event actions restored
all Extension gameplay effects restored
all invalid-input behavior restored

当前准确表述是:

BTL 物理格式和中文 Reference v1 已形成完整覆盖;主要记录语义已经高度恢复,剩余工作集中在 packed/模式专属字段、Event union、Extension 无正样本字段、异常输入和动态生命周期。