Featured Post
Deus Ex - Extraction Guides (Master Post)
Deus Ex (2000) Extract Audio Extract Textures & Models Deus Ex: The Conspiracy (2002) Extract Video Deus Ex: Invisible War (2003) Extrac...
Saturday, 18 March 2023
Deus Ex: Mankind Divided - Extract Textures & Models
Note: In this post, I will not be covering how to unpack the game content as I have already covered this before in a previous post. You must unpack the game files before starting here, so for instructions on how to do that please follow the other guide I created, and then come back to this post which is purely focusing on textures and models.
Exporting textures to .png using DEMDDatabase
- Run DEMDDatabase.exe and open the unpacked database from the DXMDExtract extraction
- In the file tree, search for the texture(s) you want, for example for character textures, they are usually found under characters > {character you want} > {character you want}_material, etc.
- Select the .tex file and go to File > Export as... > and then you can save the individual texture
Exporting meshes using DEMDDatabase
- Similar to the above, character models can be exported following the same method, just instead of going into the character materials, go back one step and find the character model file. This can be exported as an .obj file
- You can also export all the textures and meshes for a specific character by going to their parent node in the tree > File > Mass fast export.Note: This will not work unless you set your fast export savepath. To do this, go to File > Settings > Fast export tab > select the folder you wish to save to, and you can also change the automatic Image format and Models format from here too
This provides the basis of extracting meshes; it is possible to load and combine the different mesh parts and material textures into Blender (or preferred 3D software):
GUIDE UPDATE: NOV 2025
Extracting Model and Rig with DXMDmodel
- Open NameMap.txt and search for the weightedprim (.prim) and bonerig (.borg) corresponding to a specific model (usually suffixed with .wl2). Alternatively, browse the filetree view in DEMD Database to find what you're looking for if the text file is confusing.
- Locate the .bin file for both of these. The .bin file will be the second string of numbers on the same line in the NameMap and also at the top of the texture/model viewer panel in DEMDdb. I've outlined the .bin search process in more detail in my other guide about extracting audio & video from Mankind Divided, check that guide out if you need more help.
- Drag and from them onto DXMDmodel.exe; it should generate an .ascii mesh (geometry + weights) file and an .smd file (skeleton + rig)
Importing into Blender using Blender Source Tools
- In order to import these into Blender, you need to install the Blender add-on "Blender Source Tools" from Steam Review, it works here even though Mankind Divided’s engine is not the Source engine. To install add-ons in Blender, you usually just need to go into Edit > Preferences > Add-ons > Install from File > browse to the Blender Source Tools .zip you downloaded > tick the checkbox to enable
- Usually, to import with this add-on you need a .qc file which helps Blender locate the different parts, however I was able to import just the .smd. Go to File > Import > Source Engine (.smd, .vta, .dmx, .qc) and browse for the .smd file of the mesh you want to import; the .ascii mesh should automatically load with it.
- In Blender you should see a mesh, with different parts coloured various shades, the armature/posing rig. Sometimes this is all that is needed to proceed, but some characters/meshes are divided up into multiple parts, probably due to these items requiring different rendering/physics in-game, i.e. the body, the cloth, the hair. In this case, keep reading.
Extracting and Importing Clothes with XNALara i/o Tools
- Go back to the NameMap (or DEMDdb file tree) and search for the corresponding .pc_apex file for the model you've already converted, i.e. for Pritchard his model was missing his jacket, so I found pritchard_jacket.pc_apex
- Locate the .bin file and drag and drop it onto DXMDmodel.exe
- It should generate an .ascii mesh (geometry + weights) file
- In order to import/append the .ascii files into your previous Blender project with the other mesh parts, you need to install the Blender add-on "XNALara-io-Tools" from Valerie-Bosco. After install, go to File > Import > XNA Lara / XPS > XNA Lara/XPS Model (.ascii/.mesh/.xps) and browse for the .ascii file for the clothes mesh.
Extracting and Importing Hair with XNALara i/o Tools
- Go back to the NameMap (or DEMDdb file tree) and search for the corresponding .pc_hair file for the model you've already converted, i.e. for Pritchard his model was missing his jacket, so I found pritchard_hair.pc_hair
- Locate the .bin file and drag and drop it onto PureHair.exe
- It should generate an .ascii mesh (weights) file and an .obj (geometry) file
- In order to import/append the .ascii files into your previous Blender project with the other mesh parts, you need to install the Blender add-on "XNALara-io-Tools" from Valerie-Bosco. After install, go to File > Import > XNA Lara / XPS > XNA Lara/XPS Model (.ascii/.mesh/.xps) and browse for the .ascii file for the hair mesh and the .obj file should automatically load with it
- In the case of duplicate armatures/posing rigs imported into Blender, choose main armature, clear parent of appended objects, set their parent to main armature, combine collections, ensure the armature modifier on each meshport is the main armature
- The texture coordinates are sometimes flipped on the Y-axis, manually fix the UVs by selecting all the UV islands, S (scale), Y (vertically), -1 (flip vertically down)
- The textures can be batch-exported with DEMD Database after setting the Mass Export settings
Preparing an extracted mesh for XNA Lara Posing Studio
General tips
- Version: Make sure the version of Blender is compatible with the XPS import/export tool you are using. The very latest version of Blender may not be compatible with the old tools. The oldest version of Blender which can open 4.x files and newer is 3.6. Some tools only work with version of Blender below 2.80 as well - it is not possible to open files created with 3.6 and above in a version this old, so you will need to change the Format
- Format: If you get crashes due to versioning (i.e. the Blend file you’ve been working with is too new), export into an intermediate format such as .fbx (which retains the bones, armature, materials) and import that into a previous version of Blender. Doing this will reset the Shader back to Principled BSDF for all the materials though, so you will need to change it back to XPS Shader and add the textures again manually
Bones, Armatures and Posing
- Armatures: Ensure all the mesh parts are linked to the same Armature via the modifier, are parented to the same Armature with Empty Groups via the Object settings in Object Mode, and they have the same Vertex Groups in the data panel
- Posing: To pose, click on the Armature in the Scene collection and change to Posing Mode. Select the bone nodes and move/rotate and it should move the mesh parts with the associated Vertex Groups
- Bones: You may find it difficult to see the mesh under the bone nodes, to change this you need to go into the Armature modifier option and change the Viewport Display to sticks and make sure there isn’t a custom mesh shape applied to the nodes
Missing textures or “missing.png” error when importing .xps
- Textures: Ensure all used textures are saved in the same folder as the one you export the .xps file to, if you want a portable .xps file you need to always bring the textures with it
- Materials: Ensure that the materials are renamed so both the image texture and the material both have the same name - leave out file type identifier suffixes like _diff or _norm
- UV Map: Ensure all the materials have only one UV map assigned, and rename it UVMap
- Shader: Ensure the textures are using XPS Shader and not Principled BSDF - if the shader is not available you need to import a pre-existing .xps model to have the option
- Vertex Colors: Remove any vertex colors - any being present causes the exporter to replace the materials texture with plain black
- Vertex Groups: Ensure that every mesh part has the same Vertex Groups - you can apply a Data Transfer modifier or run this Python script in the scripting panel:
import bpy
source = bpy.data.objects['goodmesh'] # replace with your mesh names
targets = ['badmesh1','badmesh2'] # replace with your mesh names
for target_name in targets:
target = bpy.data.objects[target_name]
for vg in source.vertex_groups:
if vg.name not in target.vertex_groups:
target.vertex_groups.new(name=vg.name)
Tools
- Blender:
https://www.blender.org/download - DXMDmodel & PureHair:
https://drive.google.com/file/d/1Ifqkcfbg2r8NdGSLgWkBlunfrv6Ob1Ox/view?usp=drive_link - Blender Source Tools (Steam Review):
http://steamreview.org/BlenderSourceTools - XNALara-io-Tools (Valerie-Bosco):
https://github.com/Valerie-Bosco/XNALara-io-Tools
Deus Ex: Mankind Divided - Extract Audio & Video
Note: All tools used are linked at the bottom of the post.
- How to extract content from the game and locate audio and video files
- How to convert the audio and video into viewable formats
- Extracting the files from the game using DXMD Extract
- Browsing the contents of the extracted files using DEMDDatabase
- Convert unsorted audio files with HxD
- Extract unsorted audio files containing music layers with Game Extractor
- Extract specific audio (i.e. conversational dialogue) with DEMD Database
- Fix corrupted .ogg audio files with QuickBMS
- Convert unsorted video files (cinematics, loading screens) with HxD
- Extract and split audio tracks from .bk2 files with VGMToolbox
- Convert the audio streams using RAD Video Tools
- Convert the audio streams using VLC Media Player
- Convert the video stream using RAD Video Tools
- Combine the video stream and the audio streams using FFmpeg
- Final results
Extracting the files from the game using DXMD Extract
- Unpack the DXMDExtract archive and move DXMDExtract.exe to the installation location for the game,
for example, for the Steam version:
Main game: Steam\steamapps\common\Deus Ex Mankind Divided\runtime
DLC: Steam\steamapps\common\Deus Ex Mankind Divided\DLC\runtime
- In that same folder, create a new text file. Open it in a text editor, and enter the following
line:
DXMDExtract . .\extracted
Example: - Save and exit, and then rename the file to unpack.bat
- Double-click on it, and then the Command Prompt will appear and begin to unpack the game
Browsing the contents of the extracted files using DEMDDatabase
- Unpack the DEMDDatabase archive and run DEMD Database.exe
- File > Open > Open unpacked DB
- Navigate to the NameMap.txt file from the extracted folder created previously when unpacking with DXMDExtract
- After loading, the file trees are now displayed graphically and can be browsed, for example if you’re searching for conversational dialogue, you can expand the file list until you find what you need
Convert unsorted audio files with HxD
- Navigate to the runtime folder for either the main installation of Mankind Divided or the DLC runtime folder. Here the audio and video files appear to be unsorted and scattered. Audio files have the extension .pc_fsbm
-
Save the file with HxD editor, this will automatically create a backup of the original .pc_fsbm file in the same folder
-
As a .fsb file, it can now be converted to.wav using vgmstream or FSB Extractor - this is covered in detail in my other guide on extracting audio and video from Deus Ex: Human Revolution - the process is identical.
Extract unsorted audio files containing music layers with Game Extractor
- Download and install Game Extractor, and run the tool.
- One open, you will see a file browser on the right panel; browse to your game runtime where all of the .pc_fsbm files are located. It may help to already copy all the .pc_fsbm files to a specific folder to work from if you don't want to clutter up the main folder.
- The browser should now list all the .pc_fsbm files. From this view you can double click one, and on the central panel, a new list will display of the file contents in .ogg format, which are music layers. With this information you will be able to find the missing files that were listed in the NameMap but not displayed in the DEMD DB file tree.
- You can extract the contents of that .pc_fsbm by clicking the icon at the top which looks like a floppy disk with a green arrow pointing at a file.
- After clicking the button, a section underneath the file browser on the right will appear, where you can input the extraction directory. To the right of that input field are two more buttons which look the same as before. The first one will extract the individual selected file from the archive only, and the second one will extract all files from the archive instead.
- Click the one you want, and the files should be saved inside the extraction directory you specified as .ogg files.
- Repeat the process for the other .pc_fsbm files you want to extract. As the music for some areas in the game are divided up into multiple layers (some more than others), you may have to import every layer and downmix them into one stereo file in an audio editing software like Audacity, similarly to how I demonstrated with the cutscene audio layers in this section
Extract specific audio (i.e. conversational dialogue) with DEMD Database
- For a more targeted approach, the NameMap.txt file that is generated from the DXMD Extraction comes in useful as it lists every file and where they can be found within the file tree
- Opening it with a text editor and using the find function can help narrow down the search, in this instance I was searching for a specific conversation, and in the .txt file it is called dlc_1_441_con. I was able to find this easily in the file tree
-
It is possible to export the entire conversation in one go, but in order to do that the fast export savepath needs to be set first. To do this, go to File > Settings
Fix corrupted .ogg audio files with QuickBMS
- Assuming you've already extracted the game files using the above instructions, and you have DEMD
Database set up to explore the extracted content, you need to find the problematic audio files again
in the file tree. You should have the names of the corrupted audio already from the failed
conversion, so just search for the name.
- After you find it, check the right panel for more information. The first line should display a long
string of numbers and letters, a forward slash and then another string of text followed by a .bin
extension. The second line displays the name of the file. We need the first line, as these strings
are pointing to a path to where the audio is actually located. The first section is the
name of the .pc_headerlib file the audio was contained within, and the second section the name of
the .bin file that contained the actual audio.
- In your game directory, go to the /extracted folder made earlier when extracting the game where the
NameMap.txt is located (either the default runtime or DLC runtime, in this case I've extracted from
the DLC). In this folder, you should be able to find a subfolder with a name that matches the first
section of the path displayed in the panel. Within that folder, should be the .bin file with the
audio. You can also use the search function and type the .bin names in manually to find the files.
- Depending on how many corrupted files you may need to repeat this process again, for me I had
multiple corrupted audio within the same dialogue "conversation", so all the .bin files I needed
were located within just one folder. I copied these .bin files to my Desktop so I could continue
working outside of the game installation files.
- Next you need to create a script file for converting the .bin files into .fsb audio files. You can
do this by opening up Notepad or any text editor of your choice, pasting this code in, and then saving it as a .bms file.
- Download and extract QuickBMS. In the QuickBMS folder, place the bin2fsb script and also make a
subfolder called extraction.
- Run QuickBMS.exe - when prompted, select the script you created, the input files (.bin files),
and the output destination (extraction subfolder) and continue. The progress will display for every
file selected as well as any errors.
- Once done, various .fsb audio files should have been extracted in the output folder set.
- To convert the .fsb files to .wav you need to use vgmstream. Download and extract vgmstream on your
computer, and either drag each of the .fsb files one-by-one onto vgmstream-cli.exe or create a batch
script, making sure to set the path to match where vgmstream-cli.exe is located on your drive, like
so:
FOR /R
%%a IN (*.fsb) DO "...\vgmstream-cli.exe" -l 2 -f 10 -o "%%a.wav" "%%a"
- To run the batch convert, first place all the .fsb files into the vgmstream folder, and then
double-click the .bat file.
- The audio should now all be converted to playable .wav files in the same folder.
- This step is optional, but I found that it helped with organising, I renamed each of the .wav file
to match the corresponding name in DEMD Database.
- I opened one of the .wav files in Audacity to compare it to the corrupted ones. The properly
converted .wav files appear to have multiple layers of audio, the first two being the stereo channel
for the voice, the second two appearing empty, and the third two with environmental effects such as
reverb and echo. The corrupted ones are just one channel with various peaking blips and noise. Here
are screenshots of the difference:
- Assuming you've already extracted the game files using the above instructions, and you have DEMD
Database set up to explore the extracted content, you need to find the problematic audio files again
in the file tree. You should have the names of the corrupted audio already from the failed
conversion, so just search for the name.
- After you find it, check the right panel for more information. The first line should display a long string of numbers and letters, a forward slash and then another string of text followed by a .bin extension. The second line displays the name of the file. We need the first line, as these strings are pointing to a path to where the audio is actually located. The first section is the name of the .pc_headerlib file the audio was contained within, and the second section the name of the .bin file that contained the actual audio.
- In your game directory, go to the /extracted folder made earlier when extracting the game where the NameMap.txt is located (either the default runtime or DLC runtime, in this case I've extracted from the DLC). In this folder, you should be able to find a subfolder with a name that matches the first section of the path displayed in the panel. Within that folder, should be the .bin file with the audio. You can also use the search function and type the .bin names in manually to find the files.
- Depending on how many corrupted files you may need to repeat this process again, for me I had multiple corrupted audio within the same dialogue "conversation", so all the .bin files I needed were located within just one folder. I copied these .bin files to my Desktop so I could continue working outside of the game installation files.
- Next you need to create a script file for converting the .bin files into .fsb audio files. You can do this by opening up Notepad or any text editor of your choice, pasting this code in, and then saving it as a .bms file.
- Download and extract QuickBMS. In the QuickBMS folder, place the bin2fsb script and also make a subfolder called extraction.
- Run QuickBMS.exe - when prompted, select the script you created, the input files (.bin files), and the output destination (extraction subfolder) and continue. The progress will display for every file selected as well as any errors.
- Once done, various .fsb audio files should have been extracted in the output folder set.
- To convert the .fsb files to .wav you need to use vgmstream. Download and extract vgmstream on your
computer, and either drag each of the .fsb files one-by-one onto vgmstream-cli.exe or create a batch
script, making sure to set the path to match where vgmstream-cli.exe is located on your drive, like
so:
FOR /R %%a IN (*.fsb) DO "...\vgmstream-cli.exe" -l 2 -f 10 -o "%%a.wav" "%%a"
- To run the batch convert, first place all the .fsb files into the vgmstream folder, and then double-click the .bat file.
- The audio should now all be converted to playable .wav files in the same folder.
- This step is optional, but I found that it helped with organising, I renamed each of the .wav file to match the corresponding name in DEMD Database.
- I opened one of the .wav files in Audacity to compare it to the corrupted ones. The properly converted .wav files appear to have multiple layers of audio, the first two being the stereo channel for the voice, the second two appearing empty, and the third two with environmental effects such as reverb and echo. The corrupted ones are just one channel with various peaking blips and noise. Here are screenshots of the difference:
Convert unsorted video files (cinematics, loading screens) with HxD
- Before starting, you need RAD Video Tools (Bink Video Player) to play the videos after converting them. Download and install it, as you'll need it for the next section of this guide to convert the audio streams from the video.
- Navigate to the runtime folder for either the main installation of Mankind Divided or the DLC runtime folder. Here the audio and video files appear to be unsorted and scattered. Video files have the extension .pc_binkvid
-
Save the file with HxD editor, this will automatically create a backup of the original .pc_binkvid file in the same folder
Extract and split audio tracks from .bk2 files with VGMToolbox
- Open VGMToolbox > Misc. Tools > Stream Tools > Video Demultiplexer > Options > set the Format to BIK (Bink Video Container) > check Split Audio Tracks > check Extract Audio and Video
- Drag and drop the .bk2 file you want to extract into the grey area and it will automatically run with the options set
Convert the audio streams using RAD Video Tools
- Open RAD Video Tools > navigate to and select every .audio.split.bik file you want to convert > Convert a File > Yes to Batch Process dialogue box if you are converting multiple files
Convert the audio streams using VLC Media Player
- Open VLC Media Player > Media > Convert/Save
-
The .bik file should now be converted into a .wav file and can be found in your set destination folder
Convert the video stream using RAD Video Tools
- Open RAD Video Tools > navigate to and select the original .BK2 file you want to convert > Convert a File
- Within the Bink Converter window > change the Output Type to .MP4 > leave the other settings as default > make sure Audio is NOT selected > click the Convert button on the right
- A window will appear showing the progress of the conversion
- The .BK2 file should now be converted to an .MP4 file without audio
Combine the video stream and the audio streams using FFmpeg
ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
ffmpeg -i 2B4301F00CBF6612436EB95C599AAFC3.mp4 -i 2B4301F00CBF6612436EB95C599AAFC3_00000000.audio.merge.wav -c:v copy -shortest output.mp4
To understand the command, the video and audio are set as inputs (filename will be different depending on which files you are doing this with), it will copy the same codec settings to avoid quality loss, it will cut to the shortest stream length to avoid overrunning if the lengths differ, and the output name will simply be output.mp4:
Tools
- DXMDExtract:
https://sktest.aruarose.com/DXMDExtract_v002.7z - DEMDDatabase:
https://disk.yandex.com/d/qUxdTmJa3MxHEs - QuickBMS:
https://aluigi.altervista.org/papers/quickbms.zip - QuickBMS bin2fsb script:
https://gist.github.com/criminalelements/bbeea8faa8980eb652fe3a1e9b82e209#file-bin2fsb-bms - vgmstream (make sure the version you use is bundled
with foobar2000):
https://github.com/vgmstream/vgmstream/releases/download/r1951/vgmstream-win64.zip - HxD:
https://mh-nexus.de/en/hxd - GameExtractor (make sure you get release version 3.16 which has .pc_fsbm to ogg support):
https://sourceforge.net/projects/gameextractor - RAD Video Tools:
http://www.radgametools.com/bnkdown.htm - VLC Media Player:
https://www.videolan.org - FFmpeg:
https://www.gyan.dev/ffmpeg/builds/ffmpeg-git-full.7z























































































