Converting 3d model from Mafia 2

Converting 3d model from Mafia 2

Русский English

[UPDATED] — 24 Oct 2020

In this article I will describe the process of converting models from Mafia 2 into 3ds Max. Converted models have a skeleton and are ready for animation.

Show list of changes (24 Oct 2020)

— re-built M2CharMC / M2ObjMC tools with latest version of compilator.

Show list of changes (27 Jan 2012)

— I updated the program M2CharMC and M2ObjMC and now they are NOT IDENTIFIED AS VIRUS. You can download the updated links.

Show list of changes (29 Dec 2010)

— added english language.

Show list of changes (30 Nov 2010)

— added direct link for OpenCOLLADA [download] [page] — found a model that is extracted is not correct, it is:
<install path>/mafia ii/pc/sds/hchar/franca.sds
for its conversion you need to use the original dumper from DerPlaya [page], and open model in XSI, or in latest version of Blender.

Note: The article is designed for users familiar with working in 3ds Max and does not cover such things as, for example, texturing objects, setting up materials, etc.

For the conversion process, we need the following tools:

  • 3ds Max (i use 2008 х64) should work on versions: 7-2011
  • M2CharMC v0.7 (model extractor from *.sds) Author: Tosyk [download]
  • M2ObjMC v2.6 (model extractor from *.sds) Author: Tosyk [download]
  • OpenCOLLADA (3ds Max plugin to open *.dae files) [github] [page]
  • ExSDS v0.3 (*.sds unpacker) Author: CJay [download]
  • Gibbed Illusion Tools (tool kit) Author: Gibbed [download] [page]

1. Unpacking the game archives. Install the game Mafia 2. If the installation is done by Steam service, then on the hard drive should already be unpacked steam-archives. Before using the disk versions of the game, you must first extract the files. Game archives are located at

<install path>\mafia ii\pc\sds\

and they have the *.sds extension. In these archives are all resources.

2. Model conversion. Game models are in

<install path>\mafia ii\pc\sds\hchar\ — characters
<install path>\mafia ii\pc\sds\cars\ — cars
<install path>\mafia ii\pc\sds\fmv\ — objects and characters (from the cutscenes)
<install path>\mafia ii\pc\sds\traffic\ — pedestrians
<install path>\mafia ii\pc\sds\wardrobe\ — objects in the closet
<install path>\mafia ii\pc\sds\weapons\ — weapons
<install path>\mafia ii\pc\sds\player\ — main characters
<install path>\mafia ii\pc\sds\city\ objects of the city

It is quite possible that the models are also present in other archives, but I wrote only about the most important of them. To convert the models and textures, I wrote 2 tools that facilitate the model conversion process. Each of the two programs extracts the model from *.sds files and converts it into a format *.dae.
Tools:

  • M2CharMC v0.5 (character converter)
  • M2ObjMC v2.5 (game object and car converter)

Converters are based on two programs:

  • Mafia2ModelDumper (model dumper) Author: DerPlaya [page]
  • mesh2rdm (game model converter) Author: Rich Whitehouse [page]

Note: Why not use the original program? Because after the conversion with Mafia2ModelDumper *.dae-files is not impossible to properly use in 3ds Max.

For example converting I took two files.

<install path>\mafia ii\pc\sds\hchar\joeciv.sds
<install path>\mafia ii\pc\sds\cars\shubert_taxi.sds

joeciv.sds contains the character Joe (the summer version). shubert_taxi.sds contains a model of the car Shubert (version of a taxi). So, drag-and-drop joeciv.sds (or several files) on the M2CharMC (m2char_mc_v0.5.exe) and after a short conversion process near the source file (in my case it joeciv.sds) will be a two files:

  • joeciv.JOECIV.Hips.L0.dae — high-poly model
  • joeciv.JOECIV.Hips.L1.dae — low-poly model

Note: You can open *. dae files  in 3ds Max. However, the built-in importer cope with the format is not the best way, so I recommend using the OpenCOLLADA importer.

After importing joeciv.JOECIV.Hips.L0.dae (I chose the high-poly model) in 3ds Max you will see:
In the same way, but the with M2ObjMC program convert shubert_taxi.sds. Import model in 3ds Max. In viewport you’ll see:
3. Texture conversion. Textures are packaged in *.sds files along with the model and the extracting with ExSDS tool. Interface:Files extract with command Operations -> Extract All. Recoverable files are in *.dds format.

