Dragon Age: Inquisition Modding Tools

All about modding tools for Dragon Age: Inquisition
It is currently Sat Jun 24, 2017 5:24 am

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.  [ 94 posts ]  Go to page Previous  1 ... 6, 7, 8, 9, 10  Next
Author Message
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Mon Jan 05, 2015 9:56 pm 
Offline
Site Admin
User avatar

Joined: Fri Dec 05, 2014 3:43 am
Posts: 629
Has thanked: 14 time
Have thanks: 751 time
haha Dead space meets Dragon Age.


Top
 Profile  
 
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Tue Jan 06, 2015 3:20 am 
Offline
Site Admin

Joined: Fri Dec 05, 2014 3:26 pm
Posts: 635
Has thanked: 921 time
Have thanks: 314 time
lol I got some horrid stuff like this on second life.. is the rigging and bone weights that got messed up

Image

_________________
ar-lath-ma-vhenan


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Tue Jan 06, 2015 9:27 pm 
Offline

Joined: Sat Dec 13, 2014 1:24 am
Posts: 67
Has thanked: 10 time
Have thanks: 42 time
wogoodes wrote:
Uranix, the savegame checksum was detailed by DarthGizka earlier. Verified to work in that it matches every savegame I have, but resealing doesn't always seem to be necessary. I have not looked into why.


I have not been doing anything with the checksum bytes in any of the modifications I have done. Can you give an example of something you did where it was actually required?


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Wed Jan 07, 2015 12:50 am 
Offline

Joined: Fri Dec 05, 2014 4:28 am
Posts: 64
Has thanked: 17 time
Have thanks: 41 time
ricco19 wrote:
wogoodes wrote:
Uranix, the savegame checksum was detailed by DarthGizka earlier. Verified to work in that it matches every savegame I have, but resealing doesn't always seem to be necessary. I have not looked into why.


I have not been doing anything with the checksum bytes in any of the modifications I have done. Can you give an example of something you did where it was actually required?


I don't know of any! Save game length is actually used, and I never played with the header checksum, so maybe that's used, but the data checksum seems meaningless.

I keep waiting for word that failing the checksum causes a bit to get flagged that results in an impossible-to-win game.


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Wed Jan 07, 2015 6:27 am 
Offline
Site Admin

Joined: Fri Dec 05, 2014 3:26 pm
Posts: 635
Has thanked: 921 time
Have thanks: 314 time
wogoodes wrote:
ricco19 wrote:
wogoodes wrote:
Uranix, the savegame checksum was detailed by DarthGizka earlier. Verified to work in that it matches every savegame I have, but resealing doesn't always seem to be necessary. I have not looked into why.


I have not been doing anything with the checksum bytes in any of the modifications I have done. Can you give an example of something you did where it was actually required?


I don't know of any! Save game length is actually used, and I never played with the header checksum, so maybe that's used, but the data checksum seems meaningless.

I keep waiting for word that failing the checksum causes a bit to get flagged that results in an impossible-to-win game.


lol. Like that game that spawned an immortal monster ?

But DAI is not realy a win / lose type of game, so maybe it doesn't really matter ?

_________________
ar-lath-ma-vhenan


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Wed Jan 07, 2015 8:19 pm 
Offline

Joined: Sat Dec 13, 2014 1:24 am
Posts: 67
Has thanked: 10 time
Have thanks: 42 time
So can someone explain this one to me:

Code:
00000139 B08AAA39 000C 212284536181         // 2014-12-04 22:43:01 (seconds since 0001-01-01 00:00)


Isn't that like 6700 years. It's for sure time I just don't understand how you get that date from that number.

http://www.wolframalpha.com/input/?i=se ... 01-01-0001


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Fri Jan 09, 2015 5:44 pm 
Offline

Joined: Sat Dec 13, 2014 1:24 am
Posts: 67
Has thanked: 10 time
Have thanks: 42 time
Some of you guys might find this useful: save-game-reader-t254.html

Also the reason I was asking about that time.
ricco19 has been thanked by:


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Sat Jan 10, 2015 9:55 am 
Offline
User avatar

Joined: Tue Dec 09, 2014 5:21 pm
Posts: 33
Has thanked: 35 time
Have thanks: 32 time
ricco19 wrote:
So can someone explain this one to me:

Code:
00000139 B08AAA39 000C 212284536181         // 2014-12-04 22:43:01 (seconds since 0001-01-01 00:00)


