Dragon Age: Inquisition Modding Tools

All about modding tools for Dragon Age: Inquisition
It is currently Mon Jun 26, 2017 8:56 pm

All times are UTC



Welcome
Welcome to the Dragon Age Modding tools forum

You are currently viewing our boards as a guest, which gives you limited access to view most discussions and access our other features. By joining our free community, you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content, and access many other special features. In addition, registered members also see less advertisements. Registration is fast, simple, and absolutely free, so please, join our community today!


Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 21 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: Direction of development
PostPosted: Sat Dec 06, 2014 3:11 am 
Offline

Joined: Fri Dec 05, 2014 4:28 am
Posts: 64
Has thanked: 17 time
Have thanks: 41 time
I've been playing around with the texture extractor in the current tool. My issue is that I don't know what development is currently necessary - I'm working on getting all textures from globals.sb to export, but I don't know if my effort is being duplicated by someone else. (I'm also trying to multithread the actual extraction, for what that's worth.)

WV, can you give some pointers on what I should be trying to help on? I think I will be much more effective if I have a clear goal.


Top
 Profile  
 
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:16 am 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
There is already code available for Texture/Mesh extraction, just needs merger with WV's tools. Mesh is only static meshes, in obj format. I want to convert it to FBX and also do skinned meshes (That requires a lot of work though). So take a look at the source and merge if necessary, be warned, there be dragons ahead (very bad coding):

https://drive.google.com/file/d/0BzqpBc ... sp=sharing


Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:17 am 
Offline
Site Admin

Joined: Fri Dec 05, 2014 12:05 pm
Posts: 179
Has thanked: 35 time
Have thanks: 212 time
post25.html#p25 this? extract all at once? btw, dunno if multithreading helps alot, you still have the same cpu power for O(n²) lookups. im planning on a general bundlewise explorer that will do the export/import of textures in a browseable way. I also have an idea for a "mod" format, where one mod entry is a SHA1 hash and the new data to append to a new cas file, this way ppl could already make and deploy some texture mods^^

greetz WV

_________________
Always backup your files!
WarrantyVoider has been thanked by:


Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:21 am 
Offline

Joined: Fri Dec 05, 2014 4:28 am
Posts: 64
Has thanked: 17 time
Have thanks: 41 time
Hm. One thing I've been itching to figure out is how the patches CAS files work. I haven't jumped into frankelstner's tear-apart of that yet. Are you working through that?

If so, I'll start trying to merge things together. The two codebases are pretty dissimilar, but whatever.


Last edited by wogoodes on Sat Dec 06, 2014 3:22 am, edited 1 time in total.

Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:21 am 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
I've taken a look at the patch files. I am working on changing some of my code to actually generate a patch instead of overwriting instances. So if it goes well, then we shouldn't need to modify any existing data.

EDIT: In DAI it seems simpler than BF4, they dont use delta offsets and such. If the patch contains a delta, it merely replaces the bundle in its entirety, well thats at least true for the main patch


Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:23 am 
Offline

Joined: Fri Dec 05, 2014 4:28 am
Posts: 64
Has thanked: 17 time
Have thanks: 41 time
Ehamloptiran wrote:
I've taken a look at the patch files. I am working on changing some of my code to actually generate a patch instead of overwriting instances...


Cool. Merge with WV's tools it is, then. Thank you.


Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:36 am 
Offline
Site Admin

Joined: Fri Dec 05, 2014 3:26 pm
Posts: 635
Has thanked: 921 time
Have thanks: 314 time
WarrantyVoider wrote:
http://daitools.freeforums.org/post25.html#p25 this? extract all at once? btw, dunno if multithreading helps alot, you still have the same cpu power for O(n²) lookups. im planning on a general bundlewise explorer that will do the export/import of textures in a browseable way. I also have an idea for a "mod" format, where one mod entry is a SHA1 hash and the new data to append to a new cas file, this way ppl could already make and deploy some texture mods^^

greetz WV

WANT!!!!! :mrgreen:

_________________
ar-lath-ma-vhenan


Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:38 am 
Offline

