Skip to content

Releases: UlyssesWu/FreeMote

FreeMote v1.9.3

23 Jul 17:34
Compare
Choose a tag to compare

This is a pre-release for FreeMote v2. Try latest build for new features. If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll from properties.

What's New

  • Unpack & repack *_info.psb.m and *_body.bin. #28 #29
  • Support A8 texture format. #30
  • PsbDecompile unlink will produce unlinked PSB. Could be useful for some platforms.

To unpack/repack *_info.psb.m and *_body.bin:

PsbDecompile info-psb -k {key} xxx_info.psb.m -a
PsBuild info-psb xxx_info.psb.m.json

-a: Decompile all files in body.bin (can be very slow)
-k: MT19937 key (without filename, just keep filenames correct)

For detail usages, check -h and related issues.


Ulysses F Project:
FreeMote | FreeLive | Furikiri

FreeMote v1.9.2

22 May 10:30
Compare
Choose a tag to compare

This is a pre-release for FreeMote v2. Try latest build for new features. If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll from properties.

What's New

  • New command line options to keep number precision in json: PsbDecompile -hex will output all float numbers in hex, if you don't have to change any numbers, this is the best way to keep precision. PsBuild -double will regard all float numbers in json as double (instead of choose from float and double).
  • Support RGBA8_SW texture format.
  • Support MT19937 MDF.

FreeMote v1.9

28 Apr 13:51
Compare
Choose a tag to compare

This is a pre-release for FreeMote v2. Try latest build for new features. If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll from properties.

What's New

  • New style command line options. Learn more by -h. (old: /v4 new: -v 4)
  • New commands for FreeMote tools: PsBuild link, PsBuild port, EmtConvert pack, PsbDecompile unlink.
  • PSP Shell support (only for loading).
  • Some bug fixes and enhancements for PSB loading.

FreeMote v1.8

15 Dec 13:37
Compare
Choose a tag to compare

This is a stable release. Try latest build for new features. If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll from properties.

What's New

  • Support RGBA4444 (common) and A8L8 texture formats
  • Make Dullahan Load support EMT 3.9.6 models (old impure models built with old version PsBuild may no longer be supported, please re-compile them using new PsBuild)

FreeMote v1.7

19 Nov 07:25
Compare
Choose a tag to compare

This is a stable release. Try latest build for new features. If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll from properties.

FreeMote v1.7 has many bug-fixes. Upgrading to this version is strongly recommended. If you found a bug, please submit an issue report.

What's New

FreeMote Viewer

FreeMote Viewer now can open some compressed or impure PSBs via FreeMote.Plugins and Dullahan Load.
It is the first universal EMT Viewer 😎

PsdShell

#6 Initial support for PSB -> PSD conversion. (might be improved in v2)

⚠️ The output PSD files are licensed under CC BY-NC-SA 4.0.

Enhancement

  • Support linked block LZ4 compression via K4os.Compression.LZ4. (replacing my LZ4.Frame)
  • Enhance Dullahan Load resource section padding detection.

Bug Fix

  • #20 Fix bug which can not load old FreeMote jsons with TLG images.
  • Fix PsbPainter layer order incorrect bug when sorting resources.
  • Fix resx.json resource relative path incorrect bug when there is a folder with the same name as PSB.
  • Fix PSZ shell loading bug.

Thanks

Thanks HopelessHiro as the first sponsor.

My fuwanovel account: Ulysses


by Ulysses from Project AZUSA

FreeMote v1.5

08 Sep 07:42
Compare
Choose a tag to compare
FreeMote v1.5 Pre-release
Pre-release

This is a pre-release version for FreeMote v2.0. Therefore it doesn't have a binary release for now. You can grab the binaries from CI.
The current stable version is v1.3.2.

What's New

EmtMake

