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

List of Unity games

Post questions about game models here, or help out others!
JONATHANTKB
beginner
Posts: 30
Joined: Mon Nov 24, 2014 5:24 am
Has thanked: 6 times
Been thanked: 1 time

Re: List of Unity games

Post by JONATHANTKB »

997R8V10 wrote:Hello and thanks a ton for the tutorial!!! I love the Porsche models and found a lot of them online but I wanted the Cayman GT-4 to convert into rFactor. I successfully extracted it and have it now! :D

A Question: Does anyone know of any other 3d car configurators out there? The ones I found are just images :( I really want them if they are there!

Thanks again,
997R8V10
https://www.facebook.com/997CarFactory

no all configurator are pictures
User avatar
Chipicao
ultra-veteran
ultra-veteran
Posts: 476
Joined: Thu Feb 03, 2011 11:18 am
Has thanked: 42 times
Been thanked: 305 times
Contact:

Re: List of Unity games

Post by Chipicao »

Could you guys shout out some Unity 5 games, for testing purposes?
Any platform, as many as possible, and only names or official links please.
Please post any requests or issues with my tools in the appropriate topics.
I'm sorry if I don't reply or if I ignore PMs. My time is very limited.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: List of Unity games

Post by chrrox »

Sure here you go Idolmaster.
http://storage.game.starlight-stage.jp/ ... etmanifest
then just paste this to download a file
chara_002_00_base.unity3d.lz4
becomes
http://storage.game.starlight-stage.jp/ ... nity3d.lz4
User avatar
Chipicao
ultra-veteran
ultra-veteran
Posts: 476
Joined: Thu Feb 03, 2011 11:18 am
Has thanked: 42 times
Been thanked: 305 times
Contact:

Re: List of Unity games

Post by Chipicao »

Thanks! So far so good...
Image

May I ask how you managed to intercept this file manifest?
Did you use a network sniffer or did you hack the iOS app somehow?

I'm interested because many mobile apps download additional files after installation.
Please post any requests or issues with my tools in the appropriate topics.
I'm sorry if I don't reply or if I ignore PMs. My time is very limited.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: List of Unity games

Post by chrrox »

yeah I just set up a proxy server and logged the url's.
Did you have the basic unity structure layout I have some of the structure just looking for the linking It would save me a lot of time.
User avatar
Chipicao
ultra-veteran
ultra-veteran
Posts: 476
Joined: Thu Feb 03, 2011 11:18 am
Has thanked: 42 times
Been thanked: 305 times
Contact:

Re: List of Unity games

Post by Chipicao »

Yes, I think I have all of it covered. What exactly do you need, main file structure?
Please post any requests or issues with my tools in the appropriate topics.
I'm sorry if I don't reply or if I ignore PMs. My time is very limited.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: List of Unity games

Post by chrrox »

Yeah I saw another program use those set id's based on the unity version.
Can you post how the basic structure is read and those are combined then i think the rest should go quick.
i hope what I said makes sense :P
User avatar
Chipicao
ultra-veteran
ultra-veteran
Posts: 476
Joined: Thu Feb 03, 2011 11:18 am
Has thanked: 42 times
Been thanked: 305 times
Contact:

Re: List of Unity games

Post by Chipicao »

Hmm, maybe you've seen it in my MaxScript, which also had the ability to parse any and all Unity versions :D

Here's the complete structure of assetfiles (mainData, level#, .assets, .sharedAssets, CustomAssetBundle, BuildPlayer)
Note that unity 5 still needs further testing

As of yesterday, Unity Studio is also on GitHub: https://github.com/RaduMC/UnityStudio

Code: Select all

public AssetsFile(string fileName)
        {
            EndianStream fileStream = new EndianStream(File.OpenRead(fileName), EndianType.BigEndian);

            int tableSize = fileStream.ReadInt32();
            int dataEnd = fileStream.ReadInt32();
            int fileGen = fileStream.ReadInt32();
            int dataOffset = fileStream.ReadInt32();

            bool baseDefinitions = false;

            switch (fileGen)
            {
                case 6:
                    {
                        fileStream.Position = (dataEnd - tableSize);
                        fileStream.Position += 1;
                        break;
                    }
                case 7://Unity 3 beta
                    {
                        fileStream.Position = (dataEnd - tableSize);
                        fileStream.Position += 1;
                        m_Version = fileStream.ReadStringToNull();
                        break;
                    }
                case 8:
                    {
                        fileStream.Position = (dataEnd - tableSize);
                        fileStream.Position += 1;
                        m_Version = fileStream.ReadStringToNull();
                        platform = fileStream.ReadInt32();
                        break;
                    }
                case 9:
                    {
                        fileStream.Position += 4;//unknown zero
                        m_Version = fileStream.ReadStringToNull();
                        platform = fileStream.ReadInt32();
                        break;
                    }
                case 14:
                case 15://not fully tested!
                    {
                        fileStream.Position += 4;//unknown zero
                        m_Version = fileStream.ReadStringToNull();
                        platform = fileStream.ReadInt32();
                        baseDefinitions = fileStream.ReadBoolean();
                        break;
                    }
                default:
                    {
                        //MessageBox.Show("Unsupported Unity version!", "Unity Studio Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
            }

            if (platform > 255 || platform < 0)
            {
                byte[] b32 = BitConverter.GetBytes(platform);
                Array.Reverse(b32);
                platform = BitConverter.ToInt32(b32, 0);
                fileStream.endian = EndianType.LittleEndian;
            }

            /*Platform list:
               -2:  unitypackage
                4:  OSX
                5:  PC
                6:  Web
                7:  Web_streamed
                9:  iOS
                10: PS3(big)
                11: Xbox360(big)
                13: Android
                16: Google_NaCl
                21: WP8
                25: Linux
            */

            int baseCount = fileStream.ReadInt32();
            for (int i = 0; i < baseCount; i++)
            {
                if (fileGen < 14)
                {
                    int baseType = fileStream.ReadInt32();
                    readBase();
                }
                else { readBase5(baseDefinitions); }
            }

            if (fileGen >= 7 && fileGen < 14) { fileStream.Position += 4; }//unknown zero

            int assetCount = fileStream.ReadInt32();

            for (int i = 0; i < assetCount; i++)
            {
                if (fileGen >= 14) { fileStream.AlignStream(4); }

                AssetPreloadData asset = new AssetPreloadData();
                if (fileGen < 14) { asset.m_PathID = fileStream.ReadInt32(); }
                else { asset.m_PathID = fileStream.ReadInt64(); }
                asset.Offset = fileStream.ReadInt32();
                asset.Offset += dataOffset;
                asset.Size = fileStream.ReadInt32();
                asset.Type1 = fileStream.ReadInt32();
                asset.Type2 = fileStream.ReadUInt16();
                fileStream.Position += 2;
                if (fileGen >= 15) { byte unknownByte = a_Stream.ReadByte(); }
                
                preloadTable.Add(asset.m_PathID, asset);
            }
            
            if (fileGen >= 14)
            {
                //this looks like a list of assets that need to be preloaded in memory before anytihng else
                int someCount = a_Stream.ReadInt32();
                for (int i = 0; i < someCount; i++)
                {
                    int num1 = a_Stream.ReadInt32();
                    a_Stream.AlignStream(4);
                    long m_PathID = a_Stream.ReadInt64();
                }
            }

            int sharedFileCount = fileStream.ReadInt32();
            for (int i = 0; i < sharedFileCount; i++)
            {
                string aName = fileStream.ReadStringToNull();
                fileStream.Position += 20;
                string sharedFileName = fileStream.ReadStringToNull(); //relative path
            }
        }

        private void readBase() //recursive
        {
            string baseFormat = fileStream.ReadStringToNull();
            string baseName = fileStream.ReadStringToNull();
            fileStream.Position += 20;
            int childrenCount = fileStream.ReadInt32();
            //Debug.WriteLine(baseFormat + " " + baseName + " " + childrenCount);
            for (int i = 0; i < childrenCount; i++) { readBase(); }
        }

        private void readBase5(bool baseDefinitions)
        {
            int baseType = fileStream.ReadInt32();
            if (baseType < 0) { fileStream.Position += 16; }
            fileStream.Position += 16;

            if (baseDefinitions)
            {
                int varCount = fileStream.ReadInt32();
                int stringSize = fileStream.ReadInt32();

                fileStream.Position += varCount * 24;
                string varStrings = Encoding.UTF8.GetString(fileStream.ReadBytes(stringSize));

                //can skip this
                fileStream.Position -= varCount * 24 + stringSize;
                for (int i = 0; i < varCount; i++)
                {
                    ushort num0 = fileStream.ReadUInt16();
                    byte level = fileStream.ReadByte();
                    bool isArray = fileStream.ReadBoolean();

                    ushort varTypeIndex = fileStream.ReadUInt16();
                    ushort test = fileStream.ReadUInt16();
                    string varTypeStr;
                    if (test == 0) //varType is an offset in the string block
                    { varTypeStr = varStrings.Substring(varTypeIndex, varStrings.IndexOf('\0', varTypeIndex) - varTypeIndex); }//substringToNull
                    else //varType is an index in an internal strig array
                    { varTypeStr = baseStrings[varTypeIndex] != null ? baseStrings[varTypeIndex] : varTypeIndex.ToString(); }

                    ushort varNameIndex = fileStream.ReadUInt16();
                    test = fileStream.ReadUInt16();
                    string varNameStr;
                    if (test == 0) { varNameStr = varStrings.Substring(varNameIndex, varStrings.IndexOf('\0', varNameIndex) - varNameIndex); }
                    else { varNameStr = baseStrings[varNameIndex] != null ? baseStrings[varNameIndex] : varNameIndex.ToString(); }

                    int size = fileStream.ReadInt32();
                    int index = fileStream.ReadInt32();
                    int num1 = fileStream.ReadInt32();

                    for (int t = 0; t < level; t++) { Debug.Write("\t"); }
                    //Debug.WriteLine(varTypeStr + " " + varNameStr + " " + size);
                }
                fileStream.Position += stringSize;
            }
        }
Last edited by Chipicao on Mon Nov 02, 2015 12:55 am, edited 1 time in total.
Please post any requests or issues with my tools in the appropriate topics.
I'm sorry if I don't reply or if I ignore PMs. My time is very limited.
Csimbi
veteran
Posts: 108
Joined: Thu Nov 06, 2008 9:29 pm
Has thanked: 10 times
Been thanked: 22 times

Re: List of Unity games

Post by Csimbi »

Here. Free online game.
Buggy as hell but comes close to fun.
______
Csimbi
Trishty
advanced
Posts: 63
Joined: Mon Jul 05, 2010 2:37 pm
Has thanked: 7 times
Been thanked: 15 times
Contact:

Re: List of Unity games

Post by Trishty »

chrrox wrote:yeah I just set up a proxy server and logged the url's.
Did you have the basic unity structure layout I have some of the structure just looking for the linking It would save me a lot of time.
I have tried and get the urls. Thank you very much.

Final Fantasy 7 G-Bike
bike_001_018 model
http://app.cache.finalfantasy7-gbike.co ... 0000000005

Mahouka Koukou No Rettousei Lost Zero
http://cache.lostzeromagichs.jp/assets/ ... f23df797f6

But I didn't see manifest list of files in the urls :(
Ares722
veteran
Posts: 154
Joined: Thu Jul 15, 2010 2:15 pm
Has thanked: 25 times
Been thanked: 9 times

Re: List of Unity games

Post by Ares722 »

Another unity3d 5 game similar to Idolmaster and plenty of 3d models:

jap name:コエスタ - アイドル 声優 育成 RPG

link android: https://play.google.com/store/apps/deta ... sta1&hl=ja
(there is also an ios version on jap itunes)
Mrtest
advanced
Posts: 43
Joined: Tue Aug 23, 2011 8:11 pm
Location: Russia, Moscow
Has thanked: 33 times
Been thanked: 2 times
Contact:

Re: List of Unity games

Post by Mrtest »

Chipicao,
Which program to compile files?
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: List of Unity games

Post by chrrox »

User avatar
Chipicao
ultra-veteran
ultra-veteran
Posts: 476
Joined: Thu Feb 03, 2011 11:18 am
Has thanked: 42 times
Been thanked: 305 times
Contact:

Re: List of Unity games

Post by Chipicao »

Thanks!

I have made progress with Unity 5 and found some more information about the structure of asset files. Will be posting shortly.
Please post any requests or issues with my tools in the appropriate topics.
I'm sorry if I don't reply or if I ignore PMs. My time is very limited.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: List of Unity games

Post by chrrox »

Need to find the function for encrypting and decrypting the content for games
http://docs.unity3d.com/Manual/protectingcontent.html
seems to be using this.
Post Reply