Files
BT412/content/VIDEO/MAT/DAY/BTARENA.VMF
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

769 lines
12 KiB
Plaintext

DIV-VIZ2
HEADER
(
VERSION=2:08;
DATE=20:5:96;
TIME=15:45;
FILETYPE=MATERIAL
)
{
}
TEXTURE(NAME="aintB_tex")
{
MAP {"aintB"}
MAGNIFY {BILINEAR}
}
TEXTURE(NAME="aintC_tex")
{
MAP {"aintC"}
MAGNIFY {BILINEAR}
}
TEXTURE(NAME="agenA1_tex")
{
MAP {"agenA"}
}
TEXTURE(NAME="agenA3_tex")
{
MAP {"agenA"}
BITSLICE { 2 }
}
TEXTURE(NAME="agenA2_tex")
{
MAP {"agenA"}
BITSLICE { 1 }
}
TEXTURE(NAME="bdet1_tex")
{
MAP {"bdet"}
}
TEXTURE(NAME="bdet2_tex")
{
MAP {"bdet"}
BITSLICE { 1 }
}
TEXTURE(NAME="bdet9_tex")
{
MAP {"bdet"}
BITSLICE { 8 }
}
TEXTURE(NAME="bintA_tex")
{
MAP {"bintA"}
MAGNIFY {BILINEAR}
}
TEXTURE(NAME="agenA4_tex")
{
MAP {"agenA"}
BITSLICE { 3 }
}
TEXTURE(NAME="lgo1_tex")
{
MAP {"lgo"}
}
TEXTURE(NAME="lgo3_tex")
{
MAP {"lgo"}
BITSLICE { 2 }
}
TEXTURE(NAME="lgo2_tex")
{
MAP {"lgo"}
BITSLICE { 1 }
}
TEXTURE(NAME="lgo4_tex")
{
MAP {"lgo"}
BITSLICE { 3 }
}
TEXTURE(NAME="lgo5_tex")
{
MAP {"lgo"}
BITSLICE { 4 }
}
TEXTURE(NAME="lgo6_tex")
{
MAP {"lgo"}
BITSLICE { 5 }
}
TEXTURE(NAME="bdam1_tex")
{
MAP {"bdam"}
}
TEXTURE(NAME="bdam2_tex")
{
MAP {"bdam"}
BITSLICE { 1 }
}
TEXTURE(NAME="bveh1_tex")
{
MAP {"bveh"}
}
TEXTURE(NAME="bveh2_tex")
{
MAP {"bveh"}
BITSLICE { 1 }
}
TEXTURE(NAME="bveh3_tex")
{
MAP {"bveh"}
BITSLICE { 2 }
}
TEXTURE(NAME="bveh5_tex")
{
MAP {"bveh"}
BITSLICE { 4 }
}
TEXTURE(NAME="bveh4_tex")
{
MAP {"bveh"}
BITSLICE { 3 }
}
TEXTURE(NAME="bexp9_tex")
{
MAP {"bexp"}
BITSLICE { 8 }
}
TEXTURE(NAME="bmap1_tex")
{
MAP {"bmap"}
}
TEXTURE(NAME="bmap2_tex")
{
MAP {"bmap"}
BITSLICE { 1 }
}
TEXTURE(NAME="bmap3_tex")
{
MAP {"bmap"}
BITSLICE { 2 }
}
TEXTURE(NAME="bmap4_tex")
{
MAP {"bmap"}
BITSLICE { 3 }
}
RAMP(NAME="dusty")
{
DATA {0.35, 0.28, 0.21, 0.7, 0.58, 0.62}
}
RAMP(NAME="rusty")
{
DATA {0.16, 0.1, 0.06, 0.8, 0.77, 0.72}
}
RAMP(NAME="softer")
{
DATA {0.25, 0.25, 0.25, 0.99, 0.99, 0.99}
}
MATERIAL(NAME="tarmac_mtl")
{
TEXTURE {"aintB_tex"}
AMBIENT {0.7061, 0.665539, 0.7061}
DIFFUSE {0.6408, 0.651967, 0.7429}
RAMP {"rusty"}
}
MATERIAL(NAME="highwall_mtl")
{
TEXTURE {"aintC_tex"}
RAMP {"softer"}
}
MATERIAL(NAME="lowwall_mtl")
{
TEXTURE {"aintC_tex"}
AMBIENT {0.4816, 0.425347, 0.4816}
DIFFUSE {0.4816, 0.401197, 0.4816}
RAMP {"softer"}
}
MATERIAL(NAME="trusses1wht_mtl")
{
TEXTURE {"agenA1_tex"}
AMBIENT {0.3633, 0.305851, 0.3633}
DIFFUSE {0.5469, 0.470311, 0.5469}
RAMP {"softer"}
}
MATERIAL(NAME="trusses2wht_mtl")
{
TEXTURE {"agenA3_tex"}
AMBIENT {0.3878, 0.330119, 0.3878}
DIFFUSE {0.3673, 0.285941, 0.3673}
RAMP {"softer"}
}
MATERIAL(NAME="panelswht_mtl")
{
TEXTURE {"agenA2_tex"}
AMBIENT {0.7551, 0.719889, 0.7551}
DIFFUSE {0.7551, 0.703891, 0.7551}
RAMP {"softer"}
}
MATERIAL(NAME="trusses1red_mtl")
{
TEXTURE {"agenA1_tex"}
AMBIENT {0.3061, 0.028785, 0.0199}
DIFFUSE {0.298, 0.021826, 0.0194}
RAMP {"softer"}
}
MATERIAL(NAME="trusses2red_mtl")
{
TEXTURE {"agenA3_tex"}
AMBIENT {0.5469, 0.056748, 0.0356}
DIFFUSE {0.5469, 0.046639, 0.0356}
RAMP {"softer"}
}
MATERIAL(NAME="panelsgry_mtl")
{
TEXTURE {"agenA2_tex"}
AMBIENT {0.1388, 0.099219, 0.1388}
DIFFUSE {0.1388, 0.08472, 0.1388}
RAMP {"softer"}
}
MATERIAL(NAME="checkwht_mtl")
{
TEXTURE {"bdet1_tex"}
AMBIENT {0.6612, 0.59053, 0.6369}
DIFFUSE {0.7224, 0.632404, 0.69}
RAMP {"softer"}
}
MATERIAL(NAME="checkred_mtl")
{
TEXTURE {"bdet1_tex"}
AMBIENT {1, 0.047158, 0.0735}
DIFFUSE {1, 0.03827, 0.0735}
RAMP {"softer"}
}
MATERIAL(NAME="checkylw_mtl")
{
TEXTURE {"bdet1_tex"}
AMBIENT {1, 0.569559, 0.0735}
DIFFUSE {1, 0.548054, 0.0735}
RAMP {"softer"}
}
MATERIAL(NAME="stripesylw_mtl")
{
TEXTURE {"bdet2_tex"}
AMBIENT {0.5796, 0.300932, 0.0426}
DIFFUSE {0.5388, 0.252962, 0.0396}
RAMP {"softer"}
}
MATERIAL(NAME="stripesred_mtl")
{
TEXTURE {"bdet2_tex"}
AMBIENT {0.6571, 0.114007, 0.1019}
DIFFUSE {0.6571, 0.098276, 0.1019}
RAMP {"softer"}
}
MATERIAL(NAME="stripeswhite_mtl")
{
TEXTURE {"bdet2_tex"}
AMBIENT {0.951, 0.942912, 0.951}
RAMP {"dusty"}
}
MATERIAL(NAME="transrailwht_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.951, 0.942912, 0.951}
RAMP {"softer"}
}
MATERIAL(NAME="transrailred_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.2041, 0.015438, 0.0283}
DIFFUSE {0.2041, 0.007899, 0.0208}
RAMP {"softer"}
}
MATERIAL(NAME="transrailylw_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.951, 0.675475, 0.0621}
DIFFUSE {1, 0.588691, 0.049}
RAMP {"softer"}
}
MATERIAL(NAME="transrailrst_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.2122, 0.0356, 0.0078}
DIFFUSE {0.2041, 0.026999, 0.0075}
RAMP {"softer"}
}
MATERIAL(NAME="noiserst_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.2735, 0.04791, 0.01}
DIFFUSE {0.2694, 0.038205, 0.0098}
RAMP {"softer"}
}
MATERIAL(NAME="noisered_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.2898, 0.009626, 0.0189}
DIFFUSE {0.3592, 0.009152, 0.0234}
RAMP {"softer"}
}
MATERIAL(NAME="noiseylw_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.5143, 0.340801, 0.0336}
DIFFUSE {0.5184, 0.319799, 0.0339}
RAMP {"softer"}
}
MATERIAL(NAME="litered_mtl")
{
AMBIENT {1, 0, 0}
DIFFUSE {1, 0, 0}
RAMP {"softer"}
}
MATERIAL(NAME="liteblu_mtl")
{
AMBIENT {0, 0.134221, 1}
DIFFUSE {0, 0.117, 1}
RAMP {"softer"}
}
MATERIAL(NAME="liteylw_mtl")
{
AMBIENT {0.1592, 0.062574, 0}
DIFFUSE {0.1551, 0.050118, 0}
RAMP {"softer"}
}
MATERIAL(NAME="litegrn_mtl")
{
AMBIENT {0.0898, 1, 0}
DIFFUSE {0.0898, 1, 0}
RAMP {"softer"}
}
MATERIAL(NAME="concrete1_mtl")
{
TEXTURE {"aintC_tex"}
AMBIENT {0.8653, 0.844277, 0.8653}
DIFFUSE {0.8327, 0.795446, 0.8327}
RAMP {"rusty"}
}
MATERIAL(NAME="concrete1drk_mtl")
{
TEXTURE {"aintC_tex"}
AMBIENT {0.3429, 0.285855, 0.3429}
DIFFUSE {0.3429, 0.262397, 0.3429}
RAMP {"softer"}
}
MATERIAL(NAME="concrete2_mtl")
{
TEXTURE {"aintB_tex"}
AMBIENT {0.6612, 0.616296, 0.6612}
DIFFUSE {0.6612, 0.596233, 0.6612}
RAMP {"rusty"}
}
MATERIAL(NAME="concrete2.drk_mtl")
{
TEXTURE {"aintB_tex"}
AMBIENT {0.2653, 0.211725, 0.2653}
DIFFUSE {0.2367, 0.1651, 0.2367}
RAMP {"softer"}
}
MATERIAL(NAME="doorred_mtl")
{
TEXTURE {"agenA4_tex"}
AMBIENT {0.8327, 0.016916, 0.0306}
DIFFUSE {0.8327, 0.012798, 0.0306}
RAMP {"softer"}
}
MATERIAL(NAME="doorylw_mtl")
{
TEXTURE {"agenA4_tex"}
AMBIENT {0.8327, 0.635533, 0.0306}
DIFFUSE {0.8327, 0.616137, 0.0306}
RAMP {"softer"}
}
MATERIAL(NAME="doorwht_mtl")
{
TEXTURE {"agenA4_tex"}
RAMP {"softer"}
}
MATERIAL(NAME="doorrst_mtl")
{
TEXTURE {"agenA4_tex"}
AMBIENT {0.6816, 0.067767, 0}
DIFFUSE {0.6816, 0.056375, 0}
RAMP {"softer"}
}
MATERIAL(NAME="concrete1wht_mtl")
{
TEXTURE {"aintC_tex"}
DIFFUSE {0.9347, 0.919052, 0.9347}
RAMP {"dusty"}
}
MATERIAL(NAME="concrete2wht_mtl")
{
TEXTURE {"aintB_tex"}
RAMP {"dusty"}
}
MATERIAL(NAME="panelsred_mtl")
{
TEXTURE {"agenA2_tex"}
AMBIENT {0.5469, 0.017369, 0.0313}
DIFFUSE {0.4898, 0.011454, 0.028}
RAMP {"softer"}
}
MATERIAL(NAME="concrete1red_mtl")
{
TEXTURE {"aintC_tex"}
AMBIENT {0.5429, 0.017175, 0.031}
DIFFUSE {0.3837, 0.008425, 0.0219}
RAMP {"softer"}
}
MATERIAL(NAME="kuritared_mtl")
{
TEXTURE {"lgo1_tex"}
AMBIENT {0.5306, 0.176785, 0.2274}
DIFFUSE {0.5306, 0.157032, 0.2274}
RAMP {"softer"}
}
MATERIAL(NAME="laogreen_mtl")
{
TEXTURE {"lgo3_tex"}
AMBIENT {0.2242, 0.338201, 0.202}
DIFFUSE {0.2242, 0.314038, 0.202}
RAMP {"softer"}
}
MATERIAL(NAME="davionorange_mtl")
{
TEXTURE {"lgo2_tex"}
AMBIENT {0.8367, 0.566972, 0.1844}
DIFFUSE {0.8367, 0.545395, 0.1844}
RAMP {"softer"}
}
MATERIAL(NAME="steinerblue_mtl")
{
TEXTURE {"lgo4_tex"}
AMBIENT {0.2474, 0.196586, 0.449}
DIFFUSE {0.2474, 0.175893, 0.449}
RAMP {"softer"}
}
MATERIAL(NAME="merikpurple_mtl")
{
TEXTURE {"lgo5_tex"}
AMBIENT {0.2888, 0.162859, 0.4122}
DIFFUSE {0.2888, 0.143853, 0.4122}
RAMP {"softer"}
}
MATERIAL(NAME="vglblue_mtl")
{
TEXTURE {"lgo6_tex"}
AMBIENT {0.1184, 0.088271, 1}
DIFFUSE {0.1184, 0.074772, 1}
RAMP {"softer"}
}
MATERIAL(NAME="vglwhite_mtl")
{
TEXTURE {"lgo6_tex"}
AMBIENT {0.8653, 0.844277, 0.8653}
DIFFUSE {0.8776, 0.849417, 0.8776}
RAMP {"softer"}
}
MATERIAL(NAME="concrete1gry_mtl")
{
TEXTURE {"aintC_tex"}
AMBIENT {0.4327, 0.375266, 0.4327}
DIFFUSE {0.4816, 0.401197, 0.4816}
RAMP {"softer"}
}
MATERIAL(NAME="panelsblu_mtl")
{
TEXTURE {"agenA2_tex"}
AMBIENT {0.3265, 0.314438, 0.5796}
DIFFUSE {0.3265, 0.290522, 0.5796}
RAMP {"softer"}
}
MATERIAL(NAME="rustcrete_mtl")
{
TEXTURE {"aintB_tex"}
AMBIENT {0.7061, 0.665539, 0.7061}
DIFFUSE {0.7102, 0.651967, 0.7102}
RAMP {"rusty"}
}
MATERIAL(NAME="concrete2whtrst_mtl")
{
TEXTURE {"aintB_tex"}
RAMP {"rusty"}
}
MATERIAL(NAME="rblgry_mtl")
{
TEXTURE {"bdam1_tex"}
AMBIENT {0.7061, 0.665539, 0.7061}
DIFFUSE {0.7102, 0.651967, 0.7102}
RAMP {"rusty"}
}
MATERIAL(NAME="wallrblgry_mtl")
{
TEXTURE {"bdam2_tex"}
AMBIENT {0.7061, 0.665539, 0.7061}
DIFFUSE {0.7102, 0.651967, 0.7102}
RAMP {"rusty"}
}
MATERIAL(NAME="blk_mtl")
{
AMBIENT {0, 0, 0}
DIFFUSE {0, 0, 0}
RAMP {"softer"}
}
MATERIAL(NAME="gry_mtl")
{
AMBIENT {0.09, 0.059767, 0.09}
DIFFUSE {0.09, 0.049295, 0.09}
RAMP {"softer"}
}
MATERIAL(NAME="wht_mtl")
{
RAMP {"softer"}
}
MATERIAL(NAME="vehicle1gry_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle2gry_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle2drkgry_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.15, 0.108649, 0.15}
DIFFUSE {0.15, 0.09335, 0.15}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle3gry_mtl")
{
TEXTURE {"bveh3_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle5gry_mtl")
{
TEXTURE {"bveh5_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle1grn_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.2199, 0.2503, 0.2249}
DIFFUSE {0.2199, 0.227682, 0.2249}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle1drkgrn_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.14, 0.127951, 0.1}
DIFFUSE {0.14, 0.11117, 0.1}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle2grn_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.2199, 0.2503, 0.2249}
DIFFUSE {0.2199, 0.227682, 0.2249}
RAMP {"softer"}
}
MATERIAL(NAME="vehicle1tan_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.3633, 0.272442, 0.255}
DIFFUSE {0.3061, 0.187446, 0.2236}
RAMP {"softer"}
}
MATERIAL(NAME="tires_mtl")
{
TEXTURE {"bveh4_tex"}
AMBIENT {0.3878, 0.330119, 0.3878}
DIFFUSE {0.3714, 0.289936, 0.3714}
RAMP {"softer"}
}
MATERIAL(NAME="brokenwht_mtl")
{
TEXTURE {"bexp9_tex"}
AMBIENT {0.8653, 0.844277, 0.8653}
DIFFUSE {0.8327, 0.795446, 0.8327}
RAMP {"softer"}
}
MATERIAL(NAME="brokengry_mtl")
{
TEXTURE {"bexp9_tex"}
AMBIENT {0.4939, 0.438084, 0.4939}
DIFFUSE {0.4939, 0.414046, 0.4939}
RAMP {"softer"}
}
MATERIAL(NAME="brokenred_mtl")
{
TEXTURE {"bexp9_tex"}
AMBIENT {0.5429, 0.017175, 0.031}
DIFFUSE {0.3837, 0.008425, 0.0219}
RAMP {"softer"}
}
MATERIAL(NAME="name2_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap1_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {1, 0, 0}
}
MATERIAL(NAME="name3_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap2_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {1, 0, 0}
}
MATERIAL(NAME="name4_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap2_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {1, 0, 0}
}
MATERIAL(NAME="name5_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap3_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {1, 0, 0}
}
MATERIAL(NAME="name6_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap3_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {1, 0, 0}
}
MATERIAL(NAME="name7_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap4_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {1, 0, 0}
}
MATERIAL(NAME="name8_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap4_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {1, 0, 0}
}
MATERIAL(NAME="name1_mtl";SPECIAL=" IMMUNE 0 \0x00")
{
TEXTURE {"bmap1_tex"}
AMBIENT {0.0286, 0.01563, 0.0286}
DIFFUSE {0.0286, 0.011761, 0.0286}
EMISSIVE {0, 1, 0}
}