Closed LITTOMA closed 3 years ago
There already are plugins for this in Kuriimu2. It IS the standard LZ4 algorithm, but without the standard specified LZ4 header information. You basically assume some default settings to decompress it.
Have a look at the Fab plugin (https://github.com/FanTranslatorsInternational/Kuriimu2/blob/dev/plugins/HeadstrongGames/plugin_headstrong_games/Archives/Fab.cs) L39 and L40 specifically. It checks for the LZ4C magic, and then initializes the file as compressed with Lz4Headerless.
Using Kuriimu2 De-/Compression dialog, you can de-/compress a file with LZ4Headerless yourself. Or call Compressions.Lz4Headerless from the Kompression library in code to de-/compress via code.
If this answered your questions, please close the issue.
I got it. Thanks.
Hello! I'm not sure if this is the right place to ask a question, but I would appreciate it if you could answer.
Two months ago, I was working on the hacking jobs for the Chinese translation of Pokémon Art Academy. When I found some "LZ4C" nodes in the fab files, I presumed that they were compressed by the lz4 algorithm.
However, when I tried to decompress them with the lz4 tool, I experienced a failure. The standard lz4 decompressor does not seem to recognize these data.
Therefore, I gave up on compressing these files after modified. And the game engine reads these uncompressed files correctly. This compression algorithm was still a mystery to me until the time of the translation release.
So my question is: Is it the standard lz4 algorithm? If so, how can I compress/decompress it correctly?
Thank you in advance.