READ THE RULES: Click here

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

Compressed Watch Dogs Localization Files

Read or post about compression. And decompression. Or ask questions how to decompress your files.
Post Reply
rengareng
veteran
Posts: 128
Joined: Fri Feb 18, 2011 10:23 am
Has thanked: 5 times
Been thanked: 44 times

Compressed Watch Dogs Localization Files

Post by rengareng » Mon Jun 16, 2014 7:43 am

Hi,
I think .loc files of the Watch Dogs uses similar compression used in the Assassins Creed series.
Anyone has any idea with these files? I added a sample of file.

<link removed due forum rules violation>

rengareng
veteran
Posts: 128
Joined: Fri Feb 18, 2011 10:23 am
Has thanked: 5 times
Been thanked: 44 times

Re: Compressed Watch Dogs Localization Files

Post by rengareng » Sun Oct 12, 2014 2:12 pm

I found that
Image
I hope someone helps to investigate further.
You do not have the required permissions to view the files attached to this post.

rengareng
veteran
Posts: 128
Joined: Fri Feb 18, 2011 10:23 am
Has thanked: 5 times
Been thanked: 44 times

Re: Compressed Watch Dogs Localization Files

Post by rengareng » Mon Jan 26, 2015 4:43 pm

Hi people, I made a good progress.

I finally build string fragments table. But, I do not know how this fragment table is indexed from the file.

I successfuly build string fragments table for both small file provided in previous entry and main_english.loc file.
However, I do not know how indexing works. I tried 1 byte indexing to this string fragment table in small file, meaningful texts are appeared.
However, in main_english.loc file, we need more advanced indexing since there is more than 255 entries in the string fragments table.

Here the output for DBD82924.loc(small file)

Code: Select all

looe *[24]* ew C.e  xe_*[34]*c atch_.c :*[42]*s estall*[46]*oe *[49]*EgerYou You Watch_Dogs® Bad BloodT-Bone Grady ContinueAiden Pearce New Game Aiden Pearce Continuee .*[98]*er ine treet SwYou have been invited to play the Bad Blood DLC. Accept the invite and the game will start automatically.You cannot join the DLC session, since the Bad Blood DLC is not installed.other *[173]**[174]*o*[176]*thlayfentreet zis DLC efrS*[189]*to uPp
- d enESinthf*[202]*onthe ai*[206]*vis ine is pitayIBloo a*[217]*.Bloos : playoois Bad Blooy*[226]*atchother tr*[230]**[231]*/pear_®*[237]**[238]*re*[240]*T-Bone playf a *[245]*WE*[248]*f*[250]*loothew ®f*[256]*A savegame for the Bad Blood DLC has been detected but the DLC is not installed. Install the DLC to use this savegame.*[305]*gYou must complete [CSS_BLUE]FADING SIGNAL[CSS_END] to access Bad Blood online features.:C Car qOnline Street Sweep: The GPS destination of the other player [GPSGWICON] is displayed on your map.gamethT-BontA*[422]*o*[424]* MBad Blood inoWce f*[432]*aisioner z*[437]* atch_Dunline Street Sweep: en*[443]*R/C Car othea Mear the R/C Car  s : *[454]*D*[456]*oanplayll e atT-Bone e playother E*[469]*trll*[472]*ear*[474]**[475]*with R/C Car is earine T-Bone dE*[484]*llth*[487]**[488]*c*[490]*NR/C Car *[493]**[494]*l.Gl- T-Bone Campaign : Play as T-Bone in his own story campaign.
- Street Sweep Missions : Weaken Chicago’s gangs to earn new rewards.
- Co-op Mode : Play Street Sweep missions with other players.
- 10 new Perks : Discover 10 new exclusive Perks to deal with 
Here the string fragments for DBD82924.loc(small file)

Code: Select all

""
" "
"e"
"e "
"c"
"t"
"s"
"n "
"s "
"in"
"u"
"i"
"C"
"o"
"P"
"a"
" the "
"f"
"."
"l"
"d"
"S"
"m"
"g"
"to"
"on"
"A"
"G"
"n"
"ea"
"r"
"h"
". "
"is "
"re"
"play"
"I"
"p"
"b"
"N"
"us"
" M"
"is"
"er"
"y "
"de"
"to "
"You "
"ur"
"R/C Car "
"ll"
" a"
"am"
"d "
"1"
"k"
","
"v"
"D"
"av"
"re "
"ce "
"ai"
"t the "
"ep"
"ear"
"s : "
" a "
"Bad Blood DLC "
"Watch_Dog"
"an"
"it"
"ted "
"en"
"game"
"tin"
"cannot join"
"s.{\n}- "
"stall"
" new "
"trac"
"T-Bone "
"sion"
"Online Street Sweep: "
"with "
"other play"
"er "
"ca"
"at"
"DLC "
"Bad Blood "
"ou"
"r "
"the "
"t "
"]"
"["
"y"
"W"
"wi"
"s."
"not "
"gam"
"Street Sweep"
"te"
"You"
"ew"
"DL"
": "
"lay"
"ee"
"0"
"O"
"E"
"M"
"L"
"w"
"_"
"oth"
"line "
"ion"
"T-Bon"
"ac"
"new "
"sta"
"{\n}- "
"- "
"ar "
"st"
"ew "
"Bad Bloo"
"loo"
"ay"
"th"
"R"
"q"
"‘"
"z"
"x"
"’"
"{\n}"
"F"
"U"
"-"
"T"
"B"
"®"
"atch_Dog"
"atch_Do"
"atch_D"
"atch_"
"atch"
"atc"
"nnot join"
"not join"
"not jo"
"not j"
"nline Street Sweep: "
"line Street Sweep: "
"line Street Sweep"
"th "
"other "
"ine "
"-Bon"
"Bon"
"/C Car "
"C Car "
"Car "
"ot "
"treet Sweep"
"treet Swee"
"treet Sw"
"treet S"
"treet "
"tree"
"ad Bloo"
"d Bloo"
"Bloo"
"tr"
"oo"
"C "
"/"
":"
"j"
"Y"
I hope there are people who can help me.

