hit-location cylinder: raw-bytes audit of the shipped tables + chassis->table map + wedge orientation

Audit of Cyd's hit-model artifact against THE BINARY (user mandate: not vs the
port).  res29_scan.py parses the type-29 streams straight from BTL4.RES bytes:
18 streams / 8 distinct confirmed; the 7-wedge cells (BLH band 6, VUL band 4)
and the all-fixed BLH/OWN twist patterns are authored fact; every artifact
spot-check cell matched the raw bytes verbatim.  Chassis->table resolved by
live-dump matching (MadCat and Avatar ride DIFFERENT same-zone-set tables).
Authored slice names fix the wedge orientation: FRONT = the +Z arc, W1|W2 seam
= dead ahead -- corrects the #92 comment's W6-frontal claim.  Collision type-0
divert re-grounded at 0x4a0361/0x4a036d: rams never touch the cylinder.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joe DiPrima
2026-08-02 12:52:20 -05:00
co-authored by Claude Opus 5
parent 07072fc9f0
commit 47d9a61402
2 changed files with 172 additions and 0 deletions
+31
View File
@@ -965,6 +965,37 @@ returned NULL) -- the cascade "ran" and touched nothing, which is why blown-off
arms left firing gun pods across every chassis (Conn Man's three-chassis audit).
See reconstruction-gotchas #25.
## The hit-location CYLINDER -- raw-bytes audit + chassis->table map (2026-08-02) [T1]
Full independent verification of the type-29 DamageLookupTable streams, parsed
STRAIGHT from BTL4.RES bytes with `scratchpad/night9/res29_scan.py` (no port
code involved; grammar = the binary ctors @0x49ea48/@0x49e5e4). Results:
* **18 streams, 8 distinct by content** (copies 3,3,2,2,2,2,2,2). All 7-layer.
* **Slice counts are authored, not fixed 8**: Black Hawk band 6 and the
Vulture/Battlemaster band 4 are **7-wedge** rings; everything else 8.
* rotateWithTorso: layers 3-6 on six tables; **all-zero on Black Hawk + Owens**.
* Chassis -> content hash (live-dump matched, dump-identical rounding):
ava1->1b9958b4, bhk1->5150f823, lok1->b0a0e692, **mad1->c02bfc7a**,
own1->f0f03c87, snd1->0e1a9ca0, thr1->0163740f, vul1->739b1a6b.
The two same-zone-set "Avatar/MadCat" tables ARE distinguishable by loader:
**the Mad Cat rides one (c02bfc7a), the Avatar the other (1b9958b4)**.
* **Wedge orientation, from the AUTHORED slice names** [T1 data]: W0/W7 =
"Right*", W1/W2 = "Front*" -- with theta = atan2(z,x) from +X toward +Z, the
mech-local FRONT is the **+Z arc (theta 45-135 deg)** and dead-ahead is the
W1|W2 SEAM. (Corrects the earlier #92 comment that put frontal hits in W6.)
Frontal unaimed foot-band hits therefore straddle the RightFoot/LeftFoot
cells by impact-x sign, and the authored cross-bleed (20% opposite foot,
10+10% opposite leg) is a data-true source of "hit the opposite leg" reports.
* Resolver mechanics re-confirmed from the decomp (@0049eb54/@0049e678/
@0049de14): WorldToLocal; local y CLAMPED to [0, heightRef] BEFORE scaling
(heightRef = live collision cylinder, owner+0x2ec->+0xc); layer floor+clamp;
atan2(z,x) +2pi wrap, on-axis -> random angle; rotateWithTorso adds the live
torso heading (torso+0x1d8) BEFORE slicing; uniform roll vs ascending
cumulatives, -1 fallthrough. **Collision damage (type 0) NEVER reaches the
cylinder** -- diverted at the handler head (0x4a0361: test type; 0x4a036d:
call 0x49ffcc; jmp out) [T1 disasm].
## Key Relationships
- Weapons/roster: [[subsystems]]. Aim source: [[locomotion]] (drive/facing). Effects: [[rendering]].
- P5 forensics: `docs/HARD_PROBLEMS.md`. Data: [[decomp-reference]] §4-5.