LZSS decompression problem
Posted: Thu Sep 25, 2014 5:04 am
Hi,
I am a fan of Sega's Yakuza games. Unfortunately, Ryu Ga Gotoku 5 is not translated. I would like, if possible, start a translation project over internet. Consequently, I have to decompress every packed files.
So, I decided to write a GUI tool, using C++, that handle decompression and "compression" (importation).
I started to work on and I discovered that a "parc" script was made for quickbms (thanks to luigi), but for learning purpose, I chose to continue the work done so far.
Here is the things done (*.par):
-the offset of the number of repertories is known.
-the offset of the number of files is known.
-the offsets of the name of files or repertories have been retrieved.
-the offsets of every files in archive have been retrieved.
-the offset of compressed size of every files is known.
-the offset of uncompressed size of every files is known.
Next, I moved to the offset of the first compressed file in the archives where I am stuck. I searched for LZSS compression on internet but I did not find anything relevant.
Here is an extract of one of the archives :
This is a text file which list the 7 textures of the archive. The data begin to be garbled at the end of the 4th line (After 9073). A byte is added every 7 or 8 bytes before 9073 (00). There must be an operation to do on 90 (end of line 4) in order to be redirected to an offset that correspond to the correct datas because this value does not appear in the decompressed file.
I am a newcomers in the world of Data's compression/encryption. As a result, I really have poor knowledge about that .
Can someone help me to uncompress this thing please ?
thanks in advance.
Edit : here is the full file with a text file containing information about several offset. The text file has been written with notepad. It may be unreadable with notepad (line moved).
I am a fan of Sega's Yakuza games. Unfortunately, Ryu Ga Gotoku 5 is not translated. I would like, if possible, start a translation project over internet. Consequently, I have to decompress every packed files.
So, I decided to write a GUI tool, using C++, that handle decompression and "compression" (importation).
I started to work on and I discovered that a "parc" script was made for quickbms (thanks to luigi), but for learning purpose, I chose to continue the work done so far.
Here is the things done (*.par):
-the offset of the number of repertories is known.
-the offset of the number of files is known.
-the offsets of the name of files or repertories have been retrieved.
-the offsets of every files in archive have been retrieved.
-the offset of compressed size of every files is known.
-the offset of uncompressed size of every files is known.
Next, I moved to the offset of the first compressed file in the archives where I am stuck. I searched for LZSS compression on internet but I did not find anything relevant.
Here is an extract of one of the archives :
Code: Select all
534C 4C5A 0001 1000 B700 0000 5F00 0000 SLLZ....-..._...
0037 0D0A 3030 3030 006C 6973 742E 7478 .7..0000.list.tx
7400 0D0A 3264 5F79 6B5F 0074 6974 6C65 t...2d_yk_.title
5F6C 6F00 676F 5F74 6D2E 6464 9073 8B01 _lo.go._tm.dd.s<.
3030 3F01 6261 63E0 6B7F 0173 015F 0170 00?.bacàk..s._.p
7265 73F8 736F 0162 012F 03D6 0805 06 resoso.b./.Ö...
I am a newcomers in the world of Data's compression/encryption. As a result, I really have poor knowledge about that .
Can someone help me to uncompress this thing please ?
thanks in advance.
Edit : here is the full file with a text file containing information about several offset. The text file has been written with notepad. It may be unreadable with notepad (line moved).