Files
BT411/content/VIDEO/MADD.ORG
T
arcattackandClaude Opus 4.8 7b7d465e5e Initial commit: bt411 -- standalone Windows BattleTech (Tesla 4.10 port)
Clean, self-contained extraction of the BattleTech-specific work from the
reverse-engineering workspace -- engine + game + content + build, with nothing
from Red Planet or the raw archive dumps. Builds green (Win32) and runs the
single-player drive->animate->target->fire->damage->destroy loop out of the box.

Layout:
  engine/   MUNGA + MUNGA_L4 shared 2007 engine, carrying our BT render/loader
            work (bgfload/L4D3D/L4VIDEO: BSL bit-slice decode, LOD/ground/shadow
            models) + image codec; the minimal rp/ headers the audio HAL needs
  game/     reconstructed BT logic + surviving-original BT source + fwd shims
            + WinMain launcher
  content/  full runtime tree (BTL4.RES, VIDEO/, GAUGE/, AUDIO/, eggs, BTDPL.INI)
  docs/     format specs + reconstruction ledgers
  reference/ raw Ghidra pseudocode (recon source-of-truth) + decomp exporter
  tools/    MP console emulator + map/resource scanners

One top-level CMake builds munga_engine lib + bt410_l4 game lib + btl4.exe.
All paths relativized (186 fwd shims + ~437 CMake abs paths -> repo-relative);
DXSDK is the one external, overridable via -DDXSDK. Verified: builds to a
byte-identical 2.27MB exe and runs combat (TARGET DESTROYED, 0 crashes) against
the bundled content.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-05 21:03:40 -05:00

668 lines
9.8 KiB
Org Mode

