Managed EMT/PSB tool libs.
It's required to attach the text of FreeMote.LICENSE with your release if you're using FreeMote codes or binaries.
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.
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 and generate PSB.
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 (x64).
- Shells: Compression/decompression support, such as FreeMote.FastLz (x64).
- Audio: Experimental support for audio used in PSB.
Infer and calculate the key used by EMT PSB file just from the PSB file (rather than get from engine).
Read wiki for detailed usages.
Convert EMT PSB files.
Decompile PSB files to json files and resources.
Compile PSB json files and resources to PSB.
Convert an EMT PSB to MMO project. The output file is always licensed under CC BY-NC-SA 4.0. No commercial usage allowed!
Open and render EMT pure PSB. This tool is powered by FreeMote.NET.
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
Get PSB samples for test and research from FreeMote.Samples.
Thanks for everyone who provided these samples!
by Ulysses (wdwxy12345@gmail.com)
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
- @9chu for so much help.
- @number201724 for PSB format references. LICENSE: MIT
- @WcLyic for PSB samples and Editor help.
- @nalsas (awatm) for 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, ArcPSB, PspDecompression, Bc7Decoder code. LICENSE: MIT
- @xdaniel & @FireyFly for GetPixelCoordinatesPSP and PostProcessing code. LICENSE: MIT
- @Nyerguds for BitmapHelper code.
- @HopelessHiro, @skilittle as sponsors!
- vgmstream and @SilicaAndPina for VAG related code.
- @mafaca for AstcDecoder code. LICENSE: MIT
- @RickStrahl for ColorConsole code.
- @GMMan (Yukai Li) for information of mzs, PSBv1, trie form etc.
- All nuget references used in this project.