The ultimate solution for EMT PSB editing (#13), now ready for preview. Read wiki for more info.

Workflow: krkr EMT PSB -> MMO -> Free EMT Editor -> Modified PSB

Support timeline / texture / mesh / parameter editing. Appending/Editing custom parts is not supported for now.

You can buy me a coffee if this feature is useful to you!

Others

  • No longer use friendly name as key in resx.json. Use index number instead for the convenience of res editing manually.
  • Better name of files in decompilation/compilation.
  • EmoteConv is renamed to EmtConvert.

by Ulysses

FreeMote Toolkit v1.3

18 Aug 09:41
Compare
Choose a tag to compare

This is a stable release. Try latest build for new features. If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll from properties.

Revision:
v1.3.1: Bugfixes and EmoteConv improvement
v1.3.2: Rename EmoteConv param c to -c to avoid confusion. Example: EmoteConv -cLZ4 dx.psb

FreeMote v1.3 brings many new features. Upgrading to this version is strongly recommended. If you found a bug, please submit an issue report.

What's New

Performance

FreeMote v1.3 improves PSB loading performance a lot (5x~10x+ faster than FreeMote v1.2), especially for those PSBs with a lot of strings (e.g. SCN).

⚠️On the same time, it also requires a little more memory (avg. 200MB~300MB for emote PSB, fewer for other types) for the fast in-memory loading. If you don't have that much memory, using /oom param in PsbDecompile will disable that.

Dullahan Load

DuRaRaRa!!

Dullahan Load is a new feature to load PSB without header. That means FreeMote now can load some header corrupted/encrypted PSBs without key.

⚠️Dullahan Load is slower than normal loading; Dullahan Load is not FreeMote.Purify, it won't get the key for you.

Plugins

FreeMote now has a Plugin system for loose coupling and extensible design. FreeMote.Plugins contains official plugins by FreeMote and you can learn them to write your plugins. Read wiki for detail.

FreeMote.Plugins brings support for some PSB Shell types, including LZ4, MDF and PSZ. EmoteConv can compress/decompress shell types. PsbDecompile and PsBuild can now decompile/compile these types. To compile a PSB to shell type, add a line in resx.json:

"Context": { "PsbShellType": "LZ4" }

With MDF and LZ4 support, FreeMote should completely replace psbtools now.

⚠️FreeMote.Plugins requires some self-made nuget packages to compile. You should add a myget feed to your VS (or nuget setting), or just don't compile FreeMote.Plugins project.

Currently we use MonarchSolutions MyGet feed: https://www.myget.org/F/monarchsolutions/api/v3/index.json

FreeMoteViewer improvements

Now you can view embedded motions (timelines) in emote PSB.

Important bug fixes

  • Support MMO resource renaming. (Sometimes it causes errors in previous versions.) #16
  • Support NaN numbers decompilation. #14

Breaking Changes

FreeMote now implements FreeMote Number-String Conversion Convention. That means sometimes it converts PsbNumber to string (rather than number) in json, or vise versa. It's mainly used for NaN numbers support, but when such Number-String appears, it breaks the compatibility with psbtools pcc and old versions FreeMote. However, since the psbtools decompiler can not handle NaN correctly either (the result will be -1.#IND00 which can not be parsed by pcc), it may not matters.

TlgVersion: 6 in resx.json is replaced by "Context": { "TlgVersion": 6 }.

You don't have to manually download TlgLib.dll for TLG support since it's now a reference of FreeMote.Plugins.

Thanks

Thanks HopelessHiro for PSB samples used in this version's tests.

My fuwanovel account: Ulysses


by Ulysses from Project AZUSA

FreeMote Toolkit v1.2

14 Jul 13:14
2887989
Compare
Choose a tag to compare

This is a stable release. Try latest build for new features.

What's New

  • Enable TLG encoding support via FreeMote.Plugins and FreeMote.Tlg.
  • Update FreeMoteViewer to emote v3.92.

TlgLib is included in this release. For CI/autobuild versions, you have to manually download TlgLib if you want TLG encoding feature.

FreeMote Toolkit v1.0

22 Nov 16:32
Compare
Choose a tag to compare

This is a stable release. Try latest build for new features.

by Ulysses with Project AZUSA
FreeMote ToolKit includes:

  • EmoteConv (Encryption/Decryption)
  • PsbDecompile (Decompiler)
  • PsBuild (Compiler)
  • FreeMoteViewer (Viewer)

Requirement

FreeMote Tools require .NET 4.7 to run.
FreeMote uses .NET 4.6 .

Comparing with psbtools

  • FreeMote has better support for EMT PSB.
  • FreeMote supports PSBv2-v4, while psbtools only supports v2 (and sometimes you get errors).
  • FreeMote can get/use textures when decompiling/compiling, while in psbtools you need to combine decompiler/pcc with rl_image/rl_convert.
  • FreeMote can convert PSB platforms.
  • FreeMote is a lib with many APIs to use and easy to extend, while psbtools is aimed to be tools.
  • FreeMote is easier to read, compile, modify and use.
  • and more.