Joined: Fri Dec 05, 2014 4:28 am
Posts: 64
Has thanked: 17 time
Have thanks: 41 time
WarrantyVoider wrote:
http://daitools.freeforums.org/post25.html#p25 this? extract all at once? btw, dunno if multithreading helps alot, you still have the same cpu power for O(n²) lookups. im planning on a general bundlewise explorer that will do the export/import of textures in a browseable way. I also have an idea for a "mod" format, where one mod entry is a SHA1 hash and the new data to append to a new cas file, this way ppl could already make and deploy some texture mods^^

greetz WV


Hm. That was failing on globals.sb for me. Then again, I was still using rev 2. I'll retry.

Edit : still fails. Hadn't tracked down the issue yet, but you're getting an incorrect offset on the first pull. That's here :

Type: .itexture
Path: ui/static/lyriumeyeanimatedtexturewin32
Name: UI_AnimatedText
FullPath: win32/systems/frostbitestartupdata/ui/static/lyriumeyeanimatedtexturewin32
SHA1: 56CEEC2906012DE7AFC5D2A8F73EEDF0CCA1F680

CAT entry: 56CEEC29 06012DE7 AFC5D2A8 F73EEDF0 CCA1F680 1264F6F3 00000049 00000015

Chunk SHA1: FAD394CDC8D3F00F5E1E49CA7BD0B3058F148847
Chunk ID: 23AB838144ACAC441BDC287F52505967
Chunk CAT entry: FAD394CD C8D3F00F 5E1E49CA 7BD0B305 8F148847 24D2ABB7 00012586 00000011

Looking at it... ah, big-endian, not little endian. No, that ain't it. Hold on. Wrong CAS file.


Last edited by wogoodes on Sat Dec 06, 2014 3:59 am, edited 4 times in total.

Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 3:41 am 
Offline
Site Admin

Joined: Fri Dec 05, 2014 12:05 pm
Posts: 179
Has thanked: 35 time
Have thanks: 212 time
well I couldnt test it to end, because theres not one texture with its chunk in the same cas file (#20, the only one I had),but you are free to fix it^^ Ehamloptiran extracts everything at once, should work too. should I add you on SF , so you can commit on SVN too?

greetz WV

PS:also failing, how?

_________________
Always backup your files!


Top
 Profile  
 
 Post subject: Re: Direction of development
PostPosted: Sat Dec 06, 2014 4:06 am 
Offline

Joined: Fri Dec 05, 2014 4:28 am
Posts: 64
Has thanked: 17 time
Have thanks: 41 time
WarrantyVoider wrote:
well I couldnt test it to end, because theres not one texture with its chunk in the same cas file (#20, the only one I had),but you are free to fix it^^ Ehamloptiran extracts everything at once, should work too. should I add you on SF , so you can commit on SVN too?

greetz WV

PS:also failing, how?


I should be able to commit with rights. No idea how that works in SVN, but I figure it can't be that tough. I'll need a SF account, I figure?

Also :
Code:
        private void ExtractAllTextures(string target, bool withpath)
        {
            if (cat == null)
                return;
            rtb1.Text = "";
            string basepath = Path.GetDirectoryName(cat.MyPath) + "\\";
            for (int i = 0; i < listTex.Count; i++)
            {
                TextureInfo t = listTex[i];
                if (t.chunk.catline != null && CheckCASExist(basepath, t.chunk.catline[7]))
                {
                    string path = target;
                    if (withpath)
                        path += t.path.Replace("/", "\\");
                    else
                        path += Path.GetFileName(t.path);
                    CASFile cas = new CASFile(basepath + "cas_" + t.chunk.catline[7].ToString("d2") + ".cas");
                    CASFile.CASEntry e = cas.ReadEntry(t.chunk.catline.ToArray());
                    Directory.CreateDirectory(Path.GetDirectoryName(path));
                    File.WriteAllBytes(path, e.data);
                    rtb1.AppendText("Wrote file: " + path + "\n");
                }
            }
            rtb1.AppendText("Done.\n");
        }


This gets it done. I kept missing the fact that you were using cas.ReadEntry(t.catline.ToArray()) and not cas.ReadEntry(t.chunk.catline.ToArray())! That was the big error.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 21 posts ]  Go to page 1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
suspicion-preferred