User:Banement
Hey, I'm new to digging around game files. I saw that there's a lack of Watch Dogs content, so I decided to grab some tools and start looking. Stuff below is for Watch Dogs 1 (Windows) as I'm compiling all my discoveries.
Contents
E3 Leftovers
There are some assets left over from the E3 Game Demo.
E3 Profiler
In the E3 2012 gameplay demo, it showcases the mission "The Defalt Condition". In common.dat/profiler/profilertable.rml, there are E3-exclusive profile strings. The following were cut from the final release of the game and not re-used in the code for the actual mission later. common.dat/profiler/profilertable.rml
<section SectionId="4294967696" ParentSectionId="4294967833" name="PROFILER_SPECIFIC.PEOPLE.E3.Alejandro_Mendez" oldname="Alejandro_Mendez" /> <section SectionId="4294967697" ParentSectionId="4294967696" name="PROFILER_SPECIFIC.PEOPLE.E3.Alejandro_Mendez.Alejandro_Mendez_BasicInfo" oldname="Alejandro_Mendez_BasicInfo" specificpeople="PROFILER_SPECIFIC.PEOPLE.E3.Alejandro_Mendez" specificpeopleId="4294967696"> <string enum="Name" LineId="17933" value="Alejandro" acceptedgender="male" /> <string enum="Surname" LineId="17934" value="Mendez" /> <string enum="Occupation" LineId="17935" value="Security Contractor" incomeminimum="0" incomemaximum="0" ageminimum="18" agemaximum="60" /> <string enum="NoveltyFact" LineId="17936" value="TEACHES KRAV MAGA" /> </section> <section SectionId="4294967698" ParentSectionId="4294967696" name="PROFILER_SPECIFIC.PEOPLE.E3.Alejandro_Mendez.Alejandro_Mendez_PoliceRecord" oldname="Alejandro_Mendez_PoliceRecord" specificpeople="PROFILER_SPECIFIC.PEOPLE.E3.Alejandro_Mendez" specificpeopleId="4294967696"> <string enum="CriminalRecord_01" LineId="17937" value="Assault - TIME SERVED" /> </section> <section SectionId="4294967699" ParentSectionId="4294967833" name="PROFILER_SPECIFIC.PEOPLE.E3.Mary_Blass" oldname="Mary_Blass" /> <section SectionId="4294967700" ParentSectionId="4294967699" name="PROFILER_SPECIFIC.PEOPLE.E3.Mary_Blass.Mary_Blass_BasicInfo" oldname="Mary_Blass_BasicInfo" specificpeople="PROFILER_SPECIFIC.PEOPLE.E3.Mary_Blass" specificpeopleId="4294967699"> <string enum="Name" LineId="17938" value="Mary" acceptedgender="female" /> <string enum="Surname" LineId="17939" value="Blass" /> <string enum="Occupation" LineId="17940" value="Event Coordinator" incomeminimum="0" incomemaximum="0" ageminimum="18" agemaximum="60" /> <string enum="NoveltyFact" LineId="17941" value="Under investigation for perjury" /> <string enum="KeyIntel" LineId="17942" value="JOSEPH DEMARCO EMPLOYEE" /> </section> <section SectionId="4294967707" ParentSectionId="4294967833" name="PROFILER_SPECIFIC.PEOPLE.E3.Clint_Fallon" oldname="Clint_Fallon" /> <section SectionId="4294967708" ParentSectionId="4294967707" name="PROFILER_SPECIFIC.PEOPLE.E3.Clint_Fallon.Clint_Fallon_BasicInfo" oldname="Clint_Fallon_BasicInfo" specificpeople="PROFILER_SPECIFIC.PEOPLE.E3.Clint_Fallon" specificpeopleId="4294967707"> <string enum="Name" LineId="17955" value="Clint" acceptedgender="male" /> <string enum="Surname" LineId="17956" value="Fallon" /> <string enum="Occupation" LineId="17957" value="Security Contractor" incomeminimum="0" incomemaximum="0" ageminimum="18" agemaximum="60" /> <string enum="NoveltyFact" LineId="17958" value="MILITARY RESERVIST" /> </section>
EP Minimap
common\graphics\minimap_e3
Profiler Templates
common.dat\profiler\profilertable.rml
<section SectionId="4294967709" ParentSectionId="4294967833" name="PROFILER_SPECIFIC.PEOPLE.E3.CubeHead" oldname="CubeHead" /> <section SectionId="4294967710" ParentSectionId="4294967604" name="PROFILER_SPECIFIC.OBJECTS" oldname="OBJECTS" /> <section SectionId="4294967711" ParentSectionId="4294967710" name="PROFILER_SPECIFIC.OBJECTS.Name --TEMPLATE--" oldname="Name --TEMPLATE--" /> <section SectionId="4294967712" ParentSectionId="4294967711" name="PROFILER_SPECIFIC.OBJECTS.Name --TEMPLATE--.Name_BasicInfo" oldname="Name_BasicInfo"> <string enum="Name" LineId="17961" value="Object Name" /> <string enum="Description" LineId="17962" value="A couple of sentences describing the object." /> <string enum="KeyIntel" LineId="17963" value="This is the red text that -pings- when you scan an important object." /> </section> <section SectionId="4294967713" ParentSectionId="4294967711" name="PROFILER_SPECIFIC.OBJECTS.Name --TEMPLATE--.Name_ObjectStatus" oldname="Name_ObjectStatus"> <string enum="Status" LineId="17964" value="What is the electronic object currently doing? Scanning? Rebooting? Recalibrating?" /> </section> <section SectionId="4294967685" ParentSectionId="4294967604" name="PROFILER_SPECIFIC.PEOPLE" oldname="PEOPLE" /> <section SectionId="4294967686" ParentSectionId="4294967685" name="PROFILER_SPECIFIC.PEOPLE.Name_Surname --TEMPLATE--" oldname="Name_Surname --TEMPLATE--" /> <section SectionId="4294967688" ParentSectionId="4294967686" name="PROFILER_SPECIFIC.PEOPLE.Name_Surname --TEMPLATE--.Name_Surname_WebSearch" oldname="Name_Surname_WebSearch"> <string enum="WebSearch_01" LineId="17917" value="70% - Relevant search term 1" /> <string enum="WebSearch_02" LineId="17918" value="46% - Relevant search term 2" /> <string enum="WebSearch_03" LineId="17919" value="12% - Relevant search term 3" /> </section> <section SectionId="4294967689" ParentSectionId="4294967686" name="PROFILER_SPECIFIC.PEOPLE.Name_Surname --TEMPLATE--.Name_Surname_CriminalRecord" oldname="Name_Surname_CriminalRecord"> <string enum="CriminalRecord_01" LineId="17920" value="Police Charge - Punishment" /> <string enum="CriminalRecord_02" LineId="17921" value="Police Charge - Punishment" /> <string enum="CriminalRecord_03" LineId="17922" value="Police Charge - Punishment" /> </section> <section SectionId="4294967690" ParentSectionId="4294967686" name="PROFILER_SPECIFIC.PEOPLE.Name_Surname --TEMPLATE--.Name_Surname_CurrentActivity" oldname="Name_Surname_CurrentActivity"> <string enum="CurrentActivity" LineId="17923" value="This is where a text message to the guy's wife might go." /> </section> <section SectionId="4294967691" ParentSectionId="4294967686" name="PROFILER_SPECIFIC.PEOPLE.Name_Surname --TEMPLATE--.Name_Surname_Behavior" oldname="Name_Surname_Behavior"> <string enum="Behavior" LineId="17924" value="Specific behavior text could go here." /> </section> <section SectionId="4294967742" ParentSectionId="4294967410" name="HACKING.Narrative_Rewards" oldname="Narrative_Rewards" /> <section SectionId="4294967743" ParentSectionId="4294967742" name="HACKING.Narrative_Rewards.Emails" oldname="Emails" /> <section SectionId="4294967744" ParentSectionId="4294967742" name="HACKING.Narrative_Rewards.Email_001 --TEMPLATE--" oldname="Email_001 --TEMPLATE--"> <string enum="email_Text" LineId="18613" value="Main email text goes here." /> <string enum="email_Subject" LineId="18614" value="Subject goes here" /> <string enum="email_To" LineId="18615" value="Email address goes here." /> </section> <section SectionId="4294967745" ParentSectionId="4294967742" name="HACKING.Narrative_Rewards.Chats" oldname="Chats" /> <section SectionId="4294967746" ParentSectionId="4294967742" name="HACKING.Narrative_Rewards.Chat_001 --TEMPLATE--" oldname="Chat_001 --TEMPLATE--"> <string enum="Message0" LineId="18665" value="Message text goes here." /> <string enum="Message1" LineId="18617" value="Message text goes here." /> <string enum="Message2" LineId="18618" value="Message text goes here." /> </section> <section SectionId="4294967753" ParentSectionId="4294967711" name="PROFILER_SPECIFIC.OBJECTS.Name --TEMPLATE--.Name_ActivationEffect" oldname="Name_ActivationEffect"> <string enum="ActivationEffect" LineId="18789" value="Activation effect placeholder." /> </section> <section SectionId="4294970458" ParentSectionId="4294970364" name="NARRATIVE_REWARD_SPECIFIC.Email_001 --TEMPLATE--" oldname="Email_001 --TEMPLATE--"> <string enum="email_Text" LineId="127149" value="EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE" /> <string enum="email_Subject" LineId="127150" value="Subject goes here" /> <string enum="email_To" LineId="127151" value="Email address goes here." /> <string enum="email_From" LineId="173046" value="From goes here" /> </section> <section SectionId="4294970463" ParentSectionId="4294970367" name="NARRATIVE_REWARD_SPECIFIC.Act_03.Mission_01" oldname="Mission_01" /> <section SectionId="4294970464" ParentSectionId="4294970364" name="NARRATIVE_REWARD_SPECIFIC.Chat_001 --TEMPLATE--" oldname="Chat_001 --TEMPLATE--"> <string enum="Message0" LineId="127234" value="EEEEEEEEEEEEEEEEEEEEEEEEE" /> <string enum="Message1" LineId="127235" value="EEEEEEEEEEEEEEEEEEEEEEEEE" /> <string enum="Message2" LineId="127236" value="EEEEEEEEEEEEEEEEEEEEEEEEE" /> </section>
Unused "ArtistProperties"
Feel like this should be included but not sure how, every album in common.dat/music/music.rml has
<string enum="AlbumProperties" LineId="197009" value="ENTER_TEXT_HERE" />
Internal names / more e3 leftovers
In common.dat/engine/shaders/materialdescriptors/glass.xml is this, mentioning E3 but also an internal website
<ui defaultFilePath="graphics/_Textures/" > <xi:include href="UI/DataClasses.xml" /> <group> <label link="http://mdc-web-tomcat17.ubisoft.org/confluence/display/driver/Shader+-+Glass">Help</label> </group> <group label="Settings"> <checkbox label="E3 2012 Hack" dataBindings="E3_2012_Hack" /> <checkbox label="Two sided" dataBindings="TwoSided" /> <checkbox label="Eyes" dataBindings="Eyes" /> <checkbox label="Broken Glass Test" dataBindings="BrokenGlassTest" /> <group horizontal="1"> <label>Sorting Layer Bias</label> <textbox dataBindings="SortingLayerBias" tooltip="Changes the draw order. Materials with smaller values are drawn first."> <dataBindings increment="1" minvalue="-4" maxvalue="4" /> </textbox> <label> Cubemap mode (FPP test for eyes)</label> <combobox dataBindings="CubemapMode"> <comboboxitem value="0">classic</comboboxitem> <comboboxitem value="1">object space</comboboxitem> <comboboxitem value="2">camera space</comboboxitem> </combobox> </group> <checkbox label="Tinted Glass (E3 hack)" dataBindings="TintedGlassE3hack" /> </group> <label> </label>
Lena Pearce Cutscene Differences
Unused Text
In shaders.dat, there is a lot of development-related text, primarily code commenting, perfect for modders and data miners. These are some funny highlights. shaders.dat\engine\deferredambient.inc.fx
#else // This is PC only, who cares. float3 upperColor = DefaultProbeUpperColor; #endif
shaders\shaders\realtreetrunk.inc.fx
#define CRAPPY_HACK_TO_BE_REMOVED_WHEN_WE_FIND_WHY_WE_HAVE_ZERO_RADIUS #ifdef CRAPPY_HACK_TO_BE_REMOVED_WHEN_WE_FIND_WHY_WE_HAVE_ZERO_RADIUS radius += 0.000001; #endif
Guide to decompiling Watch Dogs 1
How to open:
.bik / Bink Video Files
- Download and install RAD tools: http://www.radgametools.com/bnkdown.htm
- Run RAD Video Tools
- Select files to watch
.dat / .fat Decompiling
- Download Disrupt: http://svn.gib.me/builds/disrupt/disrupt-r49_b38.zip source available
- Also download XNA Framework: https://www.microsoft.com/en-gb/download/details.aspx?id=20914
- Extract to centralized folder for your decomp tools (suggestion)
- (You might want to rename the tools for ease of use)
- Drag your wanted .dat AND .fat files to the directory.
- Open cmd in the same folder as the tools, then do "Gibbed.Disrupt.Unpack.exe [file].fat [output]/"
.xbt File to .dds
- Download xbt2dds: https://cra0.net/public/bin-published/xbt2dds.zip
- Extract to centralized folder for your decomp tools (suggestion)
- Open cmd in the same folder, then do "xbt2dds -t [path/to/texture.xbt] [path/to/outputfolder]"
.xbt File Viewing
- Download xbtview: https://cra0.net/public/bin-published/xbtview.zip
- Extract to centralized folder for your decomp tools (suggestion)
- Drag .xbt file to xbtview.exe
.sbao Files
todo
.feu Files
IMPORTANT: You won't be getting anything graphical as the textures are not included.
- Rename to .swf
- Download a hex editor: https://mh-nexus.de/en/hxd/
- Open the file in the editor, change the first 3 bytes to: 46 57 53 (FWS)
- Download FFDec: https://github.com/jindrapetrik/jpexs-decompiler/releases/tag/version18.5.0
- Open the file in FFDec
Things to keep in mind when searching
- Watch Dogs used to be called "Nexus".
- (Some??) old builds of Watch Dogs can't be decompiled with Disrupt.
Other helpful stuff
https://www.forum.zmodeler3.com/viewtopic.php?t=7105 https://forums.guru3d.com/threads/how-to-mod-watch-dogs-entirely-full-tutorial.390238/
Watch Dogs 2 stuff
Comparing the profiler for WD1 and WD2, a lot of stuff is re-used, either without any changes or some changes like switching words, swapping message positions. And I mean... A LOT. I don't think I can document this in its entirety.
Watch Dogs Prototype Stuff
YouTube: bad video ID!