Files
BT411/content/VIDEO/MAT/POLAR/BTVEH.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

377 lines
6.3 KiB
Plaintext

DIV-VIZ2
HEADER
(
VERSION=2:08;
DATE=6:3:96;
TIME=18:4;
FILETYPE=MATERIAL
)
{
}
TEXTURE(NAME="bveh1_tex")
{
MAP {"bveh"}
}
TEXTURE(NAME="bveh2_tex")
{
MAP {"bveh"}
BITSLICE { 1 }
}
TEXTURE(NAME="bveh5_tex")
{
MAP {"bveh"}
BITSLICE { 4 }
}
TEXTURE(NAME="bveh3_tex")
{
MAP {"bveh"}
BITSLICE { 2 }
}
TEXTURE(NAME="bveh4_tex")
{
MAP {"bveh"}
BITSLICE { 3 }
}
TEXTURE(NAME="bveh6_tex")
{
MAP {"bveh"}
BITSLICE { 5 }
}
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}
}
MATERIAL(NAME="bveh1gry_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.15, 0.108649, 0.15}
DIFFUSE {0.15, 0.09335, 0.15}
}
MATERIAL(NAME="bven1red_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.2, 0.014548, 0.0269}
DIFFUSE {0.2, 0.010894, 0.0269}
}
MATERIAL(NAME="bveh1ylw_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.5143, 0.291422, 0.0252}
DIFFUSE {0.5143, 0.267861, 0.0252}
}
MATERIAL(NAME="bveh2blu_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.1724, 0.185914, 0.5347}
DIFFUSE {0.1724, 0.165711, 0.5347}
}
MATERIAL(NAME="bveh2ylw_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.5143, 0.291422, 0.0252}
DIFFUSE {0.5143, 0.267861, 0.0252}
}
MATERIAL(NAME="bveh5gry_mtl")
{
TEXTURE {"bveh5_tex"}
AMBIENT {0.15, 0.108649, 0.15}
DIFFUSE {0.15, 0.09335, 0.15}
}
MATERIAL(NAME="bven5ylw_mtl")
{
TEXTURE {"bveh5_tex"}
AMBIENT {0.5143, 0.291422, 0.0252}
DIFFUSE {0.5143, 0.267861, 0.0252}
}
MATERIAL(NAME="vehicle1gry_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
}
MATERIAL(NAME="vehicle2gry_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
}
MATERIAL(NAME="vehicle2drkgry_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.15, 0.108649, 0.15}
DIFFUSE {0.15, 0.09335, 0.15}
}
MATERIAL(NAME="vehicle3gry_mtl")
{
TEXTURE {"bveh3_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
}
MATERIAL(NAME="vehicle5gry_mtl")
{
TEXTURE {"bveh5_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
}
MATERIAL(NAME="vehicle1grn_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.381, 0.363017, 0.4939}
DIFFUSE {0.381, 0.338717, 0.4939}
}
MATERIAL(NAME="vehicle1drkgrn_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.2676, 0.240093, 0.3469}
DIFFUSE {0.2676, 0.217778, 0.3469}
}
MATERIAL(NAME="vehicle2grn_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.381, 0.363017, 0.4939}
DIFFUSE {0.381, 0.338717, 0.4939}
}
MATERIAL(NAME="vehicle1tan_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.3633, 0.272442, 0.255}
DIFFUSE {0.3061, 0.187446, 0.2236}
}
MATERIAL(NAME="tires_mtl")
{
TEXTURE {"bveh4_tex"}
AMBIENT {0.3878, 0.330119, 0.3878}
DIFFUSE {0.3714, 0.289936, 0.3714}
}
MATERIAL(NAME="vehicle1orng_mtl")
{
TEXTURE {"bveh1_tex"}
AMBIENT {0.9265, 0.247432, 0.174}
DIFFUSE {0.9265, 0.224896, 0.174}
}
MATERIAL(NAME="vehicle2orng_mtl")
{
TEXTURE {"bveh2_tex"}
AMBIENT {0.9265, 0.247432, 0.174}
DIFFUSE {0.9265, 0.224896, 0.174}
}
MATERIAL(NAME="vehicle3orng_mtl")
{
TEXTURE {"bveh3_tex"}
AMBIENT {0.9265, 0.247432, 0.174}
DIFFUSE {0.9265, 0.224896, 0.174}
}
MATERIAL(NAME="vehicle6gry_mtl")
{
TEXTURE {"bveh6_tex"}
AMBIENT {0.4449, 0.387674, 0.4449}
DIFFUSE {0.4449, 0.363352, 0.4449}
}
MATERIAL(NAME="vehicle6grn_mtl")
{
TEXTURE {"bveh6_tex"}
AMBIENT {0.381, 0.363017, 0.4939}
DIFFUSE {0.381, 0.338717, 0.4939}
}
MATERIAL(NAME="vehicle3red_mtl")
{
TEXTURE {"bveh3_tex"}
AMBIENT {0.9265, 0.129254, 0.174}
DIFFUSE {0.9265, 0.112379, 0.174}
}
MATERIAL(NAME="vehicle3yllw_mtl")
{
TEXTURE {"bveh3_tex"}
AMBIENT {0.8313, 0.914554, 0.174}
DIFFUSE {0.8313, 0.908985, 0.174}
}
MATERIAL(NAME="vehicle3grn_mtl")
{
TEXTURE {"bveh3_tex"}
AMBIENT {0.2199, 0.2503, 0.2249}
DIFFUSE {0.2199, 0.227682, 0.2249}
}
MATERIAL(NAME="blackskin_mtl")
{
AMBIENT {0, 0, 0}
DIFFUSE {0, 0, 0}
}
MATERIAL(NAME="greyskin_mtl")
{
AMBIENT {0.09, 0.059767, 0.09}
DIFFUSE {0.09, 0.049295, 0.09}
}
MATERIAL(NAME="whiteskin_mtl")
{
}
MATERIAL(NAME="checkwht_mtl")
{
TEXTURE {"bdet1_tex"}
AMBIENT {0.6612, 0.59053, 0.6369}
DIFFUSE {0.7224, 0.632404, 0.69}
}
MATERIAL(NAME="checkred_mtl")
{
TEXTURE {"bdet1_tex"}
AMBIENT {1, 0.047158, 0.0735}
DIFFUSE {1, 0.03827, 0.0735}
}
MATERIAL(NAME="checkylw_mtl")
{
TEXTURE {"bdet1_tex"}
AMBIENT {1, 0.569559, 0.0735}
DIFFUSE {1, 0.548054, 0.0735}
}
MATERIAL(NAME="stripesylw_mtl")
{
TEXTURE {"bdet2_tex"}
AMBIENT {0.5796, 0.300932, 0.0426}
DIFFUSE {0.5388, 0.252962, 0.0396}
}
MATERIAL(NAME="stripesred_mtl")
{
TEXTURE {"bdet2_tex"}
AMBIENT {0.6571, 0.114007, 0.1019}
DIFFUSE {0.6571, 0.098276, 0.1019}
}
MATERIAL(NAME="stripeswhite_mtl")
{
TEXTURE {"bdet2_tex"}
AMBIENT {0.951, 0.942912, 0.951}
}
MATERIAL(NAME="transrailwht_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.951, 0.942912, 0.951}
}
MATERIAL(NAME="transrailred_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.2041, 0.015438, 0.0283}
DIFFUSE {0.2041, 0.007899, 0.0208}
}
MATERIAL(NAME="transrailylw_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.951, 0.675475, 0.0621}
DIFFUSE {1, 0.588691, 0.049}
}
MATERIAL(NAME="transrailrst_mtl")
{
TEXTURE {"bdet9_tex"}
AMBIENT {0.2122, 0.0356, 0.0078}
DIFFUSE {0.2041, 0.026999, 0.0075}
}
MATERIAL(NAME="noiserst_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.2735, 0.04791, 0.01}
DIFFUSE {0.2694, 0.038205, 0.0098}
}
MATERIAL(NAME="noisered_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.2898, 0.009626, 0.0189}
DIFFUSE {0.3592, 0.009152, 0.0234}
}
MATERIAL(NAME="noiseylw_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.5143, 0.340801, 0.0336}
DIFFUSE {0.5184, 0.319799, 0.0339}
}
MATERIAL(NAME="stripeorng_mtl")
{
TEXTURE {"bdet2_tex"}
AMBIENT {0.9265, 0.247432, 0.174}
DIFFUSE {0.9265, 0.224896, 0.174}
}
MATERIAL(NAME="noiseorng_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.5184, 0.141591, 0.0339}
DIFFUSE {0.5184, 0.123876, 0.0339}
}
MATERIAL(NAME="noisegry_mtl")
{
TEXTURE {"bintA_tex"}
AMBIENT {0.3224, 0.265964, 0.3224}
DIFFUSE {0.2939, 0.216396, 0.2939}
}
MATERIAL(NAME="shadow_mtl")
{
AMBIENT {0, 0, 0}
DIFFUSE {0, 0, 0}
}