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