READ THE RULES: Click here

Follow us on Facebook: https://www.facebook.com/xentax/ :)

DisUnity - An extractor for Unity games

General game file tools that are useful for more than one game
barracuda
beginner
Posts: 30
Joined: Sat Nov 24, 2012 2:15 pm
Has thanked: 3 times
Been thanked: 27 times

Re: DisUnity - An extractor for Unity games

Post by barracuda » Sat May 24, 2014 3:32 am

zaphiel wrote:Hi barracuda,

First up, let me thank you for creating DisUnity. I am a soundtrack junkie so now I can finally get my mitts on the music from the games I play.

I'm having some trouble with .resS files. When I try to extract a sharedassets#.assets file with a corresponding resS file, I get "Audio clip {0} uses an external .resS file that doesn't exist!" for each file. Does DisUnity only find the .resS files for resources.assets?
All .assets and .resS files are in the same directory, by the way.
DisUnity should automatically locate and load the corresponding .resS files for every asset file. If you have a pair of files that doesn't seem to work, you may have to send them to me for investigation.

And I also just noticed that the log message is broken, the placeholder {0} should actually contain the audio clip name. Shall be fixed. :D

Edit: It turns out that the whole .resS loading system is currently broken in 0.3.0. It will be fixed in 0.3.1.

mappy2012
advanced
Posts: 62
Joined: Sun Jul 03, 2011 4:40 am
Has thanked: 51 times
Been thanked: 1 time

Re: DisUnity - An extractor for Unity games

Post by mappy2012 » Fri Aug 01, 2014 9:46 am

hi~~barracuda

i use DisUnity0.31 extract Pineview Drive game, sharedassets2.assets,
not work,get some error。

merlinsvk
ultra-veteran
ultra-veteran
Posts: 411
Joined: Mon Oct 27, 2008 12:11 am
Location: Slovakia
Has thanked: 35 times
Been thanked: 117 times

Re: DisUnity - An extractor for Unity games

Post by merlinsvk » Fri Aug 01, 2014 11:22 am

Probably the same error as I get. I have only 2GB of RAM and this error occurs only with files ~500MB big (or bigger).

Code: Select all

[info] Processing sharedassets2.assets
[error] DisUnityProcessor: Can't process sharedassets2.assets, caused by java.io.IOException: Map failed
        at sun.nio.ch.FileChannelImpl.map(Unknown Source)
        at info.ata4.io.buffer.ByteBufferUtils.openReadOnly(ByteBufferUtils.java:156)
        at info.ata4.io.buffer.ByteBufferUtils.openReadOnly(ByteBufferUtils.java:170)
        at info.ata4.unity.asset.AssetFile.load(AssetFile.java:93)
        at info.ata4.unity.asset.AssetFile.open(AssetFile.java:58)
        at info.ata4.unity.cli.DisUnityProcessor.processAsset(DisUnityProcessor.java:239)
        at info.ata4.unity.cli.DisUnityProcessor.run(DisUnityProcessor.java:119)

        at info.ata4.unity.cli.DisUnityCli.run(DisUnityCli.java:119)
        at info.ata4.unity.cli.DisUnityCli.main(DisUnityCli.java:55)

Caused by: java.lang.OutOfMemoryError: Map failed
        at sun.nio.ch.FileChannelImpl.map0(Native Method)
        ... 9 more

finale00
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 2382
Joined: Sat Apr 09, 2011 1:22 am
Has thanked: 170 times
Been thanked: 295 times

Re: DisUnity - An extractor for Unity games

Post by finale00 » Wed Aug 06, 2014 3:44 am

I want to get the compiled scripts.
The game I'm looking at uses monoscript so a dll is generated.

How can I extract the DLL?

EDIT: got it, I used bundle-extract

Starlow
beginner
Posts: 32
Joined: Wed Oct 08, 2014 12:26 am

Re: DisUnity - An extractor for Unity games

Post by Starlow » Mon Nov 24, 2014 3:21 am

can it unpack anim files and 3d models yet?

Jim Di
ultra-n00b
Posts: 1
Joined: Mon Jan 16, 2012 8:50 am

Re: DisUnity - An extractor for Unity games

Post by Jim Di » Tue Dec 16, 2014 6:25 am

Hi! Thx for useful tool.

Sometimes extractor crhases while working Texture2D data with command 'extract',

Code: Select all

