A while ago someone asked about reading bml and bmt files, some form of binary XML files used by Need for Speed: Shift for material information and probably other things as well.

File Format

bmt2xml tool

Building bmt2xml

            # git clone
            # cd bmt2xml
            # make

Using bmt2xml

# ./bmt2xml file.bmt


# ./bmt2xml autograss_laguna.bmt 
<material name="Autograss" shader="Render\Shaders\grass_billboard.fx" technique="Grass" cull="EBFCT_NONE" fog="false" antialias="1" numparams="10">
  <shaderparam name="fadeDistances" type="EPT_VEC2">
    <value v="0 100" />
  <shaderparam name="cornerHeights" type="EPT_VEC4">
    <value v="0 0 0 0" />
  <shaderparam name="subPageWidths" type="EPT_VEC4">
    <value v="1 0.9 0.9 0.9" />
  <shaderparam name="subPageHeights" type="EPT_VEC4">
    <value v="0.28 0.25 0.23 0.23" />
  <shaderparam name="boxWorldCoordsSize" type="EPT_F32">
    <value v="16" />
  <shaderparam name="diffuseTexture" type="EPT_TEXTURE">
    <type t="ET_STANDARD" />
    <value v="Effects\Particles\Textures\" />
  <shaderparam name="maxAnimatedVertDisplacement" type="EPT_F32">
    <value v="0.25" />
  <shaderparam name="transmissiveMult" type="EPT_VEC4">
    <value v="0.8 1 0.2 1" />
    <enabled e="true" />
    <writeenabled w="true" />
    <enabled e="true" />
    <value v="128" />
    <function f="ETF_GREATER_THAN_OR_EQUAL" />
    <enabled e="false" />
  <define name="AUTOGRASS" />



The source code for bmt2xml.

Clone the git repository

git: # git clone

Note: This is a git repository, you need git to use it.

Download using gitweb

Or download the current head bmt2xml-master-*.tar.gz using gitweb.

Uptime: 16 days, 7 hours, 25 minutes