Releases: UlyssesWu/FreeMote
FreeMote v1.9.3
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.
FreeMote v1.9.2
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 asdouble
(instead of choose from float and double). - Support
RGBA8_SW
texture format. - Support MT19937 MDF.
FreeMote v1.9
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
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 newPsBuild
)
FreeMote v1.7
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)
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
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 toEmtConvert
.
by Ulysses
FreeMote Toolkit v1.3
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).
/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.
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.
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
This is a stable release. Try latest build for new features.
What's New
- Enable TLG encoding support via
FreeMote.Plugins
andFreeMote.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
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 combinedecompiler
/pcc
withrl_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.