Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.
Zero Tolerance for Disrespect

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

Featured Replies

  • Localization

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

Solved by Rabatini

  • 2 weeks later...
  • Supporter
  • Solution
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...
  • Author
  • Localization
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...
  • Supporter
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

  • Author
  • Localization
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

  • Author
  • Localization

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

  • Supporter
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

  • Author
  • Localization
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

  • Supporter
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.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.