[error] DisUnityCli: Fatal error, caused by java.lang.OutOfMemoryError: Java heap space
        at java.util.ArrayList.<init>(Unknown Source)
        at info.ata4.unity.serdes.Deserializer.readArray(Deserializer.java:238)
        at info.ata4.unity.serdes.Deserializer.readCollection(Deserializer.java:250)
        at info.ata4.unity.serdes.Deserializer.readValue(Deserializer.java:126)
        at info.ata4.unity.serdes.Deserializer.readObject(Deserializer.java:95)
        at info.ata4.unity.serdes.Deserializer.readValue(Deserializer.java:134)
        at info.ata4.unity.serdes.Deserializer.readObject(Deserializer.java:95)
        at info.ata4.unity.serdes.Deserializer.deserialize(Deserializer.java:72)
        at info.ata4.unity.cli.extract.AssetExtractor.extract(AssetExtractor.java:160)
        at info.ata4.unity.cli.cmd.ExtractCmd.processAsset(ExtractCmd.java:43)
        at info.ata4.unity.cli.cmd.AssetCommand.processAssetFile(AssetCommand.java:100)
        at info.ata4.unity.cli.cmd.AssetCommand.processFile(AssetCommand.java:90)
        at info.ata4.unity.cli.cmd.FileCommand.processPath(FileCommand.java:58)
        at info.ata4.unity.cli.cmd.FileCommand.run(FileCommand.java:76)
        at info.ata4.unity.cli.DisUnityCli.run(DisUnityCli.java:110)
        at info.ata4.unity.cli.DisUnityCli.main(DisUnityCli.java:123)
but all ok with command 'extract-raw'

User avatar
Slandey
beginner
Posts: 22
Joined: Wed Sep 10, 2014 4:20 am
Location: BEHIND YOU
Has thanked: 2 times
Been thanked: 3 times

Re: DisUnity - An extractor for Unity games

Post by Slandey » Sat Mar 07, 2015 8:13 pm

Starlow wrote:can it unpack anim files and 3d models yet?
Anims: NO
3D Models: YES
Image

Starlow
beginner
Posts: 32
Joined: Wed Oct 08, 2014 12:26 am

Re: DisUnity - An extractor for Unity games

Post by Starlow » Sun Mar 22, 2015 2:57 pm

But it won't extract models into .obj format it just has an error.
please help!

Teddy84
ultra-n00b
Posts: 1
Joined: Tue Jun 09, 2015 4:51 pm

Re: DisUnity - An extractor for Unity games

Post by Teddy84 » Tue Jun 09, 2015 4:54 pm

Thanks a lot for your tool.
However, I get an error as soon as disunity reach a 3D Model to extract...

Code: Select all

[warning] AssetExtractor: Can't extract Object #1297 (ClassID: 43, Class: Mesh),
 caused by java.lang.IllegalArgumentException: Illegal Capacity: -1112068434
        at java.util.ArrayList.<init>(Unknown Source)
        at info.ata4.unity.serdes.Deserializer.readArray(Deserializer.java:224)
        at info.ata4.unity.serdes.Deserializer.readComplex(Deserializer.java:198)
        at info.ata4.unity.serdes.Deserializer.readFieldValue(Deserializer.java:134)
        at info.ata4.unity.serdes.Deserializer.readField(Deserializer.java:114)
        at info.ata4.unity.serdes.Deserializer.readObject(Deserializer.java:97)
        at info.ata4.unity.serdes.Deserializer.readComplex(Deserializer.java:205)
        at info.ata4.unity.serdes.Deserializer.readFieldValue(Deserializer.java:134)
        at info.ata4.unity.serdes.Deserializer.readField(Deserializer.java:114)
        at info.ata4.unity.serdes.Deserializer.deserialize(Deserializer.java:74)

        at info.ata4.unity.cli.extract.AssetExtractor.extract(AssetExtractor.java:170)
        at info.ata4.unity.cli.DisUnityProcessor.processAsset(DisUnityProcessor.java:136)
        at info.ata4.unity.cli.DisUnityProcessor.processAsset(DisUnityProcessor.java:59)
        at info.ata4.unity.cli.DisUnityProcessor.processAsset(DisUnityProcessor.java:71)
        at info.ata4.unity.cli.DisUnityProcessor.run(DisUnityProcessor.java:249)

        at info.ata4.unity.cli.DisUnityCli.main(DisUnityCli.java:53)

[error] DisUnityCli: Fatal error, caused by java.lang.OutOfMemoryError: Java heap space
        at java.util.ArrayList.<init>(Unknown Source)
        at info.ata4.unity.serdes.Deserializer.readArray(Deserializer.java:224)
        at info.ata4.unity.serdes.Deserializer.readComplex(Deserializer.java:198)
        at info.ata4.unity.serdes.Deserializer.readFieldValue(Deserializer.java:134)
        at info.ata4.unity.serdes.Deserializer.readField(Deserializer.java:114)
        at info.ata4.unity.serdes.Deserializer.deserialize(Deserializer.java:74)

        at info.ata4.unity.cli.extract.AssetExtractor.extract(AssetExtractor.java:170)
        at info.ata4.unity.cli.DisUnityProcessor.processAsset(DisUnityProcessor.java:136)
        at info.ata4.unity.cli.DisUnityProcessor.processAsset(DisUnityProcessor.java:59)
        at info.ata4.unity.cli.DisUnityProcessor.processAsset(DisUnityProcessor.java:71)
        at info.ata4.unity.cli.DisUnityProcessor.run(DisUnityProcessor.java:249)

        at info.ata4.unity.cli.DisUnityCli.main(DisUnityCli.java:53)