I just simply run the C# code in the attachment. It prints stringFragmentsTable entries, and output using 1 byte indexing.
My code is based on DerPlaya's code for Assassins Creed game.

Also, here my guess for loc file structure as template.

Code: Select all

//--------------------------------------
//--- 010 Editor v5.0.2 Binary Template
//--------------------------------------

uint magic;
ushort languageCode;
ushort count1;
uint stringFragmentsOffset;
struct{
uint a,b;
}t[count1];
FSeek(stringFragmentsOffset);
int count2;//includes zero-zero node,but it is not written here
struct{
    short right,left;
}nodes[count2-1];
You do not have the required permissions to view the files attached to this post.

WRS
ultra-veteran
ultra-veteran
Posts: 601
Joined: Fri Nov 06, 2009 12:13 am
Has thanked: 74 times
Been thanked: 132 times

Re: Compressed Watch Dogs Localization Files

Post by WRS » Mon Jan 26, 2015 11:04 pm

had a few minutes to look at this quickly.

the bit ops are already quite confusing - but the c# is very easy to follow.

i've modified the loop to spit out the string chunks:

Code: Select all

            while (numConsumedCodes < endOffset)
            {
                byte b = r.ReadByte();
                ++numConsumedCodes;

                if( b == 0 )
                {
                    Console.WriteLine("Line: '{0}'", sb.ToString());
                    sb.Clear();
                   // sb.Append("\n");
                }

                else if (b < maxStringFragmentIndex)
                {
                    string val = stringFragments[b+1].ToString() ;

                    Console.WriteLine("{0} '{1}'", (int)(b), val);
                    sb.Append(val);
                }
                else
                {
                    Console.WriteLine("UNKNOWN: {0}", (int)b);
                }
but there doesn't seem to be much data left for string sizes or offsets.

any idea what the 1x 8 byte tables does? are the string chunks split across multiple tables?


pm me another sample file if you can :)
Useful tool links:

rengareng
veteran
Posts: 128
Joined: Fri Feb 18, 2011 10:23 am
Has thanked: 5 times
Been thanked: 44 times

Re: Compressed Watch Dogs Localization Files

Post by rengareng » Wed Jan 28, 2015 9:08 am

I do not know what those bytes mean. Probably, ID of string block.
Yes, there should be offsets somewhere. Because, when I look at the memory of the game, stings are loaded when needed.
Hence, game should be able to seek the needed string.

defult06
ultra-n00b
Posts: 8
Joined: Mon May 29, 2017 5:58 am

Re: Compressed Watch Dogs Localization Files

Post by defult06 » Mon May 29, 2017 8:18 am

+up

Requizm
ultra-n00b
Posts: 5
Joined: Mon May 29, 2017 2:32 pm
Location: Turkey

Re: Compressed Watch Dogs Localization Files

Post by Requizm » Mon May 29, 2017 2:35 pm

Up+

Omris
ultra-n00b
Posts: 8
Joined: Thu Feb 01, 2018 4:04 pm
Has thanked: 1 time

Re: Compressed Watch Dogs Localization Files

Post by Omris » Wed Jul 25, 2018 7:08 am

up.

rengareng
veteran
Posts: 128
Joined: Fri Feb 18, 2011 10:23 am
Has thanked: 5 times
Been thanked: 44 times

Re: Compressed Watch Dogs Localization Files

Post by rengareng » Fri Jan 25, 2019 7:59 am

Hi everyone,

I finally managed to unpack loc files. Unfortunately, the loc file does not have ids, therefore you have to give min and max ids.

I attached unpacker with Watch_Dogs 1 main_english.loc file and unpacked main_english.txt file.

I won't spend time on writing tool to repack.

Unpacked main_english.txt here
You do not have the required permissions to view the files attached to this post.

Taner038
mega-veteran
mega-veteran
Posts: 171
Joined: Fri Aug 22, 2014 6:14 pm
Has thanked: 11 times
Been thanked: 5 times

Re: Compressed Watch Dogs Localization Files

Post by Taner038 » Sat Feb 16, 2019 11:07 am

rengareng wrote:Hi everyone,

I finally managed to unpack loc files. Unfortunately, the loc file does not have ids, therefore you have to give min and max ids.

I attached unpacker with Watch_Dogs 1 main_english.loc file and unpacked main_english.txt file.

I won't spend time on writing tool to repack.

Unpacked main_english.txt here
Thanks a lot :keke: :keke:

rengareng
veteran
Posts: 128
Joined: Fri Feb 18, 2011 10:23 am
Has thanked: 5 times
Been thanked: 44 times

Re: Compressed Watch Dogs Localization Files

Post by rengareng » Wed May 29, 2019 5:02 am

You can find source code of the tool below:
Source Code

Post Reply