Diablo Immortal textures

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
Immortal
Posts: 3
Joined: Sun Jun 06, 2021 6:42 pm

Diablo Immortal textures

Post by Immortal »

Hello!

I am trying to uncompress the Diablo Immortal textures that come with the game. It uses the Netease Messiah engine.

It looks like they are compressed all in the same file with different mipmap levels. Luckily, I managed to extract the bytes from the compression part and it looks like it is ZZZ4 (LZ4?).

However, when I used the Dishonored Messiah LZ4 script it creates a file that I don't know how to open :(

I uploaded one example (it should be a coin image) on each step:

Step 1, original file: https://www.mediafire.com/file/3x7yw9mp ... ure2D/file
Step 2, compression section: https://www.mediafire.com/file/8a181w2e ... 2.lz4/file
Step 3, LZ4 uncompression: https://www.mediafire.com/file/bi3jbcks ... 1.lz4/file

Could you please help me out with this? All texture files seem to have the same format, so with this example I should be able to get all of them.

Thanks!!
stevecam
Posts: 1
Joined: Fri Nov 26, 2021 4:14 am

Re: Diablo Immortal textures

Post by stevecam »

Do you still have the original game files? It appears all the names have been obfuscated in the recent update
aluigi
Site Admin
Posts: 12984
Joined: Wed Jul 30, 2014 9:32 pm

Re: Diablo Immortal textures

Post by aluigi »

@Immortal
Probably even in the Graphics section you wouldn't have much luck because this format (textures?) looks weird, a sort of 16 bytes block but it doesn't seem xored with any key (despite the recurring 0x34 0x03 bytes at the beginning). No idea.
zaramot
Posts: 51
Joined: Mon Sep 01, 2014 7:19 pm

Re: Diablo Immortal textures

Post by zaramot »

Well, if there was a script to extract - decompress those data chunk, that would help. Because looks like textures are using astc texture compression and it's possible to do something with them in order to convert into more common format. There's also template for the original compressed .texture files
https://github.com/CucFlavius/Zee-010-T ... Texture.bt
Immortal
Posts: 3
Joined: Sun Jun 06, 2021 6:42 pm

Re: Diablo Immortal textures

Post by Immortal »

Sorry I never replied! The ZZZ4 uncompressed files can be opened as ASTC textures and transformed to PNG from there. I had to download the iOS version to do this, I never figured out what the Android files are compressed with, ASTC was easier.
spiritovod
Posts: 719
Joined: Sat Sep 28, 2019 7:00 pm

Re: Diablo Immortal textures

Post by spiritovod »

Here is updated script for converting texture2D files into dds (only BC7 for now) and astc (6x6, 8x6, 8x8, 10x10, 12x12) files. Based on the template above. Support for other formats can be added as well.
Update: Script is updated with support for uncompressed data chunks.

Also, fixed version of netease_mpk script is in the attachment as well. There was issue with chunk size, for lz4 chunks it should be reduced by chunk's header length (magic + uncompressed size) to get actual size.
Update: Now this script also supports updated mpk format with hashes instead of filenames.

This script has additional commented lines, uncomment them if you want to experiment with output names, for further usage with DIDT (Diablo Immortal data tool). It allows you to rename extracted files based on contents of resource.repository file. For PC version it can be done by creating "Data_BetaROW_Android" folder in the tool's folder, moving extracted files there, then select respective options in the tool (beta + android) and start renaming at extra tab. Though due to minor differences in PC version, tool can crash at some point.