Members morrigan Posted March 17 Members Posted March 17 (edited) Hi everyone, I've recently been trying to translate the PS1 game Chou Jikuu Yousai Macross - Ai Oboete Imasu ka (Macross: Do You Remember Love?), but I've found that the game's resource files are all in a compressed format with the extension GKO. I'm not very skilled at handling compressed formats, especially these older ones. The GKO files all start by recording the original filenames before compression, and a single GKO file might contain more than one compressed file. Beyond that, I'm lost. I'm hoping to get help from experts familiar with compression on how to decompress these files. Of course, it would be even better if you could also tell me how to recompress them. I've prepared a few example files and attached them. files.zip Edited March 17 by morrigan
Engineers Solution Rabatini Posted March 30 Engineers Solution Posted March 30 On 3/17/2025 at 11:10 AM, morrigan said: Hi everyone, I've recently been trying to translate the PS1 game Chou Jikuu Yousai Macross - Ai Oboete Imasu ka (Macross: Do You Remember Love?), but I've found that the game's resource files are all in a compressed format with the extension GKO. I'm not very skilled at handling compressed formats, especially these older ones. The GKO files all start by recording the original filenames before compression, and a single GKO file might contain more than one compressed file. Beyond that, I'm lost. I'm hoping to get help from experts familiar with compression on how to decompress these files. Of course, it would be even better if you could also tell me how to recompress them. I've prepared a few example files and attached them. files.zip 792.1 kB · 2 downloads .GKO file is a container. you have analise the files inside it. get entries long FOR RIP = 1 to ENTRIES getdstring name 0x10 get offset long get size long log name offset size next rip
Members morrigan Posted April 11 Author Members Posted April 11 On 3/30/2025 at 10:53 PM, Rabatini said: .GKO file is a container. you have analise the files inside it. get entries long FOR RIP = 1 to ENTRIES getdstring name 0x10 get offset long get size long log name offset size next rip Thanks for your help! The BMS script worked perfectly. But, the unpacked files are in an image format I've never seen before, so it looks like I'll be busy.😂
Engineers Rabatini Posted November 10 Engineers Posted November 10 (edited) On 4/11/2025 at 8:36 AM, morrigan said: Thanks for your help! The BMS script worked perfectly. But, the unpacked files are in an image format I've never seen before, so it looks like I'll be busy.😂 This .pud files is another container that contains custom lzss blocks files, for example Title.pud contains 2 images with custom lzss compressed, if you decompress it you will see.. Edited November 10 by Rabatini 1
Members morrigan Posted November 10 Author Members Posted November 10 (edited) 9 hours ago, Rabatini said: This .pud files is another container that contains custom lzss blocks files, for example Title.pud contains 2 images with custom lzss compressed, if you decompress it you will see.. Okay, thanks for the lead. I successfully uncompressed the PUD file, and it is indeed a container. The value 0x2 represents the number of files within it. The uncomressed images are raw pixel data and need to be combined with the PAL file to get the correct image. can use imageheat to view the correct image. Edited November 10 by morrigan 1
Engineers Rabatini Posted November 10 Engineers Posted November 10 Yes. If you need the descompressor, let me know.
Members morrigan Posted November 10 Author Members Posted November 10 I've made a decompressor, and it's currently working correctly. However, to translate this game, also need to create a compressor. Perhaps someone else might find these tools useful, so I'm releasing them. Thanks again, Rabatini. pud_decompressor.py
Engineers Rabatini Posted November 11 Engineers Posted November 11 9 hours ago, morrigan said: I've made a decompressor, and it's currently working correctly. However, to translate this game, also need to create a compressor. Perhaps someone else might find these tools useful, so I'm releasing them. Thanks again, Rabatini. pud_decompressor.py 4.53 kB · 1 download I did the descompressor and compressor but in c++, need to test the compressor thought, because is compressing better than the original. Test in game and show the results, if works. MACROSS_PS1_TOOL.zip 1
Engineers Rabatini Posted November 13 Engineers Posted November 13 @morrigan I tested in game, and compressor works, pack .gko as well works like a glove.
Members morrigan Posted November 14 Author Members Posted November 14 11 hours ago, Rabatini said: @morrigan I tested in game, and compressor works, pack .gko as well works like a glove. Great work on reversing this game, thank you! The graphics are pretty weird. I saw that every character is a separate image, and it changes from level to level, not a single font texture. 😁That's a really uncommon approach
Engineers Rabatini Posted November 14 Engineers Posted November 14 14 minutes ago, morrigan said: Great work on reversing this game, thank you! The graphics are pretty weird. I saw that every character is a separate image, and it changes from level to level, not a single font texture. 😁That's a really uncommon approach Yes! I´ve to create a tool to merge and split image, so i can merge them, edit and later split to insert. 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now