acdream/docs/research/2026-05-21-a6-captures
Erik d0c8c54d96 fix(cdb): A6.P1 — v1 dry-run lessons + v2 prep tooling
Dry-run of scenario 1 (retail-v1-broken-offsets.log preserved as
audit trail) surfaced three issues with the v1 cdb script:

1. STACK-ARG OFFSETS WRONG: BP actions used arbitrary registers
   (@edx, @edi) to read function args, but __thiscall puts non-this
   args on the stack ([esp+N] after the return address). All 12 BP5
   "adjust_sphere" hits printed Nx=0.0 Ny=0.0 ... — fields not read.
   Fixed by writing a type dumper (a6-types-dump.cdb + runner) that
   uses cdb's `dt` command against the loaded PDB to get authoritative
   struct offsets. v2 probe script (to be written next) will use
   double-indirect reads (dwo(poi(@esp+N)+offset)) with correct
   offsets from the dump.

2. TEE-OBJECT UTF-16 ENCODING: PowerShell's default Tee-Object writes
   UTF-16 LE with BOM, making logs unparseable by grep without
   conversion. Runner now uses Out-File -Encoding ASCII. Sacrifices
   live console echo; use `Get-Content -Tail 50 -Wait` in a separate
   shell if live monitoring is needed.

3. BP6 SYMBOL NOT FOUND: `acclient!CTransition::validate_walkable`
   doesn't exist in the PDB. Decomp at line 272811 has
   `CTransition::check_walkable` — likely the actual name. To be
   verified + fixed in v2.

The BP hit-count distribution from v1 is still meaningful diagnostic
data (14,318 transitional_insert + 16,558 find_collisions + 40
set_contact_plane + 12 adjust_sphere + 1 step_up + 1 set_collide in
a 2-second walk through the inn doorway). Preserved as a baseline
sanity-check the v2 distribution can be diffed against.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 19:38:31 +02:00
..
scen1_inn_doorway fix(cdb): A6.P1 — v1 dry-run lessons + v2 prep tooling 2026-05-21 19:38:31 +02:00
scen2_inn_stairs docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
scen3_inn_2nd_floor docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
scen4_cottage_cellar docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
scen5_sewer_entry docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
scen6_sewer_first_stair docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
scen7_sewer_inter_room docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
scen8_sewer_chamber docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
scen9_sewer_corridor docs(research): A6.P1 — capture directory structure + findings stub 2026-05-21 18:46:56 +02:00
pdb-match-verification.txt docs(research): A6.P1 — refresh PDB verification to MATCH 2026-05-21 18:51:34 +02:00