Releases: UlyssesWu/FreeMote
FreeMote v4.0
This is a stable release. Try CI builds for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
Revision
v4.0.2 (2024-12-20): Fix a bug causing PSB which root object is array cannot be decompiled. #141
v4.0.1 (2024-11-20): Fix a bug causing assets generated by PsbDecompile info-psb
are wrongly repacked by PsBuild info-psb
. #138
What's New
- FreeMoteViewer: now targets
x64
, with EMT v3.9.7 DX9 engine. - Add support for some uncommon M2 PSB types, including
SprBlock
,SprData
,ClutImg
,Chip
. #124- Add SprPainter to render
SprData
PSB to sprite sheet images. cmd line:EmtConvert print CHR\XXX\SFF\1PXXX.spr.psb.m.json
.
- Add SprPainter to render
- Add support for image types:
RGBX8_SW
for PS3;RGB5A3
,TileBeRGBA8_Rvl
,TileCI8
,TileCI4
for Wii (revo). #130 #135 - EmtConvert: You can drag & drop
tlg
images to convert them topng
. - Support for PSBv1.
Encoding
can be set in eachresx.json
for compilation purposes.--disable-plugins
command line parameter, to disable plugins loading when startup.- Upgrade to SDK style project, and use Github Actions to build CI builds.
- To download the latest build, go to https://github.com/UlyssesWu/FreeMote/actions , click the most recent workflow, and find download under Artifacts.
FreeMote v3.8
This is a stable release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
What's New
- Audio: Fix
OPUS
support; support 2 channelsVAG
(will be converted to stereo wav), andP16
. #117 - Add warning to prevent user decompile
body.bin
. Always useinfo-psb
withpsb.m
. #118 PsBuild link
now supports shelled PSB. #120- PSD: Improve pimg PSD import, and warn if you want to convert EMT PSB because it has no support. #109 #121
- Try avoid
System.Text.DecoderReplacementFallback
issue. #122 - Replace MT19937 lib because the former one is no longer maintained.
FreeMote v3.7
This is a stable release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
What's New
- PsbDecompile
info-psb
: Extract files to their target folders correctly. #114 - PsBuild
info-psb
: allow set output body name via-b
. - Fix PS3
RGBA8_SW
(big endian) image extract. #113 - Move archive pack/unpack functions into FreeMote.PsBuild lib for API usage.
- Add support for PS4
RGBA4444_SW
(with tile) image format.
FreeMote v3.6
This is a stable release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
Revision
- v3.6.2 (2023-07-18): Fix nuget reference version issue. #111
- v3.6.1 (2023-06-01): Set PSD PPI to default value 72. #109
What's New
- DXT1 texture format support. #106
- Fix compile for root non-object PSB.
- EmtPainter canvas size improvement.
EmtConvert print emt.psb
- FreeMoteViewer improvement: pause and capture features. Still very basic, will be improved later.
- Fix issue: EmtMake generated mmo (from PSBv4) cannot be exported as krkr PSB from editor.
- Implement pimg <-> psd conversion.
EmtConvert pack -s PSD xxx.pimg
;EmtConvert pack -s PSD xxx.pimg.psd
#109
You can now convert pimg UI interface to PSD, use PS to tweak/translate, and finally convert PSD back to pimg.
Add/Delete layers are supported.
FreeMote v3.5
This is a stable release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
What's New
- Sanitize texture's file name to prevent invalid file name error, by @pkuislm #104
MtnPainter
: Output preview images for.mtn
files. Usage:EmtConvert print xxx.mtn
#104 #105
FreeMote v3.4
This is a bug-fix release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
Revision
- v3.4.2 (2022-12-31): Fix PSV RGBA8_SW image process.
- v3.4.1 (2022-12-08): Fix PSV RGBA8 image process. #95
What's New
Fix sound_archive PSB Windows WAV (ADPCM) resource output. #94
FreeMote v3.3
This is a stable release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
Starting with this version, FreeMote requires .NET Framework 4.8 (instead of 4.7.2) to run.
What's New
- Use
-e
(--encoding
) in PsbDecompile and PsBuild to set encoding. (UTF-8
by default) - PSBv1 and MZS (ZStandard) shell support. Reference: GMWare.M2
- Force set PSB type with
--type
in PsbDecompile. - When performing krkr to win spec conversion, handle timeline folder and skip unexisted icons in
krkr
motion
PSB. #81 #89 - Improve
archive
PSB extraction. #82 - More hints. #84
- Implement BC7 texture decode and encode (with BCnEncoder.NET) for
nx
PSB. #85 - Audio: Fix OPUS export without intro+body pattern.
- Improve MFL (fastLZ) shell support. #87
- Support texture flip for PS3
RGBA8_SW
textures. #87 - EmtConvert command
mdf
is renamed tompack
(since it can pack/unpack MT19937 MDF/MFL/MZS, not only MDF). #87mdf
command will be removed in future versions.
- Use
-x {expire_suffix}
inEmtConvert mpack
to make EmtConvert try finding correct filenames when unpacking MT19937 shells.- For example,
abc.txt
is a file you extracted fromxxx_info.psb.m
andxxx_body.bin
(without usingPsbDecompile info-psb -a
), and thexxx_info.psb.m.json
contains"expire_suffix_list": [".scn.m"]
. To unpackabc.txt
, you can use:EmtConvert mpack -k {key} -l {len} abc.txt -x .scn.m
. The mpack feature will then try filenames includingabc.txt.scn.m
abc.txt.scn
abc.txt
as a part of the decryption seed until the file is correctly decrypted or all cases failed. - That's because MT19937 shells require a correct seed (key + filename) to decrypt, while the filename must be the only correct one. However it can be
abc.txt.scn.m
abc.txt.scn
abc.txt
depending on file extension (txt
), type (scn
) andexpire_suffix_list
. SoEmtConvert mpack
(andPsbDecompile info-psb
) will try all these combinations. PsbDecompile info-psb
will automatically get theexpire_suffix_list
fromxxx_info.psb.m
, butEmtConvert mpack
has no chance to get them. Therefore, you should append-x .scn.m
for EmtConvert. Otherwise,EmtConvert mpack
will only try the input filename (abc.txt
) which is not correct in this case (should beabc.txt.scn.m
). Of course you can just renameabc.txt
toabc.txt.scn.m
to get correct results.- If you're not sure about the
expire_suffix
in-x {expire_suffix}
, see the common cases table below.
- For example,
info psb name | common expire_suffix |
image / font / motion / patch / config | .psb.m |
scenario | .scn.m |
voice / sound | .psb |
script | .nut.m |
Known issues
- CI4, CI8 image combination should be implemented in later versions. #70
- BC7 Texture encoding in this version (with BCnEncoder.NET) is quite slow (maybe a few minutes). Should be improved with a native lib or tool in later versions. #85
- MXB shell for xbox should be implemented in later versions. #87
FreeMote v3.2
This is a stable release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
What's New
- FreeMoteViewer will not show console window. (You can still use
--help
to get instructions.) - Fix a bug to handle M2's strange behaviour for archive PSB (use different key for files with same extension). #69 #76
- Support
umd_root
archive PSB (psb.m). #70 - Support PSP spec PSB with image swizzle. #70
- You can set
body.bin
path using-b
when usingPsbDecompile info-psb
. #70 - Add mfl (fastLZ) shell support. #64
- Add support for android sound_archive & map type. #64
- Handle "resolution" between win and krkr PSB conversion. (check
--resolution
when converting betweenwin
andkrkr
spec) #75
Known issues
- CI4, CI8 image combination should be implemented in later versions. #70
FreeMote v3.1
This is a stable release. Try latest build for new features.
If error occurs when using FreeMote tools, try unblocking FreeMote.Plugins.dll
FreeMote.Plugins.x64.dll
from properties.
Revision
- v3.1.1 (2021-10-24) : Fix
The reader's MaxDepth of 64 has been exceeded.
issue.
What's New
- Try all possible keys when unpack info.psb.m & info.bin. #68
- Support a strange PSB type which root is a list rather than dictionary.
FreeMote v3.0
Thank you for using FreeMote. Here we come with the 3rd generation of FreeMote!
For the future plan, see v4.0 roadmap.
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
- Image: Decode and encode (with external tool) ASTC_8PP images used in NX platform. #63 wiki
- BugFix: FreeMote Viewer used to crash when double clicking. #65
- Feature: For
image
(PsbType.Tachie
) PSB, PsbDecompile will only output combined images, and PsBuild will compile with combined images. #66 - PsBuild will show a warning if your images may cause errors while compiling. #66
- Support
TileA8L8_SW
TileL8_SW
TileRGBA5650_SW
image formats used in PS4 platform. #67
FreeMote is free to use for free projects. If you're going to modify the source code or redistribute the binary files or promote your paid services/products with FreeMote involved, you must follow the CC BY-NC-SA 4.0 License.
If you want to use FreeMote commercially, read wiki License page and ask me for another license (maybe charged).