Jump to content

Sonic Galactic (Demo 2) .hatch file


Go to solution Solved by ikskoks,

Recommended Posts

Posted

There's this archive made with an open-source game engine called Hatch from Github which uses OpenMania (Sonic Mania mod stuff e.t.c) source code and i can't get to open it using RetroED nor extracting it using RSDK_v5 extracting tools cause it uses the "HATCH" header instead of "RSDK"

Sample file:
Data.hatch
image.thumb.png.a56e4e8cde776486bf42a6545700efb5.png
is there a way to decompress these files for dumping the resources like (image, sprites, sound and models e.t.c) cause i found some references here:
https://github.com/Axanery/HatchGameEngine
https://github.com/Axanery/OpenMania


 

Posted

Hi. File format looks like this:
 

// header
5 bytes (char) - signature // "HATCH"
3 bytes - version  // 01 00 00

// index
2 bytes (uint16) - file count
// for each file
  4 bytes (uint32) - filename CRC32
  8 bytes (uint64) - file offset
  8 bytes (uint64) - file uncompressed size
  4 bytes (uint32) - data flag  // 2 - encrypted, 0 - not encrypted
  8 bytes (uint64) - file compressed size

// data
// for each file
  x bytes - file data


And here's a script to dump and decompress file data.

https://github.com/bartlomiejduda/Tools/blob/master/NEW Tools/Hatch Engine/Hatch_Engine_HATCH_script.bms

 

Unfortunately all files with dataFlag=2 are encrypted. If I understand engine's source code corretly, you need original filenames and original file sizes to properly decrypt data.
Here's the algorithm to decrypt:
https://github.com/Axanery/HatchGameEngine/blob/master/source/Engine/ResourceTypes/ResourceManager.cpp#L172-L232


You can probably hook the game with Frida to get the filenames.

  • Like 2
Posted

Currently 1394 filenames are known

2025-01-05 01:41:02 - __main__ - line 109 - INFO - ####### SUMMARY #######
2025-01-05 01:41:02 - __main__ - line 112 - INFO - Known filenames: 1394 (61.76%)
2025-01-05 01:41:02 - __main__ - line 113 - INFO - Unknown filenames: 863 (38.24%)
2025-01-05 01:41:02 - __main__ - line 114 - INFO - All filenames: 2257


Full list available here:

https://github.com/bartlomiejduda/Tools/blob/master/NEW Tools/Hatch Engine/Hatch Engine Archive Tool/filelists/sonic_galactic_demo2_filenames.txt

  • Like 1
Posted

Thanks to anonymous user we have now over 90% of the filenames. 😉 
 

2025-01-05 21:17:54 - __main__ - line 109 - INFO - ####### SUMMARY #######
2025-01-05 21:17:54 - __main__ - line 112 - INFO - Known filenames: 2039 (90.34%)
2025-01-05 21:17:54 - __main__ - line 113 - INFO - Unknown filenames: 218 (9.66%)
2025-01-05 21:17:54 - __main__ - line 114 - INFO - All filenames: 2257

 

  • Like 1
  • 2 weeks later...
Posted (edited)

Can you get the .hsl files?

exemple

Stage/2_CGZ/Enemies/Crab/CGZCrabCutscene2Spawn.hsl
Stage/2_CGZ/Enemies/Crab/CrabBoss.hsl
Stage/2_CGZ/Enemies/Crab/CrabDespawner.hsl
Stage/2_CGZ/Enemies/Crab/CrabDestroyRect.hsl

 

Edited by Kubatao
Posted

Tool I shared above can decrypt and extract ALL files from the archive, but some filenames are still unknown, so you'll get names like "file123.bin" instead of "CrabBoss.hsl"
You could search for them in "Unknown_Files" directory.

Posted
24 minutes ago, Kubatao said:

can you share everything you manage to extract?

No.

 

24 minutes ago, Kubatao said:

I don't know how to use this tool

Please read readme file. Example usage is shown there.

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