If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

User:Banement

From The Cutting Room Floor
Jump to navigation Jump to search

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.

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

  1. Download and install RAD tools: http://www.radgametools.com/bnkdown.htm
  2. Run RAD Video Tools
  3. Select files to watch

.dat / .fat Decompiling

  1. Download Disrupt: http://svn.gib.me/builds/disrupt/disrupt-r49_b38.zip source available
  2. Also download XNA Framework: https://www.microsoft.com/en-gb/download/details.aspx?id=20914
  3. Extract to centralized folder for your decomp tools (suggestion)
  4. (You might want to rename the tools for ease of use)
  5. Drag your wanted .dat AND .fat files to the directory.
  6. Open cmd in the same folder as the tools, then do "Gibbed.Disrupt.Unpack.exe [file].fat [output]/"

.xbt File to .dds

  1. Download xbt2dds: https://cra0.net/public/bin-published/xbt2dds.zip
  2. Extract to centralized folder for your decomp tools (suggestion)
  3. Open cmd in the same folder, then do "xbt2dds -t [path/to/texture.xbt] [path/to/outputfolder]"

.xbt File Viewing

  1. Download xbtview: https://cra0.net/public/bin-published/xbtview.zip
  2. Extract to centralized folder for your decomp tools (suggestion)
  3. 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.

  1. Rename to .swf
  2. Download a hex editor: https://mh-nexus.de/en/hxd/
  3. Open the file in the editor, change the first 3 bytes to: 46 57 53 (FWS)
  4. Download FFDec: https://github.com/jindrapetrik/jpexs-decompiler/releases/tag/version18.5.0
  5. 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

Nexus logo, which was Watch Dogs' original name.

YouTube: bad video ID!