[LAB_ONLY] // this file has not been approved for release
[DamageZones] // call MakeEntryList with 'dz_'
dz_larm=0
dz_lgun=1
dz_rarm=2
dz_rgun=3
[ROOT]
JointCount=25
DZoneCount=4
Former Segment=segroot
tranx=0
trany=0
tranz=0
pitch=0
yaw=-0
roll=0
joint=jointlocal
joint=jointshadow
[jointlocal]
parent=ROOT
Type=balltranslate
Former Segment=segem1
tranx=0
trany=5.29
tranz=0
pitch=0
yaw=-0.00261799
roll=0
joint=jointhip
joint=jointlthigh
joint=jointrthigh
[jointhip]
parent=jointlocal
Type=hingex
Former Segment=seghip
tranx=-4.93114e-07
trany=0.373967
tranz=-0.000188355
pitch=0
yaw=-0
roll=0
joint=jointtorso
site=siteedz_hip
[jointtorso]
parent=jointhip
Type=hingey
Former Segment=segtor
tranx=5.88841e-07
trany=0.30755
tranz=0.000188448
pitch=-5.82075e-11
yaw=3.22776e-24
roll=1.10905e-13
joint=jointshakey
joint=jointeye
[jointshakey]
parent=jointtorso
Type=ball
Former Segment=segshake
tranx=-1.47042e-07
trany=0.100963
tranz=-9.42898e-08
pitch=5.49888e-16
yaw=0.00261798
roll=1.52387e-13
joint=jointrshoulder
joint=jointlshoulder
site=sitelmissleport
site=sitermissleport
site=sitelight
site=siterutorsoport
site=siterdtorsoport
site=sitelutorsoport
site=siteldtorsoport
joint=jointlmissledoor
joint=jointrmissledoor
site=siteedz_rtorso
site=siteedz_ltorso
site=siteedz_utorso
site=siteedz_dtorso
site=siteedz_rearutorso
site=siteedz_reardtorso
site=siteedz_rearrtorso
site=siteedz_rearltorso
site=siteedz_searchlight
[jointrshoulder]
parent=jointshakey
Type=hingex
Object=maddrarm.bgf
dzone=dz_rarm
Former Segment=segrarm
tranx=1.746
trany=1.35502
tranz=0.988
pitch=-2.12633e-09
yaw=-2.85749e-26
roll=-2.68771e-17
joint=jointrgun
site=siteedz_rarm
[jointrgun]
parent=jointrshoulder
Type=hingex
Object=maddrgun.bgf
dzone=dz_rgun
Former Segment=segrgun
tranx=1.056
trany=-0.959001
tranz=-5.96046e-08
pitch=2.85992e-08
yaw=3.07336e-08
roll=-1.01557e-13
site=siterugunport
site=siterdgunport
site=siteedz_rgun
[siterugunport]
parent=jointrgun
tranx=0.17
trany=0.0179999
tranz=-3.819
pitch=1.27931e-10
yaw=4.65826e-10
roll=-9.26676e-15
[siterdgunport]
parent=jointrgun
tranx=0.53
trany=-0.366999
tranz=-3.819
pitch=1.27931e-10
yaw=4.65826e-10
roll=-9.26676e-15
[siteedz_rgun]
parent=jointrgun
tranx=0.32896
trany=-0.186245
tranz=-0.345314
pitch=-3.57279e-08
yaw=-3.25957e-09
roll=-2.12342e-06
[siteedz_rarm]
parent=jointrshoulder
tranx=0.526
trany=-0.35102
tranz=7.03335e-06
pitch=2.96466e-08
yaw=2.65423e-08
roll=-1.01683e-13
[jointlshoulder]
parent=jointshakey
Type=hingex
Object=maddlarm.bgf
dzone=dz_larm
Former Segment=seglarm
tranx=-1.743
trany=1.35502
tranz=0.988
pitch=-3.27953e-09
yaw=-6.78302e-26
roll=-4.13659e-17
joint=jointlgun
site=siteedz_larm
[jointlgun]
parent=jointlshoulder
Type=hingex
Object=maddlgun.bgf
dzone=dz_lgun
Former Segment=seglgun
tranx=-1.06
trany=-0.958
tranz=5.96046e-08
pitch=8.20184e-08
yaw=7.4126e-08
roll=-1.75833e-06
site=sitelugunport
site=siteldgunport
site=siteedz_lgun
[sitelugunport]
parent=jointlgun
tranx=-0.165
trany=0.0170004
tranz=-3.819
pitch=-8.93909e-08
yaw=1.29528e-08
roll=-3.83964e-15
[siteldgunport]
parent=jointlgun
tranx=-0.523999
trany=-0.368001
tranz=-3.819
pitch=-1.06155e-07
yaw=1.6678e-08
roll=-4.80842e-15
[siteedz_lgun]
parent=jointlgun
tranx=-0.328
trany=-0.187021
tranz=-0.345319
pitch=-4.42217e-08
yaw=9.22739e-09
roll=-1.92803e-15
[siteedz_larm]
parent=jointlshoulder
tranx=-0.52937
trany=-0.3509
tranz=7.09295e-06
pitch=8.38229e-08
yaw=6.69089e-08
roll=-1.75833e-06
[sitelmissleport]
parent=jointshakey
tranx=-2.318
trany=2.64102
tranz=0.245
pitch=-1.57161e-09
yaw=-1.56389e-26
roll=-1.99018e-17
[sitermissleport]
parent=jointshakey
tranx=2.315
trany=2.64102
tranz=0.245
pitch=-1.10594e-09
yaw=-7.72272e-27
roll=-1.39658e-17
[sitelight]
parent=jointshakey
tranx=5.85843e-08
trany=0.10002
tranz=-2.044
pitch=-6.98497e-10
yaw=-3.10969e-27
roll=-8.90395e-18
[siterutorsoport]
parent=jointshakey
tranx=0.764
trany=0.86902
tranz=-2.761
pitch=-4.07446e-10
yaw=-1.06712e-27
roll=-5.23808e-18
[siterdtorsoport]
parent=jointshakey
tranx=0.774
trany=0.57602
tranz=-2.349
pitch=-2.91033e-10
yaw=-5.33461e-28
roll=-3.66598e-18
[sitelutorsoport]
parent=jointshakey
tranx=-0.766
trany=0.86902
tranz=-2.761
pitch=4.07464e-10
yaw=-1.03125e-27
roll=5.06179e-18
[siteldtorsoport]
parent=jointshakey
tranx=-0.779
trany=0.57602
tranz=-2.349
pitch=1.7462e-10
yaw=-1.82816e-28
roll=2.09388e-18
[jointlmissledoor]
parent=jointshakey
Type=hingex
Former Segment=segldoor
tranx=-2.114
trany=3.795
tranz=0.263498
pitch=-3.27953e-09
yaw=5.35516e-09
roll=-4.10601e-17
site=siteedz_ldoor
[siteedz_ldoor]
parent=jointlmissledoor
tranx=0
trany=-0.983
tranz=-0.078498
pitch=-4.11285e-09
yaw=5.3556e-09
roll=1.31602e-17
[jointrmissledoor]
parent=jointshakey
Type=hingex
Former Segment=segrdoor
tranx=2.114
trany=3.79453
tranz=0.263498
pitch=-3.0467e-09
yaw=1.39701e-09
roll=-3.83169e-17
site=siteedz_rdoor
[siteedz_rdoor]
parent=jointrmissledoor
tranx=-0.000169992
trany=-0.98231
tranz=-0.078138
pitch=3.10491e-09
yaw=8.02223e-10
roll=1.09168e-11
[siteedz_rtorso]
parent=jointshakey
tranx=2.114
trany=2.79299
tranz=1.15422
pitch=1.74622e-09
yaw=-1.9045e-26
roll=2.18128e-17
[siteedz_ltorso]
parent=jointshakey
tranx=-2.114
trany=2.793
tranz=1.154
pitch=1.16413e-10
yaw=-8.08573e-29
roll=1.38914e-18
[siteedz_utorso]
parent=jointshakey
tranx=4.57201e-08
trany=2.03599
tranz=-0.363648
pitch=5.82074e-09
yaw=-2.12814e-25
roll=7.31226e-17
[siteedz_dtorso]
parent=jointshakey
tranx=1.76362e-08
trany=0.36167
tranz=-1.16012
pitch=1.10594e-08
yaw=-7.68186e-25
roll=1.3892e-16
[siteedz_rearutorso]
parent=jointshakey
tranx=8.41722e-08
trany=2.03599
tranz=2.17676
pitch=6.92669e-09
yaw=-3.01617e-25
roll=8.70884e-17
[siteedz_reardtorso]
parent=jointshakey
tranx=7.06844e-08
trany=0.57603
tranz=1.43517
pitch=1.37952e-08
yaw=-1.19542e-24
roll=1.7331e-16
[siteedz_rearrtorso]
parent=jointshakey
tranx=2.114
trany=2.793
tranz=2.17676
pitch=3.31782e-09
yaw=-6.92008e-26
roll=4.17147e-17
[siteedz_rearltorso]
parent=jointshakey
tranx=-2.114
trany=2.79301
tranz=2.177
pitch=1.10594e-09
yaw=-7.62155e-27
roll=1.37829e-17
[siteedz_searchlight]
parent=jointshakey
tranx=5.32242e-08
trany=0.10002
tranz=-1.87191
pitch=2.91034e-10
yaw=-5.32476e-28
roll=3.6592e-18
[siteedz_hip]
parent=jointhip
tranx=-0.000890357
trany=-0.0815088
tranz=-0.34009
pitch=-5.82027e-11
yaw=5.61625e-23
roll=1.92989e-12
[jointlthigh]
parent=jointlocal
Type=hingex
Former Segment=segluleg
tranx=-1.69818
trany=0.235867
tranz=0.00425748
pitch=0
yaw=-0
roll=0
joint=jointlknee
site=siteedz_luleg
[jointlknee]
parent=jointlthigh
Type=hingex
Former Segment=segldleg
tranx=0.00376296
trany=-1.96938
tranz=1.43734
pitch=2.96845e-08
yaw=0.002618
roll=-4.50033e-08
joint=jointlankle
site=siteedz_ldleg
[jointlankle]
parent=jointlknee
Type=hingex
Former Segment=seglfot
tranx=1.19209e-07
trany=-2.38752
tranz=-1.43651
pitch=2.02656e-06
yaw=-1.04583e-13
roll=-1.73066e-13
joint=jointlbacktoe
joint=jointloutertoe
joint=jointlinnertoe
site=siteedz_lfoot
[jointlbacktoe]
parent=jointlankle
Type=hingex
Former Segment=seglbto
tranx=-2.00272e-05
trany=-0.514369
tranz=0.689937
pitch=5.83996e-06
yaw=-4.11746e-08
roll=5.37255e-09
[jointloutertoe]
parent=jointlankle
Type=hingex
Former Segment=segloto
tranx=-0.51023
trany=-0.514372
tranz=-1.04087
pitch=-2.85103e-06
yaw=0.785398
roll=-2.01072e-06
[jointlinnertoe]
parent=jointlankle
Type=hingex
Former Segment=seglito
tranx=0.4988
trany=-0.514362
tranz=-1.04083
pitch=-2.94107e-06
yaw=-0.785398
roll=2.10201e-06
[siteedz_lfoot]
parent=jointlankle
tranx=0.00019002
trany=-0.756791
tranz=-0.341029
pitch=5.83996e-06
yaw=-3.95577e-08
roll=3.95133e-09
[siteedz_ldleg]
parent=jointlknee
tranx=0.00019002
trany=-1.27301
tranz=-0.68516
pitch=2.02656e-06
yaw=4.28164e-10
roll=-1.72638e-13
[siteedz_luleg]
parent=jointlthigh
tranx=0.271583
trany=-1.09312
tranz=0.527891
pitch=2.96816e-08
yaw=0.002618
roll=-4.61203e-08
[jointrthigh]
parent=jointlocal
Type=hingex
Former Segment=segruleg
tranx=1.70076
trany=0.237486
tranz=-0.0044526
pitch=0
yaw=-0
roll=0
joint=jointrknee
site=siteedz_ruleg
[jointrknee]
parent=jointrthigh
Type=hingex
Former Segment=segrdleg
tranx=0.00376308
trany=-1.97125
tranz=1.43737
pitch=1.78845e-06
yaw=0.00261799
roll=1.18749e-07
joint=jointrankle
site=siteedz_rdleg
[jointrankle]
parent=jointrknee
Type=hingex
Former Segment=segrfot
tranx=-2.38419e-07
trany=-2.38756
tranz=-1.43738
pitch=-4.76157e-27
yaw=5.58442e-14
roll=-1.7053e-13
joint=jointrbacktoe
joint=jointrinnertoe
joint=jointroutertoe
site=siteedz_rfoot
[jointrbacktoe]
parent=jointrankle
Type=hingex
Former Segment=segrbto
tranx=-1.19209e-07
trany=-0.514069
tranz=0.689989
pitch=6.34684e-06
yaw=7.48792e-13
roll=3.93519e-09
[jointrinnertoe]
parent=jointrankle
Type=hingex
Former Segment=segrito
tranx=-0.50311
trany=-0.514062
tranz=-1.04019
pitch=-2.09713e-06
yaw=0.785398
roll=-1.74167e-06
[jointroutertoe]
parent=jointrankle
Type=hingex
Former Segment=segroto
tranx=0.50682
trany=-0.514072
tranz=-1.04024
pitch=-2.71565e-06
yaw=-0.785398
roll=1.83461e-06
[siteedz_rfoot]
parent=jointrankle
tranx=-0.000170112
trany=-0.7562
tranz=-0.339987
pitch=6.34684e-06
yaw=4.42963e-09
roll=5.71235e-10
[siteedz_rdleg]
parent=jointrknee
tranx=0.000229836
trany=-1.27285
tranz=-0.685479
pitch=-1.75964e-21
yaw=1.75578e-08
roll=-2.00439e-13
[siteedz_ruleg]
parent=jointrthigh
tranx=-0.271387
trany=-1.09474
tranz=0.528712
pitch=1.78844e-06
yaw=0.002618
roll=1.14403e-07
[jointshadow] // apply terrain angle to pitch and roll
parent=ROOT
Type=balltranslate
Former Segment=segshd
tranx=0
trany=0.05
tranz=0
pitch=0
yaw=0
roll=0
joint=jointtshadow
[jointtshadow] // apply torso twist to yaw
parent=jointshadow
Type=hingey
Former Segment=segtshd
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0
[jointeye]
parent=jointtorso
Type=balltranslate
Former Segment=segnone
tranx=-0.00345132
trany=1.68696
tranz=-1.31825
pitch=9.31331e-10
yaw=-1.74623e-07
roll=6.64025e-13
site=siteeyepoint
[siteeyepoint] // moved by AddEyeJoint
parent=jointeye
tranx=0
trany=0
tranz=0
pitch=0
yaw=0
roll=0