Important information: this site is currently scheduled to go offline indefinitely by end of the year.

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 »

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: 61
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 »

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: 121 times

Re: DisUnity - An extractor for Unity games

Post by merlinsvk »

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: 307 times

Re: DisUnity - An extractor for Unity games

Post by finale00 »

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
Catonx18
beginner
Posts: 33
Joined: Wed Oct 08, 2014 12:26 am
Has thanked: 1 time
Been thanked: 1 time

Re: DisUnity - An extractor for Unity games

Post by Catonx18 »

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 »

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 »

Starlow wrote:can it unpack anim files and 3d models yet?
Anims: NO
3D Models: YES
Image
Catonx18
beginner
Posts: 33
Joined: Wed Oct 08, 2014 12:26 am
Has thanked: 1 time
Been thanked: 1 time

Re: DisUnity - An extractor for Unity games

Post by Catonx18 »

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 »

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: 9
Joined: Wed Sep 03, 2014 5:35 am

Re: DisUnity - An extractor for Unity games

Post by hesanda »

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: 4
Joined: Tue Dec 20, 2016 5:17 am
Has thanked: 1 time
Contact:

Re: DisUnity - An extractor for Unity games

Post by DrMcCoy »

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 »

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 »

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.
User avatar
GianaSistersFan64
beginner
Posts: 39
Joined: Tue Jul 21, 2020 4:48 pm
Location: France
Has thanked: 13 times
Been thanked: 1 time
Contact:

Re: DisUnity - An extractor for Unity games

Post by GianaSistersFan64 »

Can anyone tell me how to use it step by step in more details? I tried to follow what's it says in this thread but i keep getting the same error message.
Sorry for grammar, i'm french and dysphasia.
mirh
n00b
Posts: 19
Joined: Tue Nov 18, 2014 8:05 pm
Has thanked: 117 times
Been thanked: 6 times

Re: DisUnity - An extractor for Unity games

Post by mirh »

This is very outdated and it won't work with anything much newer of 2015 (if even that)
These are some alternatives, from the still-older to newest
https://github.com/DerPopo/UABE
https://github.com/mafaca/UtinyRipper
https://github.com/Perfare/AssetStudio
https://github.com/AssetRipper/AssetRipper
Image
Post Reply