Jump to content

[PS1]Macross: Do You Remember Love? Compressed files


Go to solution Solved by Rabatini,

Recommended Posts

  • Members
Posted (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.

 

image.png.cb167d46eae1d10baa007fda99fdcafe.png

files.zip

Edited by morrigan
  • 2 weeks later...
  • Engineers
  • Solution
Posted
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.

 

image.png.cb167d46eae1d10baa007fda99fdcafe.png

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

 

  • 2 weeks later...
  • Members
Posted
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.😂

  • 6 months later...
  • Engineers
Posted (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..  

TITLE.block0_8bpp.color.png.b84620ab33368e3b51d7b8b9016b2f5a.pngTITLE.block1_8bpp.color.png.1d791fa7069c41f325b98a0f492e076b.png

Edited by Rabatini
  • Like 1
  • Members
Posted (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..  

TITLE.block0_8bpp.color.png.b84620ab33368e3b51d7b8b9016b2f5a.pngTITLE.block1_8bpp.color.png.1d791fa7069c41f325b98a0f492e076b.png

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.image.png.d77349d8d99f837a9546188a5d4c9bc0.png

Edited by morrigan
  • Like 1
  • Members
Posted

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
Posted
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...