Managed Emote/PSB tool libs. (In Dev)
Switch branches/tags
Clone or download


Build Status

Managed Emote/PSB tool libs.



Basic functions. Decrypt or encrypt EMT PSB files.

FreeMote SDK

Special API libs for EMT engine, which take pure (unencrypted) PSB files as input.


Parse PSB format. Draw the EMT model (statically) without EMT engine.


Compile and decompile PSB files. Convert PSB among different platforms. Recover EMT projects.


External/Experimental features. Read wiki for usages.

  • Images: TLG encoding/decoding support via FreeMote.Tlg (by Ulysses).
  • Shells: Compression/decompression support.

FreeMote.Purify (Unreleased)

Infer and calculate the key used by EMT PSB file just from the PSB file (rather than get from engine).

FreeMote.FreeLive (Unrealistic)

EMT <-> L2D Conversion


EmtConvert (FreeMote.Tools.EmtConvert)

Convert EMT PSB files. A managed version of emote_conv(by number201724).

PsbDecompile (FreeMote.Tools.PsbDecompile)

Decompile PSB files. A managed version of decompiler(by number201724).

PsBuild (FreeMote.Tools.PsBuild)

Compile PSB description json to PSB. A managed version of pcc(by number201724).

EmtMake (FreeMote.Tools.EmtMake) (Preview)

Decompile an EMT PSB to MMO project. The output file is always licensed under CC-BY-NC-SA 4.0. No commercial usage allowed!

FreeMote Viewer (FreeMote.Tools.Viewer)

Open and render EMT pure PSB.

FreeMote Editor (FreeMote.Editor) (In Dev)

FreeMote GUI tool.


This project requires VS 2017 and .NET 4.6-4.7 to build.

FreeMote.Plugins requires a MyGet feed to get FreeMote.Tlg (TlgLib) reference. If you don't need FreeMote.Plugins, you can unload FreeMote.Plugins project and remove it from other projects' reference.

To install FreeMote.Tlg nuget package, switch your default project to FreeMote.Plugins and use nuget command:

PM> Install-Package FreeMote.Tlg -Source

Or, you can add that nuget feed in your VS. (Recommended)

by Ulysses ( from Project AZUSA

FreeMote is licensed under LGPL.

Additional clauses: If the input is not made by yourself, you are NOT allowed to use the output for any commercial purposes.

Issue Report · Pull Request · Wiki

Support Us


  • @9chu for reverse engineering help.
  • @number201724 for PSB format references. LICENSE: MIT
  • @nalsas (awatm) for EMT Editor help.
  • @WcLyic for some PSB samples and EMT Editor help.
  • MonoGame for DxtUtil code. LICENSE: Ms-PL
  • Singyuen Yip for Adler32 code.
  • @gdkchan for DxtCodec code.
  • @mfascia for TexturePacker code.
  • @morkt for ImageTLG code. LICENSE: MIT
  • @HopelessHiro as sponsor!
  • All nuget references used in this project.