Isn't that like 6700 years. It's for sure time I just don't understand how you get that date from that number.


You are right, I made a mistake and gave the wrong epoch. The dump in question was made using Fox (Visual FoxPro), and to convert the timestamp I divided it by 86400 and cast the result to Fox datetime (Julian Day Number as a 64-bit float). The typecast code I used was written almost 20 years ago, and so the details were a bit hazy in my mind...

So, the timestamp in question gives the number of seconds that have passed since January 1st, 4713 BCE. Time is counted from midnight, not from high noon as the astronomers do.

You don't have to fart around with Calendrical Calculations (pun intended) if you don't want to; just hand the problem off to Windows:

Code:
uint64_t const TIMESTAMP_16010101 = 2305814ull * 24 * 60 * 60;

uint64_t filetime_from_timestamp (uint64_t timestamp)
{
   // FILETIME epoch is 1601-01-01, timestamp epoch is -4712-01-1 (January 1st, 4713 BCE)
   // FILETIME resolution is 10^-7 seconds, timestamp resolution is 1 second
   
   return (timestamp - TIMESTAMP_16010101) * 10000000;
}

void test (uint64_t ts = 212284536181ull)
{
   ULARGE_INTEGER li;
   FILETIME ft;
   SYSTEMTIME st;

   li.QuadPart = filetime_from_timestamp(ts);
   ft.dwLowDateTime = li.LowPart;
   ft.dwHighDateTime = li.HighPart;

   FileTimeToSystemTime(&ft, &st);

   std::printf("\n%llu -> %04u-%02u-%02u %02u:%02u:%02u",
      ts,
      st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond  );
}


This is copied from a working test; however, conversion to C should be straightforward.

Note: normally the FILETIME would be in UTC and thus need conversion to local time. So something's a bit off with the timestamp. It would be interesting to see whether the above code works in timezones other than UTC+01:00...
DarthGizka has been thanked by:


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Sat Jan 10, 2015 6:50 pm 
Offline

Joined: Sat Dec 13, 2014 1:24 am
Posts: 67
Has thanked: 10 time
Have thanks: 42 time
Finally settled with this, which seems to work at least in my timezone:

Code:
char* dai_ts_to_str( long long ts ) {

   time_t rawtime = ts - ( 2440588LL * 24 * 60 * 60 );
   struct tm* timeinfo = gmtime( &rawtime );
   return( asctime( timeinfo ) );

}


Top
 Profile  
 
 Post subject: Re: FBCHUNKS files (ProfileOptions and save games)
PostPosted: Sun Jan 11, 2015 4:44 am 
Offline

Joined: Sat Dec 13, 2014 1:24 am
Posts: 67
Has thanked: 10 time
Have thanks: 42 time
As expected, things aren't as easy as I would have hoped. Lot's of things like colors and intensitys are easy to find. You simply look for the values in the facecode XML. Textures are also easy because you can do the same thing (D1_Diffuse texNameHash="3804040627" = E2BD0DB3). So for example, as human female, replacing the skin tone slider is as easy as finding one of these and replacing it:

Code:
race  : sliderpos : 4 byte hash

hf    :   00/10   : 18DC7731
hf    :   01/10   : 18DC7730
hf    :   02/10   : 18DC7733
hf    :   03/10   : 18DC7732
hf    :   04/10   : 18DC7735
hf    :   05/10   : 18DC7734
hf    :   06/10   : 18DC7737
hf    :   07/10   : 18DC7736
hf    :   08/10   : 18DC7739
hf    :   09/10   : 18DC7738
hf    :   10/10   : 18DC76D0


Where it gets annoying is any of the options that change the mesh. For example:

Code:
<slider type="analog" usage="Ear Size" x="0.34599" y="0.07164">
   <modifierX isTwoWay="true" universalShapeIdx="28"/>
   <modifierY isTwoWay="true" universalShapeIdx="24"/>


Those values are no where to be found. Most likely, those values are initially calculated into some kind of base mesh/morph and then discarded. The only way I have successfully been able to change one face to another is to search for C087A591, and paste everything from that point to the end of the file into another save (and then changing file size in the header accordingly). The hair mesh doesn't change and is somewhere above that. This is a good portion of the save, and most likely changes more than just character appearance. Although it is possible. The last FB SAVE appears somewhere above all the head stuff.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 94 posts ]  Go to page Previous  1 ... 6, 7, 8, 9, 10  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 0 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