4. Also. For this game currently released 7 DLC:

  • Vegas Pack
  • War Hero Pack
  • Renegade Pack
  • Greaser Pack
  • Made Man Pack
  • Jimmy’s Vendetta
  • Joe’s Adventures

Format of archives in the DLC is the same as in the original (*.sds), but these files are encrypted. From them we can extract a model, but can not extract texture. To decrypt files, use Illusion DecompressSDS, part of the Illusion Tools from Gibbed. The program is console only and does not have an interface. To decrypt the *.sds you need to drag the source *.sds file on Gibbed.Illusion.DecompressSDS.exe.

In the resources of this game is hard to find eye for characters, since they all shared. They may be located in the most unexpected *.sds files, so I am publishing an archive of the most common eye textures. [download eye texture].

For cars as well as for the characters were used shared textures, as well as models (wheels), they are placed in the archives:

<install path>\mafia ii\pc\sds\cars\cars_universal.sds
<install path>\mafia ii\pc\sds\cars\cars_universal2.sds

For some files *.sds can find a copy, but with «_z» suffix , for example, for file shubert_taxi.sds this copy is called shubert_taxi_z.sds. Suffix «_z» means «winter «,most likely this file contains the variations of winter textures.

Found a model that is extracting is not correct, it:

<install path>\mafia ii\pc\sds\hchar\franca.sds

or its conversion you need to use the original dumper from DerPlaya [page], and open model in XSI, or in latest version of Blender.

5. Rendering. 3ds Max and shaders.

101 thoughts on “Converting 3d model from Mafia 2

  1. fferro, you didn’t get materials in max ’cause original dumper that i used didn’t found material info in original *.sds files, so all you have to do is apply texture manually

  2. Thnks!!!It’s working…if it’s a program for dae to viev 3d..than if i like to convert..I use Sketchup…

  3. Very cool utilities — thanks a lot for providing them!
    But I miss 2 things:
    1. After unpacking, I have thousends of buildings and hundreds of textures.
    Is there any chance to figure out which texture belongs to which part of which building? This is very difficult manually…
    2. I need some kind of transformation matrix where to place each building to re-assemble a complete city-block. Do you have a clue where to find this information in the files?

    It would be of great help if you could extend your programs to map the right textures and include the transformationm matrix for each object…

  4. WinOSi, i wanna get this information too, but for now it’s not possible.
    so i applying textures manually and place objects while playing the game

  5. I found out where to find texturing information and transformation matrices.
    (It’s already prepared in the modeldumper source)
    If you’re still interested to improve your tool, I may show you…

  6. OK, «mafia ii\edit\materials\default.mtl» is the materials library containing all the texture-names.
    «mafia2modeldumper\release\Mafia2Tool\FileFormats\MaterialLibrary.cs» is the source code to load this material library.
    In «MaterialInfoEntry.cs» there is imported a 64-bit «MaterialHash» for each group of triangles. With this Hash-Key you can query the materials library to find the textures.
    In file «BaseComponent.cs», there is a «TransformMatrix» for each objects, that tells exactly where to place and orient that object. In my tests, I had to scale the dae’s by before applying the matrix.

  7. er… the missing scale factor from above is (-0.01, -0.01, 0.01).
    The only thing missing for the complete city are the shared objects like trees etc.
    They are stored in city_crash.sds, but the exported dae’s of the foliage seems to be corrupt. Maybe you can help here…

  8. oh, that’s quite interesting, never look into source though
    can we continue our conversation at some private place, skype?

  9. Is it possible to open a dae file make any mesh change and repack it to use it in Mafia 2?

  10. hi Tosyk!

    I try to run m2char_mc_v0.5.exe and m2obj_mc_v2.5.exe but i got an Error: «No $CmdLine». Do u have any idea what does it mean?

    OS: Win 7 32bit

  11. Tosyk: I have read it, but i cant see how it helps with the error message. Anyway now i use Mafia2ModelDumper by DerPlaya.

  12. AceVentura, exactly like:

    So, drag-and-drop joeciv.sds (or several files) on the M2CharMC (m2char_mc_v0.4.exe) and after a short conversion process near the source file (in my case it joeciv.sds) will be a two files:…

  13. Lol.I have tried it in Total Commander thats why dnd didnt work.

    Have you figuared out how to get the material information of a DAE file?
    Its really hard to find out which dds belongs to which dae.
    Would be nice to get that info from the sds too.

  14. I extract *.dae files and textures bu the UVW for models are clear.when I give them their textures it’s wrong.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *