bgbennyboy / Dinky-Explorer

An explorer/viewer/dumper tool for games using the Dinky engine. That's Return to Monkey Island, Thimbleweed Park and Delores.
35 stars 3 forks source link

Support for Return to Monkey Island #2

Closed JanFrederick00 closed 1 year ago

JanFrederick00 commented 1 year ago

screenshot

Hello, I have added support for the encryption method used by Return to Monkey Island. (see screenshot) The game seems to use far longer keys than the previous ones (256 + 65536 bytes). I am concerned that these are protected by copyright. I have therefore decided not to include them in the Program itself. Instead, the first time a pack file from RtMI is opened, the keys are extracted from the game's executable file (included in the source code are merely the first byte of each key and the MD5-Checksum).

I am not familiar enough with Thimbleweed Park's asset files to determine whether there have been significant changes, although I am quite certain that they have been changed quite a bit. The audio files are not stored in the packs directly, rather using FMODs proprietary .bank format (I have been able to play them just fine in a small test program) - providing a preview will probably be impossible.

The Game contains .json files (in Weird.ggpack5a) that do not look like json (they seem similar to the format used in the "info"-block at the end of the pack file)

The graphics are stored in files with a ".ktxbz" extension. These seem to be compressed (zlib/deflate) Khronos Texture Files (.ktx), although I have not yet been able to display them properly.

Update: Very few tools seem to exist to work with .ktx files; Most of them treat them as invalid. This tool is able to display them.

Let me know what you think. Thanks.

bgbennyboy commented 1 year ago

This looks fantastic, thank you for this, I can stop my reverse engineering efforts now. I've got an fmod bank dumper that I wrote for my Telltale tools that will hopefully work with minimal changes. I'll look through and hopefully merge this tomorrow, thank you again.