Skip to content

UlyssesWu/FreeMote

Repository files navigation

FreeMote

Build Status

Managed EMT/PSB tool libs.

Download FreeMote Toolkit

It's required to attach the text of FreeMote.LICENSE with your release if you're using FreeMote codes or binaries.

About PSB

FreeMote is a set of tool/libs for M2 Packaged Struct Binary file format. The file header usually starts with PSB/PSZ/mdf, and the file extensions usually are .psb|.psz|.mdf|.pimg|.scn|.mmo|.emtbytes|.mtn|.dpak|.psb.m.

However, there are some other file formats using the same extensions. They are NOT supported:

  • .psb: PlayStation Binary (PS3) | PhotoShop Big (Photoshop)
  • .mdf: Mirror Disc File (Alcohol 120%) | Primary Data File (MSSQL)
  • .mtn: Motion File (Live2D)

Before submitting an issue or asking a question, please check your PSB file header with a hex editor.

Components

FreeMote

Basic functions. Decrypt or encrypt EMT PSB files.

FreeMote SDK

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

FreeMote.Psb

Parse and generate PSB.

FreeMote.PsBuild

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

FreeMote.Plugins

External/Experimental features. Read wiki for usages.

FreeMote.Purify (Unreleased)

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

Tools

Read wiki for detailed usages.

EmtConvert (FreeMote.Tools.EmtConvert)

Convert EMT PSB files.

PsbDecompile (FreeMote.Tools.PsbDecompile)

Decompile PSB files to json files and resources.

PsBuild (FreeMote.Tools.PsBuild)

Compile PSB json files and resources to PSB.

EmtMake (FreeMote.Tools.EmtMake) (Preview)

Convert 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. This tool is powered by FreeMote.NET.

Build

This project requires VS 2022 and .NET 4.8 to build.

FreeMote.Plugins / FreeMote.Plugins.x64 require a MyGet feed to get external libs made by us. If you don't need FreeMote Plugins, you can unload Plugins projects and remove them from other projects' reference.

To install our own nuget packages, add this feed to your IDE:

https://www.myget.org/F/monarchsolutions/api/v3/index.json

Test

Get PSB samples for test and research from FreeMote.Samples.

Thanks for everyone who provided these samples!


by Ulysses (wdwxy12345@gmail.com)

Creative Commons License
FreeMote is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).

Some outputs of FreeMote (mmo/psd etc.) are transformed from FreeMote code and are considered as Adapted Material. Therefore they're always licensed under CC BY-NC-SA 4.0. wiki

Issue Report · Pull Request · Wiki

Support Us

Thanks