hesanda
ultra-n00b
Posts: 8
Joined: Wed Sep 03, 2014 5:35 am

Re: DisUnity - An extractor for Unity games

Post by hesanda » Sat Mar 25, 2017 5:49 pm

So i have disunity 0.3.4 and i get an error when i try to extract sharedassets
C:\Windows\Disunity>disunity extract sharedassets90.assets
[info] DisUnity v0.3.4
[info] sharedassets90.assets
[warning] FileCommand: Can't process sharedassets90.assets, caused by info.ata4.unity.asset.AssetException: Unknown asset format 15
at info.ata4.unity.asset.AssetFile.load(AssetFile.java:145)
at info.ata4.unity.asset.AssetFile.load(AssetFile.java:105)
at info.ata4.unity.asset.AssetFile.open(AssetFile.java:58)
at info.ata4.unity.cli.cmd.AssetCommand.processAssetFile(AssetCommand.java:97)
at info.ata4.unity.cli.cmd.AssetCommand.processFile(AssetCommand.java:90)
at info.ata4.unity.cli.cmd.FileCommand.processPath(FileCommand.java:58)
at info.ata4.unity.cli.cmd.FileCommand.run(FileCommand.java:76)
at info.ata4.unity.cli.DisUnityCli.run(DisUnityCli.java:110)
at info.ata4.unity.cli.DisUnityCli.main(DisUnityCli.java:123)
game was made using unity 5. i also tried disunity 0.5.0 but same here. anyone help

User avatar
DrMcCoy
ultra-n00b
Posts: 3
Joined: Tue Dec 20, 2016 5:17 am
Contact:

Re: DisUnity - An extractor for Unity games

Post by DrMcCoy » Wed May 17, 2017 2:17 am

hesanda wrote:So i have disunity 0.3.4 [...] game was made using unity 5. i also tried disunity 0.5.0 but same here. anyone help
DisUnity README.md wrote:0.3 works best with Unity 3.x and has most of the original extraction features.
=> DisUnity 0.3.4 can't extract Unity 5 (nor 4, for that matter) data files.
DisUnity README.md wrote:0.5 is a code rewrite to properly support all Unity games from 2 to 5 that also comes with unit tests. Right now, it only supports raw file reading and writing without any object deserialization, therefore it also can't extract any asset data directly.
=> DisUnity 0.5.0 isn't ready yet either.

TL;DR: You can't extract Unity 5 data files with DisUnity.

Iareanab
ultra-n00b
Posts: 3
Joined: Wed May 31, 2017 12:34 pm

Re: DisUnity - An extractor for Unity games

Post by Iareanab » Thu Jun 01, 2017 8:19 am

Thanks, your program is amazing, it already helped me once)

wellspokenrambler
ultra-n00b
Posts: 1
Joined: Sat Feb 03, 2018 1:18 pm

Re: DisUnity - An extractor for Unity games

Post by wellspokenrambler » Sat Feb 03, 2018 1:39 pm

Hi barracuda,

First, I'd like to thank you for creating this tool in the first place: the only other tool I've been able to find along these lines is the DevXDevelopment application - which I can only run as a trial version, since I don't have the 258 dollars to spare to upgrade it to the full, object-extracting package.

The file I'm interested in extracting is a demo for the 2010 Gorillaz "Escape To Plastic Beach" game: the motivation being to obtain the materials and objects necessary to render the "Plastic Beach" island in Unity. According to the DevX trial, the .unity3d file in question contains these as several .obj and .mat files. According to UniPlayer.exe, the demo runs on Unity 2.x, due to the game being released over 7 years ago.

Having run DisUnity ver. 0.3.4 upon it with the command "disunity extract GorillazDemo.unity3d", it has successfully managed to retrieve the following kinds of files: .tga, .shader, and .dss: but every other file type, including .cs, .fbx and, crucially, the .mat and .obj files has not been brought through.

Attempting the "extract -f" command and parameter resulted in an "unknown option" error. I did successfully get the BINs of every file, but this did not lead anywhere due to a lack of BIN experience.

Is this problem due to the age of the game, or is there another workaround I can try?

Thanks for taking the time to read this.

Post Reply