Ishotihadus/mikunyan

Support for LZMA-compressed asset

sikachu opened this issue ยท 3 comments

Hello,

First of all, thank you for this amazing tool. This project allows me to play with Unity3D asset in the programming language that I enjoy writing the most.

I'm currently trying to use mikunyan to unpack some assets from another Unity-based game. I've tested their asset bundle format and found out that flags & 0x3f for the data is 1, which is supposed to be LZMA format, which is currently unsupported based on this comment:

# when 1
# LZMA

I was trying to implement the support myself using extlzma that's being used in this project. However, it seems like no matter how I tried I can't make LZMA recognize the binary string as LZMA format.

I was looking around to see how other projects are doing and seems like AssetStudio uses a SevenZipHelper which is not available in Ruby, but UnityPack seems to be using liblzma which means it should be possible for us to do the same ... but I really can't wrap my head around how they able to make it work, given many of the documentation are in Japanese.

Since I'm pretty much banging my head against the wall now, I wonder if you'll be able to take a look on what am I missing to make this work?

The example asset that I'm trying to extract is this: https://mega.nz/#!UoA3CKYT!nTeOyfoDOzRk7Ee6wfgj9YNlHwNooe2lO3vWbuwWp_I

Thank you very much.

I was working on it and I just implemented. I will release the new version in a few days.
Thank you for your contribution.

I just read your code in e1ac05e and realized what I missed. Working with binary surely is hard. ๐Ÿ˜–

Thank you for your work, and I'll look forward to the next release. ๐Ÿ™‡โ€โ™‚๏ธ

I released v3.9.7, which supports assetbundles compressed in LZMA.